Class: Emojidex::Service::Search

Inherits:
Object
  • Object
show all
Defined in:
lib/emojidex/service/search.rb

Overview

Search functionality for the emojidex service

Class Method Summary collapse

Class Method Details

.advanced(code_cont, categories = [], tags = [], opts = {}) ⇒ Object

An expanded version of term with categories and tags as arguments. Options are: detailed: set to true to enable detailed results (defaults to false) limit: sets the number of items per page (default Emojidex::Defaults.limit) Returns a service Collection.



56
57
58
59
60
61
62
63
# File 'lib/emojidex/service/search.rb', line 56

def self.advanced(code_cont, categories = [], tags = [], opts = {})
  opts[:code_cont] = Emojidex.escape_code(code_cont)
  tags = [] << tags unless tags.class == Array
  opts[:tags] = tags
  categories = [] << categories unless categories.class == Array
  opts[:categories] = categories
  _do_search(opts)
end

.ending(code_ew, opts = {}) ⇒ Object

Searches for a code ending with the given term. Available options are the same as term. Returns a service Collection.



37
38
39
40
# File 'lib/emojidex/service/search.rb', line 37

def self.ending(code_ew, opts = {})
  opts[:code_ew] = Emojidex.escape_code(code_ew)
  _do_search(opts)
end

.find(code, opts = {}) ⇒ Object

Looks directly for an emoji with the exact code provided, returning only the emoji object if found, and nil if not. The find method is unique in the Search module as it is the only method that doesn’t actually search, it just looks up the code directly. The only options you can specify are :username and :auth_token for if you are not initializing a User within the client but still want to return R-18 emoji for users that have them enabled.



72
73
74
75
76
77
# File 'lib/emojidex/service/search.rb', line 72

def self.find(code, opts = {})
  res = Emojidex::Service::Transactor.get("emoji/#{Emojidex.escape_code(code)}",
                           _check_auth(opts));
  return nil if res.include? :error
  Emojidex::Data::Emoji.new(res)
end

.search(code_cont, opts = {}) ⇒ Object



22
23
24
# File 'lib/emojidex/service/search.rb', line 22

def self.search(code_cont, opts = {})
  term(code_cont, opts)
end

.starting(code_sw, opts = {}) ⇒ Object

Searches for a code starting with the given term. Available options are the same as term. Returns a service Collection.



29
30
31
32
# File 'lib/emojidex/service/search.rb', line 29

def self.starting(code_sw, opts = {})
  opts[:code_sw] = Emojidex.escape_code(code_sw)
  _do_search(opts)
end

.tags(tags, opts = {}) ⇒ Object

Searches an array of tags for emoji associated with all those tags. Available options are the same as term. Returns a service Collection.



45
46
47
48
49
# File 'lib/emojidex/service/search.rb', line 45

def self.tags(tags, opts = {})
  tags = [] << tags unless tags.class == Array
  opts[:tags] = tags
  _do_search(opts)
end

.term(code_cont, opts = {}) ⇒ Object

Searches by term with the options given. Options are: tags: an array of tags to restrict the search to categories: an arry of categories to restrict the serach to detailed: set to true to enable detailed results (defaults to false) limit: sets the number of items per page (default Emojidex::Defaults.limit) Returns a service Collection.



17
18
19
20
# File 'lib/emojidex/service/search.rb', line 17

def self.term(code_cont, opts = {})
  opts[:code_cont] = Emojidex.escape_code(code_cont)
  _do_search(opts)
end