Class: Somemoji::EmojiCollection
- Inherits:
-
Object
- Object
- Somemoji::EmojiCollection
- Includes:
- Enumerable
- Defined in:
- lib/somemoji/emoji_collection.rb
Instance Attribute Summary collapse
- #emojis ⇒ Array<Somemoji::Emoji> readonly
Instance Method Summary collapse
- #+(emoji_collection) ⇒ Somemoji::EmojiCollection
- #character_pattern ⇒ Regexp
- #characters ⇒ Array<String>
- #code_pattern ⇒ Regexp
- #codes ⇒ Array<String>
- #each(&block) ⇒ Object
- #find_by_character(character) ⇒ Object
- #find_by_code(code) ⇒ Object
-
#initialize(emojis = []) ⇒ EmojiCollection
constructor
A new instance of EmojiCollection.
- #replace_character(string, &block) ⇒ String
- #replace_code(string, &block) ⇒ String
Constructor Details
#initialize(emojis = []) ⇒ EmojiCollection
Returns a new instance of EmojiCollection.
9 10 11 |
# File 'lib/somemoji/emoji_collection.rb', line 9 def initialize(emojis = []) @emojis = emojis end |
Instance Attribute Details
#emojis ⇒ Array<Somemoji::Emoji> (readonly)
6 7 8 |
# File 'lib/somemoji/emoji_collection.rb', line 6 def emojis @emojis end |
Instance Method Details
#+(emoji_collection) ⇒ Somemoji::EmojiCollection
15 16 17 |
# File 'lib/somemoji/emoji_collection.rb', line 15 def +(emoji_collection) self.class.new(emojis + emoji_collection.emojis) end |
#character_pattern ⇒ Regexp
20 21 22 |
# File 'lib/somemoji/emoji_collection.rb', line 20 def character_pattern @character_pattern ||= ::Regexp.union(characters) end |
#characters ⇒ Array<String>
25 26 27 |
# File 'lib/somemoji/emoji_collection.rb', line 25 def characters index_by_character.keys end |
#code_pattern ⇒ Regexp
30 31 32 |
# File 'lib/somemoji/emoji_collection.rb', line 30 def code_pattern @code_pattern ||= /:(#{::Regexp.union(codes)}):/ end |
#codes ⇒ Array<String>
35 36 37 |
# File 'lib/somemoji/emoji_collection.rb', line 35 def codes index_by_code.keys end |
#each(&block) ⇒ Object
Note:
Implementation for Enumerable
40 41 42 |
# File 'lib/somemoji/emoji_collection.rb', line 40 def each(&block) emojis.each(&block) end |
#find_by_character(character) ⇒ Object
45 46 47 |
# File 'lib/somemoji/emoji_collection.rb', line 45 def find_by_character(character) index_by_character[character] end |
#find_by_code(code) ⇒ Object
50 51 52 |
# File 'lib/somemoji/emoji_collection.rb', line 50 def find_by_code(code) index_by_code[code] end |
#replace_character(string, &block) ⇒ String
56 57 58 59 60 |
# File 'lib/somemoji/emoji_collection.rb', line 56 def replace_character(string, &block) string.gsub(character_pattern) do |character| block.call(find_by_character(character)) end end |
#replace_code(string, &block) ⇒ String
64 65 66 67 68 |
# File 'lib/somemoji/emoji_collection.rb', line 64 def replace_code(string, &block) string.gsub(code_pattern) do block.call(find_by_code(::Regexp.last_match(1))) end end |