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