module EmojiDiffer

Constants

VERSION

Public Class Methods

cached() click to toggle source
# File lib/emoji_differ.rb, line 21
def self.cached
  load
end
config() { |config| ... } click to toggle source
# File lib/emoji_differ.rb, line 8
def self.config
  @config ||= EmojiDiffer::Config.new
  if block_given?
    yield @config
  else
    @config
  end
end
current() click to toggle source
# File lib/emoji_differ.rb, line 17
def self.current
  @current ||= EmojiDiffer::SlackApi.new(config.token).emoji
end
deleted() click to toggle source
# File lib/emoji_differ.rb, line 25
def self.deleted
  load - current
end
load() click to toggle source
# File lib/emoji_differ.rb, line 46
def self.load
  File.open(config.cache_location, 'r') do |f|
    contents = ''

    while !f.eof? && (chunk = read_nb_chunk(f))
      contents += chunk
    end
    EmojiDiffer::List.from_json(contents)
  end
end
new_emoji() click to toggle source
# File lib/emoji_differ.rb, line 29
def self.new_emoji
  current - load
end
read_nb_chunk(io) click to toggle source
# File lib/emoji_differ.rb, line 39
def self.read_nb_chunk(io)
  io.read_nonblock(8000)
rescue IO::WaitReadable
  IO.select([io])
  retry
end
save() click to toggle source
# File lib/emoji_differ.rb, line 33
def self.save
  File.open(config.cache_location, 'w') do |f|
    f.print EmojiDiffer::SlackApi.new(config.token).emoji.to_json
  end
end