Class: VivlioStarter::CLI::Techbook::EmojiReplacer
- Inherits:
-
Object
- Object
- VivlioStarter::CLI::Techbook::EmojiReplacer
- Defined in:
- lib/vivlio_starter/cli/techbook/emoji_replacer.rb
Constant Summary collapse
- EMOJI_REGEX =
Unicode Emoji 検出用正規表現 Emoji_Presentation を持つ文字 + Variation Selector 付き文字を対象とする
/[\p{Emoji_Presentation}\p{Emoji}\uFE0F]+/
Instance Method Summary collapse
-
#initialize(emoji_dir = nil) ⇒ EmojiReplacer
constructor
A new instance of EmojiReplacer.
-
#process(html) ⇒ String
HTML 中の絵文字を SVG img タグに差し替える.
- #replace_emoji_in_text(text) ⇒ Object
Constructor Details
#initialize(emoji_dir = nil) ⇒ EmojiReplacer
Returns a new instance of EmojiReplacer.
15 16 17 |
# File 'lib/vivlio_starter/cli/techbook/emoji_replacer.rb', line 15 def initialize(emoji_dir = nil) @emoji_dir = Pathname(emoji_dir || default_emoji_dir) end |
Instance Method Details
#process(html) ⇒ String
HTML 中の絵文字を SVG img タグに差し替える
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/vivlio_starter/cli/techbook/emoji_replacer.rb', line 22 def process(html) in_ignored_element = nil html.split(/(<[^>]+>)/).map do |part| if part.start_with?('<') in_ignored_element = update_ignored_element_state(part, in_ignored_element) part elsif in_ignored_element part else replace_emoji_in_text(part) end end.join end |
#replace_emoji_in_text(text) ⇒ Object
37 38 39 40 41 |
# File 'lib/vivlio_starter/cli/techbook/emoji_replacer.rb', line 37 def replace_emoji_in_text(text) text.gsub(EMOJI_REGEX) do |match| replace_emoji(match) end end |