emojidex 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/emojidex.gemspec +7 -6
- data/lib/emojidex.rb +9 -1
- data/lib/emojidex/client.rb +53 -0
- data/lib/emojidex/data/categories.rb +42 -42
- data/lib/emojidex/data/category.rb +10 -10
- data/lib/emojidex/data/collection.rb +39 -21
- data/lib/emojidex/data/collection/asset_information.rb +19 -3
- data/lib/emojidex/data/collection/cache.rb +28 -33
- data/lib/emojidex/data/collection/moji_data.rb +13 -11
- data/lib/emojidex/data/collection/static_collection.rb +3 -3
- data/lib/emojidex/data/emoji.rb +54 -37
- data/lib/emojidex/data/emoji/asset_information.rb +86 -3
- data/lib/emojidex/data/extended.rb +2 -2
- data/lib/emojidex/data/utf.rb +2 -2
- data/lib/emojidex/defaults.rb +9 -1
- data/lib/emojidex/env_helper.rb +1 -2
- data/lib/emojidex/service/collection.rb +70 -31
- data/lib/emojidex/service/error.rb +1 -0
- data/lib/emojidex/service/indexes.rb +31 -10
- data/lib/emojidex/service/search.rb +5 -4
- data/lib/emojidex/service/transactor.rb +35 -19
- data/lib/emojidex/service/user.rb +80 -37
- data/lib/emojidex/service/user/history_item.rb +23 -0
- data/lib/emojidex/{data → util}/collection_checker.rb +2 -3
- metadata +10 -79
- data/.coveralls.yml +0 -1
- data/.gitignore +0 -12
- data/.rspec +0 -2
- data/.rubocop.yml +0 -18
- data/.travis.yml +0 -18
- data/Gemfile +0 -18
- data/Guardfile +0 -19
- data/README.md +0 -73
- data/spec/emojidex/data/categories_spec.rb +0 -19
- data/spec/emojidex/data/collection_checker_spec.rb +0 -72
- data/spec/emojidex/data/collection_spec.rb +0 -136
- data/spec/emojidex/data/emoji_spec.rb +0 -47
- data/spec/emojidex/data/extended_spec.rb +0 -118
- data/spec/emojidex/data/utf_spec.rb +0 -91
- data/spec/emojidex/service/collection_spec.rb +0 -20
- data/spec/emojidex/service/error_spec.rb +0 -17
- data/spec/emojidex/service/indexes_spec.rb +0 -62
- data/spec/emojidex/service/search_spec.rb +0 -87
- data/spec/emojidex/service/transactor_spec.rb +0 -11
- data/spec/emojidex/service/user_spec.rb +0 -128
- data/spec/spec_helper.rb +0 -18
- data/spec/support/Genshin.svg +0 -126
- data/spec/support/couple_kiss/0.svg +0 -177
- data/spec/support/couple_kiss/1.svg +0 -177
- data/spec/support/couple_kiss/10.svg +0 -293
- data/spec/support/couple_kiss/11.svg +0 -235
- data/spec/support/couple_kiss/12.svg +0 -235
- data/spec/support/couple_kiss/13.svg +0 -235
- data/spec/support/couple_kiss/14.svg +0 -177
- data/spec/support/couple_kiss/15.svg +0 -177
- data/spec/support/couple_kiss/2.svg +0 -177
- data/spec/support/couple_kiss/3.svg +0 -235
- data/spec/support/couple_kiss/4.svg +0 -235
- data/spec/support/couple_kiss/5.svg +0 -235
- data/spec/support/couple_kiss/6.svg +0 -293
- data/spec/support/couple_kiss/7.svg +0 -235
- data/spec/support/couple_kiss/8.svg +0 -235
- data/spec/support/couple_kiss/9.svg +0 -235
- data/spec/support/couple_kiss/animation.json +0 -14
- data/spec/support/fixtures/categories.json +0 -14
- data/spec/support/fixtures/category.json +0 -5
- data/spec/support/fixtures/emoji.json +0 -28
- data/spec/support/fixtures/emoji_detailed.json +0 -41
- data/spec/support/fixtures/search_emoji.json +0 -21
- data/spec/support/fixtures/single_emoji.json +0 -19
- data/spec/support/fixtures/single_emoji_detailed.json +0 -30
- data/spec/support/sample_collections/good/emoji.json +0 -30
- data/spec/support/sample_collections/good/mouth.svg +0 -49
- data/spec/support/sample_collections/good/nut_and_bolt.svg +0 -372
- data/spec/support/sample_collections/good/purple_heart.svg +0 -24
- data/spec/support/sample_collections/good/px32/mouth.png +0 -0
- data/spec/support/sample_collections/good/px32/nut_and_bolt.png +0 -0
- data/spec/support/sample_collections/good/px32/purple_heart.png +0 -0
- data/spec/support/sample_collections/good/px32/woman_with_bunny_ears.png +0 -0
- data/spec/support/sample_collections/good/woman_with_bunny_ears.svg +0 -90
- data/spec/support/sample_collections/missing_assets/emoji.json +0 -30
- data/spec/support/sample_collections/missing_assets/mouth.svg +0 -49
- data/spec/support/sample_collections/missing_assets/purple_heart.svg +0 -24
- data/spec/support/sample_collections/missing_assets/px32/mouth.png +0 -0
- data/spec/support/sample_collections/missing_assets/px32/nut_and_bolt.png +0 -0
- data/spec/support/sample_collections/missing_assets/px32/woman_with_bunny_ears.png +0 -0
- data/spec/support/sample_collections/missing_assets/woman_with_bunny_ears.svg +0 -90
- data/spec/support/sample_collections/missing_index/emoji.json +0 -23
- data/spec/support/sample_collections/missing_index/mouth.svg +0 -49
- data/spec/support/sample_collections/missing_index/nut_and_bolt.svg +0 -372
- data/spec/support/sample_collections/missing_index/purple_heart.svg +0 -24
- data/spec/support/sample_collections/missing_index/px32/mouth.png +0 -0
- data/spec/support/sample_collections/missing_index/px32/nut_and_bolt.png +0 -0
- data/spec/support/sample_collections/missing_index/px32/purple_heart.png +0 -0
- data/spec/support/sample_collections/missing_index/px32/woman_with_bunny_ears.png +0 -0
- data/spec/support/sample_collections/missing_index/woman_with_bunny_ears.svg +0 -90
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
module Emojidex
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
module Emojidex
|
|
2
|
+
module Data
|
|
3
|
+
# collects and condenses UTF moji codes within a collection
|
|
4
|
+
module CollectionMojiData
|
|
5
|
+
attr_reader :moji_code_string, :moji_code_index
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
def condense_moji_code_data
|
|
8
|
+
@moji_code_string = ''
|
|
9
|
+
@moji_code_index = {}
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
@emoji.values.each do |moji|
|
|
12
|
+
unless moji.moji.nil?
|
|
13
|
+
@moji_code_string << moji.moji
|
|
14
|
+
@moji_code_index[moji.moji] = moji.code
|
|
15
|
+
end
|
|
14
16
|
end
|
|
15
17
|
end
|
|
16
18
|
end
|
|
@@ -8,12 +8,12 @@ module Emojidex
|
|
|
8
8
|
def load_from_server(detailed = true, locale = '??')
|
|
9
9
|
locale = Emojidex::EnvHelper.lang? if locale == '??'
|
|
10
10
|
begin
|
|
11
|
-
res = Emojidex::Service::Transactor.get(@endpoint,
|
|
11
|
+
res = Emojidex::Service::Transactor.get(@endpoint, detailed: detailed, locale: locale)
|
|
12
12
|
rescue
|
|
13
|
-
|
|
13
|
+
false
|
|
14
14
|
end
|
|
15
15
|
add_emoji(res)
|
|
16
|
-
|
|
16
|
+
true
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def check_and_load_static(collection)
|
data/lib/emojidex/data/emoji.rb
CHANGED
|
@@ -1,48 +1,65 @@
|
|
|
1
|
+
require_relative '../../emojidex'
|
|
1
2
|
require_relative 'emoji/asset_information'
|
|
2
3
|
|
|
3
|
-
module Emojidex
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
include Emojidex::Data::EmojiAssetInformation
|
|
10
|
-
|
|
11
|
-
def initialize(details = {})
|
|
12
|
-
init_asset_info(details)
|
|
13
|
-
@moji = details[:moji]
|
|
14
|
-
@code, @code_ja = details[:code], details[:code_ja]
|
|
15
|
-
@unicode, @full_name = details[:unicode], details[:full_name]
|
|
16
|
-
@emoticon = details[:emoticon]
|
|
17
|
-
@category = details[:category] ? details[:category].to_sym : :other
|
|
18
|
-
@tags = details[:tags].map { |tag| tag.to_sym } unless details[:tags].nil?
|
|
19
|
-
@link = details[:link]
|
|
20
|
-
@variants, @base = details[:variants] || [], details[:base]
|
|
21
|
-
@is_wide = details[:is_wide]
|
|
22
|
-
end
|
|
4
|
+
module Emojidex
|
|
5
|
+
module Data
|
|
6
|
+
# emoji base class
|
|
7
|
+
class Emoji
|
|
8
|
+
attr_accessor :moji, :category, :code, :code_ja,
|
|
9
|
+
:unicode, :tags, :emoticon, :variants, :base
|
|
23
10
|
|
|
24
|
-
|
|
25
|
-
@moji || ":#{@code}:"
|
|
26
|
-
end
|
|
11
|
+
include Emojidex::Data::EmojiAssetInformation
|
|
27
12
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
13
|
+
def initialize(details = {})
|
|
14
|
+
_init_identifier_info(details)
|
|
15
|
+
_init_descriptor_info(details)
|
|
16
|
+
init_asset_info(details)
|
|
17
|
+
end
|
|
31
18
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
instance_variables.each do |key|
|
|
35
|
-
hash[key.to_s.delete('@')] = instance_variable_get(key)
|
|
19
|
+
def to_s
|
|
20
|
+
@moji || Emojidex.encapsulate_code(@code)
|
|
36
21
|
end
|
|
37
|
-
hash
|
|
38
|
-
end
|
|
39
22
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
23
|
+
def to_json(*args)
|
|
24
|
+
to_hash.to_json(*args)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def to_hash
|
|
28
|
+
hash = {}
|
|
29
|
+
instance_variables.each do |key|
|
|
30
|
+
hash[key.to_s.delete('@')] = instance_variable_get(key)
|
|
31
|
+
end
|
|
32
|
+
hash
|
|
33
|
+
end
|
|
43
34
|
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
def [](key)
|
|
36
|
+
instance_variable_get(key.to_s.delete(':').insert(0, '@'))
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def []=(key, val)
|
|
40
|
+
instance_variable_set(key.to_s.delete(':').insert(0, '@'), val)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
private
|
|
44
|
+
|
|
45
|
+
def _init_identifier_info(details)
|
|
46
|
+
@moji = details[:moji].to_s
|
|
47
|
+
@code = Emojidex.escape_code(details[:code].to_s)
|
|
48
|
+
@code_ja = Emojidex.escape_code(details[:code_ja].to_s)
|
|
49
|
+
@unicode = details[:unicode].to_s
|
|
50
|
+
@full_name = details[:full_name].to_s
|
|
51
|
+
@emoticon = details[:emoticon].to_s
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def _init_descriptor_info(details)
|
|
55
|
+
@category = details[:category] ? details[:category].to_sym : :other
|
|
56
|
+
@tags = details[:tags].map(&:to_sym) unless details[:tags].nil?
|
|
57
|
+
@link = details[:link].to_s
|
|
58
|
+
@variants = details[:variants] || []
|
|
59
|
+
@variants.uniq!
|
|
60
|
+
@base = details[:base]
|
|
61
|
+
@is_wide = details[:is_wide]
|
|
62
|
+
end
|
|
46
63
|
end
|
|
47
64
|
end
|
|
48
65
|
end
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
require 'digest/md5'
|
|
1
2
|
require_relative '../../defaults'
|
|
2
3
|
|
|
3
4
|
module Emojidex
|
|
4
5
|
module Data
|
|
5
6
|
# Asset information for emoji
|
|
6
7
|
module EmojiAssetInformation
|
|
7
|
-
attr_accessor :checksums, :paths
|
|
8
|
+
attr_accessor :checksums, :paths, :local_checksums
|
|
8
9
|
|
|
9
10
|
def init_asset_info(details)
|
|
10
11
|
blank_checksums
|
|
@@ -25,6 +26,7 @@ module Emojidex
|
|
|
25
26
|
Emojidex::Defaults.sizes.keys.each do |size|
|
|
26
27
|
@checksums[:png][size] = nil
|
|
27
28
|
end
|
|
29
|
+
@local_checksums = @checksums.dup
|
|
28
30
|
end
|
|
29
31
|
|
|
30
32
|
def fill_checksums(checksums)
|
|
@@ -35,10 +37,91 @@ module Emojidex
|
|
|
35
37
|
end
|
|
36
38
|
end
|
|
37
39
|
|
|
40
|
+
def fill_paths(paths)
|
|
41
|
+
@paths[:svg] = paths[:svg] if paths.include? :svg
|
|
42
|
+
return unless paths.include? :png
|
|
43
|
+
Emojidex::Defaults.sizes.keys.each do |size|
|
|
44
|
+
@paths[:png][size] = paths[:png][size] if paths[:png].include? size
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Acquires path and caches the target file if not found or out of date
|
|
49
|
+
def path(format, size = nil)
|
|
50
|
+
fp = path?(format, size)
|
|
51
|
+
cache(format, [size]) unless !fp.nil? && File.exist?(fp)
|
|
52
|
+
fp
|
|
53
|
+
end
|
|
54
|
+
|
|
38
55
|
# returns asset path
|
|
39
56
|
def path?(format, size = nil)
|
|
40
|
-
|
|
41
|
-
|
|
57
|
+
case format
|
|
58
|
+
when :svg
|
|
59
|
+
return @paths[format] if File.exist?(@paths[format])
|
|
60
|
+
when :png
|
|
61
|
+
return nil if size.nil?
|
|
62
|
+
return @paths[format][size] if File.exist?(@paths[format][size])
|
|
63
|
+
end
|
|
64
|
+
nil
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Caches a file of the specified format in the specified sizes
|
|
68
|
+
def cache(format, sizes = nil)
|
|
69
|
+
generate_local_checksums
|
|
70
|
+
case format
|
|
71
|
+
when :png
|
|
72
|
+
_cache_png(sizes) unless sizes.nil?
|
|
73
|
+
when :svg
|
|
74
|
+
_cache_svg
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Generates a checksum for each locally cached file
|
|
79
|
+
def generate_local_checksum(format, size = nil)
|
|
80
|
+
case format
|
|
81
|
+
when :png
|
|
82
|
+
return @local_checksums[:png][size] = _checksum_for_file(@paths[:png][size])
|
|
83
|
+
when :svg
|
|
84
|
+
return @local_checksum[:svg] = _checksum_for_file(@paths[:svg])
|
|
85
|
+
end
|
|
86
|
+
nil
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def generate_local_checksums
|
|
90
|
+
@local_checksums[:svg] = _checksum_for_file(@paths[:svg])
|
|
91
|
+
@paths[:png].keys.each do |size|
|
|
92
|
+
@local_checksums[:png][size] = _checksum_for_file(@paths[:png][size])
|
|
93
|
+
end
|
|
94
|
+
@local_checksums
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
private
|
|
98
|
+
|
|
99
|
+
def _cache_svg
|
|
100
|
+
@paths[:svg] = Dir.pwd unless (@paths.include? :svg) && !@paths[:svg].nil?
|
|
101
|
+
return if File.exist?(@paths[:svg]) && !@checksums[:svg].nil? &&
|
|
102
|
+
@checksums[:svg] == generate_local_checksum(:svg)
|
|
103
|
+
response = Emojidex::Service::Transactor.download("#{@code}.svg")
|
|
104
|
+
File.open(@paths[:svg], 'wb') { |fp| fp.write(response.body) }
|
|
105
|
+
generate_local_checksum(:svg)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def _cache_png(sizes)
|
|
109
|
+
sizes.each do |size|
|
|
110
|
+
unless @paths.include?(:png) &&
|
|
111
|
+
@paths[:png].include?(size) && @paths[:png][size].nil? == false
|
|
112
|
+
@paths[:png][size] = "#{Dir.pwd}/#{size}/#{@code}.png"
|
|
113
|
+
end
|
|
114
|
+
next if File.exist?(@paths[:png][size]) &&
|
|
115
|
+
!@checksums[:png][size].nil? &&
|
|
116
|
+
@checksums[:png][size] == generate_local_checksum(:png, size)
|
|
117
|
+
response = Emojidex::Service::Transactor.download("#{size}/#{@code}.png")
|
|
118
|
+
File.open(@paths[:png][size], 'wb') { |fp| fp.write(response.body) }
|
|
119
|
+
generate_local_checksum(:png, size)
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def _checksum_for_file(path)
|
|
124
|
+
(File.exist? path) ? Digest::MD5.file(path).hexdigest : nil
|
|
42
125
|
end
|
|
43
126
|
end
|
|
44
127
|
end
|
|
@@ -7,8 +7,8 @@ module Emojidex
|
|
|
7
7
|
class Extended < Collection
|
|
8
8
|
include Emojidex::Data::StaticCollection
|
|
9
9
|
|
|
10
|
-
def initialize
|
|
11
|
-
super
|
|
10
|
+
def initialize(opts = {})
|
|
11
|
+
super(opts)
|
|
12
12
|
@endpoint = 'extended_emoji'
|
|
13
13
|
load_from_server unless check_and_load_static('extended')
|
|
14
14
|
@emoji
|
data/lib/emojidex/data/utf.rb
CHANGED
data/lib/emojidex/defaults.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Emojidex
|
|
2
2
|
# Global defines for emojidex
|
|
3
3
|
class Defaults
|
|
4
|
-
@@selected_sizes = [:
|
|
4
|
+
@@selected_sizes = [:hdpi, :px32]
|
|
5
5
|
@@selected_formats = [:png]
|
|
6
6
|
|
|
7
7
|
def self.sizes
|
|
@@ -31,5 +31,13 @@ module Emojidex
|
|
|
31
31
|
def self.lang
|
|
32
32
|
'en'
|
|
33
33
|
end
|
|
34
|
+
|
|
35
|
+
def self.encapsulator
|
|
36
|
+
':'
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def self.system_cache_path
|
|
40
|
+
ENV['EMOJI_CACHE'] || "#{ENV['HOME']}/.emojidex/"
|
|
41
|
+
end
|
|
34
42
|
end
|
|
35
43
|
end
|
data/lib/emojidex/env_helper.rb
CHANGED
|
@@ -6,61 +6,100 @@ module Emojidex
|
|
|
6
6
|
module Service
|
|
7
7
|
# A modified collection class for collections tied to the emojidex service
|
|
8
8
|
class Collection < Emojidex::Data::Collection
|
|
9
|
-
attr_reader :endpoint, :page, :limit, :detailed, :auto_cache
|
|
9
|
+
attr_reader :endpoint, :page, :limit, :detailed, :auto_cache, :status
|
|
10
10
|
|
|
11
11
|
def initialize(opts = {})
|
|
12
|
-
@
|
|
13
|
-
add_emoji(opts[:emoji]) && opts.delete(:emoji) if opts.include? :emoji
|
|
12
|
+
@opts = opts
|
|
14
13
|
|
|
15
|
-
@
|
|
16
|
-
opts.delete(:username)
|
|
17
|
-
@auth_token = opts[:auth_token] || nil
|
|
18
|
-
opts.delete(:auth_token)
|
|
14
|
+
@status = ''
|
|
19
15
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@limit = opts[:limit] || Emojidex::Defaults.limit
|
|
25
|
-
opts.delete(:limit)
|
|
26
|
-
@detailed = opts[:detailed] || false
|
|
27
|
-
opts.delete(:detailed)
|
|
16
|
+
_init_emoji
|
|
17
|
+
_init_user_info
|
|
18
|
+
_init_endpoint
|
|
19
|
+
_init_cache
|
|
28
20
|
|
|
29
|
-
@auto_cache = opts[:auto_cache] || true
|
|
30
|
-
opts.delete(:auto_cache)
|
|
21
|
+
@auto_cache = @opts[:auto_cache] || true
|
|
22
|
+
@opts.delete(:auto_cache)
|
|
31
23
|
|
|
32
|
-
auto_init = opts[:auto_init] || true
|
|
33
|
-
opts.delete(:auto_init)
|
|
34
|
-
|
|
35
|
-
@opts = opts
|
|
24
|
+
auto_init = @opts[:auto_init] || true
|
|
25
|
+
@opts.delete(:auto_init)
|
|
36
26
|
|
|
37
27
|
more if auto_init
|
|
28
|
+
|
|
38
29
|
@emoji
|
|
39
30
|
end
|
|
40
31
|
|
|
41
32
|
# Get the next page worth of emoji and add them to the collection
|
|
42
|
-
def more
|
|
33
|
+
def more
|
|
43
34
|
@page += 1
|
|
44
35
|
|
|
45
36
|
opts = { page: @page, limit: @limit, detailed: @detailed }
|
|
46
|
-
opts[:username] = @username unless @username.nil?
|
|
47
|
-
opts[:auth_token] = @auth_token unless @auth_token.nil?
|
|
37
|
+
opts[:username] = @username unless @username.nil? || @username == ''
|
|
38
|
+
opts[:auth_token] = @auth_token unless @auth_token.nil? || @auth_token == ''
|
|
48
39
|
opts.merge! @opts
|
|
49
40
|
|
|
50
|
-
|
|
41
|
+
begin
|
|
42
|
+
moji_page = Emojidex::Service::Transactor.get(@endpoint, opts)
|
|
43
|
+
rescue Error::Unauthorized => e
|
|
44
|
+
@status = e.message
|
|
45
|
+
return {}
|
|
46
|
+
rescue Error::PaymentRequired => e
|
|
47
|
+
@status = e.message
|
|
48
|
+
return {}
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
_process_moji_page(moji_page)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
|
|
56
|
+
def _init_emoji
|
|
57
|
+
@emoji = {}
|
|
58
|
+
return unless @opts.include? :emoji
|
|
59
|
+
add_emoji(@opts[:emoji])
|
|
60
|
+
@opts.delete(:emoji)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def _init_user_info
|
|
64
|
+
@username = @opts[:username] || nil
|
|
65
|
+
@opts.delete(:username)
|
|
66
|
+
@auth_token = @opts[:auth_token] || nil
|
|
67
|
+
@opts.delete(:auth_token)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def _init_endpoint
|
|
71
|
+
@endpoint = @opts[:endpoint] || 'emoji'
|
|
72
|
+
@opts.delete(:endpoint)
|
|
73
|
+
@page = @opts[:page] || 0
|
|
74
|
+
@opts.delete(:page)
|
|
75
|
+
@limit = @opts[:limit] || Emojidex::Defaults.limit
|
|
76
|
+
@opts.delete(:limit)
|
|
77
|
+
@detailed = @opts[:detailed] || false
|
|
78
|
+
@opts.delete(:detailed)
|
|
79
|
+
end
|
|
51
80
|
|
|
52
|
-
|
|
53
|
-
|
|
81
|
+
def _process_moji_page(moji_page)
|
|
82
|
+
if moji_page.is_a? Hash
|
|
83
|
+
unless moji_page.key? :emoji
|
|
54
84
|
@page -= 1 # reset page beacuse we failed
|
|
55
85
|
return {}
|
|
56
86
|
end
|
|
57
87
|
|
|
58
|
-
add_emoji(
|
|
59
|
-
return page_moji[:emoji]
|
|
88
|
+
return add_emoji(moji_page[:emoji])
|
|
60
89
|
end
|
|
61
|
-
|
|
90
|
+
|
|
91
|
+
add_emoji(moji_page)
|
|
62
92
|
cache! if @auto_cache
|
|
63
|
-
|
|
93
|
+
moji_page
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def _init_cache
|
|
97
|
+
if @opts.include? :cache_path
|
|
98
|
+
setup_cache(@opts[:cache_path])
|
|
99
|
+
@opts.delete :cache_path
|
|
100
|
+
else
|
|
101
|
+
setup_cache
|
|
102
|
+
end
|
|
64
103
|
end
|
|
65
104
|
end
|
|
66
105
|
end
|