class EmojiDiffer::List

Attributes

parsed[R]

Public Class Methods

from_json(json) click to toggle source
# File lib/emoji_differ/list.rb, line 12
def self.from_json(json)
  new.parse(json)
end
new(emoji=nil) click to toggle source
# File lib/emoji_differ/list.rb, line 8
def initialize(emoji=nil)
  @emojis = emoji
end

Public Instance Methods

-(other) click to toggle source
# File lib/emoji_differ/list.rb, line 27
def -(other)
  other_names = other.emojis.to_a.map(&:name)
  self.class.new(emojis.reject {|emoji| other_names.include?(emoji.name) })
end
each() { |emoji| ... } click to toggle source
# File lib/emoji_differ/list.rb, line 21
def each
  emojis.each do |emoji|
    yield emoji
  end
end
emojis() click to toggle source
# File lib/emoji_differ/list.rb, line 40
def emojis
  @emojis ||= transform
end
length() click to toggle source
# File lib/emoji_differ/list.rb, line 32
def length
  emojis.length
end
parse(json) click to toggle source
# File lib/emoji_differ/list.rb, line 44
def parse(json)
  @parsed = JSON.parse(json)
  self
end
to_json() click to toggle source
# File lib/emoji_differ/list.rb, line 36
def to_json
  JSON.generate(parsed) #cheeky eh
end
to_s() click to toggle source
# File lib/emoji_differ/list.rb, line 16
def to_s
  collection = emojis.map(&:to_s).join(" ")
  "#{collection}\n Total: #{length}"
end

Private Instance Methods

timestamp() click to toggle source
# File lib/emoji_differ/list.rb, line 53
def timestamp
  parsed['cache_ts'].to_f
end
transform() click to toggle source
# File lib/emoji_differ/list.rb, line 57
def transform
  parsed['emoji'].map { |name, picture_link| EmojiDiffer::Emoji.new(name, picture_link, timestamp) }
end