class Emojidex::Data::Categories

Holds a master list of categories

Attributes

categories[RW]

Public Class Methods

new(categories_json = nil) click to toggle source
# File lib/emojidex/data/categories.rb, line 7
def initialize(categories_json = nil)
  if categories_json
    load_categories(categories_json)
  else
    load_standard_categories
  end
end

Public Instance Methods

collect(&block) click to toggle source

collect override to map each functionality to the categories hash

# File lib/emojidex/data/categories.rb, line 31
def collect(&block)
  @categories.values.collect(&block)
end
each(&block) click to toggle source

each override to map each functionality to the categories hash

# File lib/emojidex/data/categories.rb, line 16
def each(&block)
  @categories.values.each(&block)
end
load_categories(json) click to toggle source

loads categories from a JSON hash object / JSON text

# File lib/emojidex/data/categories.rb, line 36
def load_categories(json)
  raw = JSON.parse(json, symbolize_names: true)
  raw = raw[:categories]

  @categories ||= {}
  raw.each do |category_info|
    category = Emojidex::Data::Category.new category_info
    @categories[category.code.to_sym] = category
  end
end
load_standard_categories() click to toggle source

loads standard categories local to the emojidex package *automatically called on initialize if no options are passed

# File lib/emojidex/data/categories.rb, line 49
def load_standard_categories
  load_categories(IO.read(File.expand_path('../../../../emoji/categories.json', __FILE__)))
end
map(&block) click to toggle source

map override to map each functionality to the categories hash

# File lib/emojidex/data/categories.rb, line 26
def map(&block)
  @categories.values.map(&block)
end
select(&block) click to toggle source

select override to map select functionality to the categories hash

# File lib/emojidex/data/categories.rb, line 21
def select(&block)
  @categories.values.select(&block)
end