class Emojidex::Service::Collection
A modified collection class for collections tied to the emojidex service
Attributes
auto_cache[R]
detailed[R]
endpoint[R]
limit[R]
page[R]
status[R]
Public Class Methods
new(opts = {})
click to toggle source
# File lib/emojidex/service/collection.rb, line 11 def initialize(opts = {}) @opts = opts @status = '' @auto_cache = @opts[:auto_cache] || true @opts.delete(:auto_cache) @formats = @opts[:formats] || Emojidex::Defaults.selected_formats @opts.delete(:formats) @sizes = @opts[:sizes] || Emojidex::Defaults.selected_sizes @opts.delete(:sizes) auto_init = @opts[:auto_init] || true @opts.delete(:auto_init) _init_emoji _init_user_info _init_endpoint _init_cache more if auto_init @emoji end
Public Instance Methods
more()
click to toggle source
Get the next page worth of emoji and add them to the collection
# File lib/emojidex/service/collection.rb, line 39 def more @page += 1 opts = { page: @page, limit: @limit, detailed: @detailed } opts[:username] = @username unless @username.nil? || @username == '' opts[:auth_token] = @auth_token unless @auth_token.nil? || @auth_token == '' opts.merge! @opts begin moji_page = Emojidex::Service::Transactor.get(@endpoint, opts) rescue Error::Unauthorized => e @status = e.message return {} rescue Error::PaymentRequired => e @status = e.message return {} end _process_moji_page(moji_page) cache! if @auto_cache moji_page end
Private Instance Methods
_init_cache()
click to toggle source
# File lib/emojidex/service/collection.rb, line 105 def _init_cache if @opts.include? :cache_path setup_cache(@opts[:cache_path]) @opts.delete :cache_path else setup_cache end @raster_source_path = @vector_source_path = @source_path = @cache_path end
_init_emoji()
click to toggle source
# File lib/emojidex/service/collection.rb, line 66 def _init_emoji @emoji = {} return unless @opts.include? :emoji add_emoji(@opts[:emoji]) @opts.delete(:emoji) end
_init_endpoint()
click to toggle source
# File lib/emojidex/service/collection.rb, line 80 def _init_endpoint @endpoint = @opts[:endpoint] || 'emoji' @opts.delete(:endpoint) @page = @opts[:page] || 0 @opts.delete(:page) @limit = @opts[:limit] || Emojidex::Defaults.limit @opts.delete(:limit) @detailed = @opts[:detailed] || false @opts.delete(:detailed) end
_init_user_info()
click to toggle source
# File lib/emojidex/service/collection.rb, line 73 def _init_user_info @username = @opts[:username] || nil @opts.delete(:username) @auth_token = @opts[:auth_token] || nil @opts.delete(:auth_token) end
_process_moji_page(moji_page)
click to toggle source
# File lib/emojidex/service/collection.rb, line 91 def _process_moji_page(moji_page) if moji_page.is_a? Hash unless moji_page.key? :emoji @page -= 1 # reset page beacuse we failed return {} end return add_emoji(moji_page[:emoji]) end add_emoji(moji_page) moji_page end