emojidex 0.0.23 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.rubocop.yml +3 -0
  4. data/.travis.yml +7 -6
  5. data/Gemfile +0 -2
  6. data/Guardfile +17 -8
  7. data/README.md +54 -17
  8. data/emojidex.gemspec +4 -1
  9. data/lib/emojidex.rb +12 -10
  10. data/lib/emojidex/{categories.rb → data/categories.rb} +3 -4
  11. data/lib/emojidex/{category.rb → data/category.rb} +1 -1
  12. data/lib/emojidex/data/collection.rb +158 -0
  13. data/lib/emojidex/data/collection/asset_information.rb +52 -0
  14. data/lib/emojidex/data/collection/cache.rb +137 -0
  15. data/lib/emojidex/{collection → data/collection}/moji_data.rb +1 -1
  16. data/lib/emojidex/data/collection/static_collection.rb +35 -0
  17. data/lib/emojidex/data/collection_checker.rb +94 -0
  18. data/lib/emojidex/{emoji.rb → data/emoji.rb} +3 -2
  19. data/lib/emojidex/data/emoji/asset_information.rb +45 -0
  20. data/lib/emojidex/data/extended.rb +18 -0
  21. data/lib/emojidex/data/utf.rb +18 -0
  22. data/lib/emojidex/defaults.rb +21 -0
  23. data/lib/emojidex/env_helper.rb +11 -0
  24. data/lib/emojidex/service/collection.rb +67 -0
  25. data/lib/emojidex/service/error.rb +9 -0
  26. data/lib/emojidex/service/indexes.rb +43 -0
  27. data/lib/emojidex/service/search.rb +82 -0
  28. data/lib/emojidex/service/transactor.rb +100 -0
  29. data/lib/emojidex/service/user.rb +233 -0
  30. data/spec/{categories_spec.rb → emojidex/data/categories_spec.rb} +4 -3
  31. data/spec/{collection_checker_spec.rb → emojidex/data/collection_checker_spec.rb} +12 -15
  32. data/spec/{collection_spec.rb → emojidex/data/collection_spec.rb} +40 -23
  33. data/spec/{emoji_spec.rb → emojidex/data/emoji_spec.rb} +2 -2
  34. data/spec/{extended_spec.rb → emojidex/data/extended_spec.rb} +21 -10
  35. data/spec/{utf_spec.rb → emojidex/data/utf_spec.rb} +22 -17
  36. data/spec/emojidex/service/collection_spec.rb +20 -0
  37. data/spec/emojidex/service/error_spec.rb +17 -0
  38. data/spec/emojidex/service/indexes_spec.rb +62 -0
  39. data/spec/emojidex/service/search_spec.rb +87 -0
  40. data/spec/emojidex/service/transactor_spec.rb +11 -0
  41. data/spec/emojidex/service/user_spec.rb +128 -0
  42. data/spec/spec_helper.rb +9 -62
  43. metadata +36 -31
  44. data/lib/emojidex/api/categories.rb +0 -16
  45. data/lib/emojidex/api/emoji.rb +0 -26
  46. data/lib/emojidex/api/search/emoji.rb +0 -16
  47. data/lib/emojidex/client.rb +0 -60
  48. data/lib/emojidex/collection.rb +0 -156
  49. data/lib/emojidex/collection/asset_information.rb +0 -49
  50. data/lib/emojidex/collection/cache.rb +0 -78
  51. data/lib/emojidex/collection_checker.rb +0 -93
  52. data/lib/emojidex/emoji/asset_information.rb +0 -20
  53. data/lib/emojidex/error.rb +0 -15
  54. data/lib/emojidex/extended.rb +0 -19
  55. data/lib/emojidex/service.rb +0 -32
  56. data/lib/emojidex/utf.rb +0 -19
  57. data/spec/api/categories_spec.rb +0 -49
  58. data/spec/api/emoji_spec.rb +0 -89
  59. data/spec/api/search/emoji_spec.rb +0 -30
  60. data/spec/client_spec.rb +0 -24
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+ require 'emojidex/service/error'
3
+
4
+ describe Emojidex::Service::Error do
5
+ describe 'exception classes can be raised and rescued' do
6
+ it 'defines exceptions' do
7
+ expect(Emojidex::Service::Error.constants.length > 0).to be true
8
+ end
9
+
10
+ # it 'raises' do
11
+ # expect(raise Emojidex::Service::Error::Unauthorized).to raise_error(
12
+ # Emojidex::Service::Error::Unauthorized)
13
+ # expect(raise Emojidex::Service::Error::UprocessableEntity).to raise_error(
14
+ # Emojidex::Service::Error::UnprocessableEntity)
15
+ # end
16
+ end
17
+ end
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+ require 'emojidex/service/indexes'
3
+ require 'emojidex/defaults'
4
+
5
+ describe Emojidex::Service::Indexes do
6
+ describe 'emoji' do
7
+ it 'returns a service collection' do
8
+ idx = Emojidex::Service::Indexes.emoji
9
+ expect(idx).to be_a(Emojidex::Service::Collection)
10
+ expect(idx.emoji.count).to be(Emojidex::Defaults.limit)
11
+ idx.more
12
+ expect(idx.emoji.count).to be(Emojidex::Defaults.limit * 2)
13
+ expect(idx.source_path).to be nil
14
+ expect(idx.vector_source_path).to be nil
15
+ expect(idx.raster_source_path).to be nil
16
+ end
17
+ end
18
+
19
+ describe 'newest' do
20
+ it 'returns a service collection' do
21
+ idx = Emojidex::Service::Indexes.newest
22
+ expect(idx).to be_a(Emojidex::Service::Collection)
23
+ expect(idx.source_path).to be nil
24
+ expect(idx.vector_source_path).to be nil
25
+ expect(idx.raster_source_path).to be nil
26
+ end
27
+ end
28
+
29
+ describe 'popular' do
30
+ it 'returns a service collection' do
31
+ idx = Emojidex::Service::Indexes.popular
32
+ expect(idx).to be_a(Emojidex::Service::Collection)
33
+ expect(idx.source_path).to be nil
34
+ expect(idx.vector_source_path).to be nil
35
+ expect(idx.raster_source_path).to be nil
36
+ end
37
+ end
38
+
39
+ describe 'moji_codes' do
40
+ it 'returns a hash with three different types of standard emoji mappings' do
41
+ codes = Emojidex::Service::Indexes.moji_codes
42
+ expect(codes.key? :moji_string).to be true
43
+ expect(codes[:moji_string].length > 0).to be true
44
+ expect(codes.key? :moji_array).to be true
45
+ expect(codes[:moji_array].length > 0).to be true
46
+ expect(codes.key? :moji_index).to be true
47
+ expect(codes[:moji_index].key? '💩').to be true
48
+ expect(codes[:moji_index]['💩']).to eq 'poop'
49
+ end
50
+
51
+ it 'returns emoji mappings in Japanese' do
52
+ codes = Emojidex::Service::Indexes.moji_codes('ja')
53
+ expect(codes.key? :moji_string).to be true
54
+ expect(codes[:moji_string].length > 0).to be true
55
+ expect(codes.key? :moji_array).to be true
56
+ expect(codes[:moji_array].length > 0).to be true
57
+ expect(codes.key? :moji_index).to be true
58
+ expect(codes[:moji_index].key? '💩').to be true
59
+ expect(codes[:moji_index]['💩']).to eq 'うんち'
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,87 @@
1
+ require 'spec_helper'
2
+ require 'emojidex/service/search'
3
+
4
+ describe Emojidex::Service::Search do
5
+ describe '.term' do
6
+ it 'searches for a term and returns a collection with the results' do
7
+ res = Emojidex::Service::Search.term('chocolate')
8
+ expect(res).to be_a(Emojidex::Service::Collection)
9
+ expect(res.emoji.count >= 3).to be true
10
+ end
11
+ end
12
+
13
+ describe '.search' do
14
+ it 'searches for a term and returns a collection with the results' do
15
+ res = Emojidex::Service::Search.term('チョコ')
16
+ expect(res).to be_a(Emojidex::Service::Collection)
17
+ expect(res.emoji.count >= 3).to be true
18
+ end
19
+ end
20
+
21
+ describe '.starting' do
22
+ it 'searches for a code starting with the term and returns a collection with the results' do
23
+ res = Emojidex::Service::Search.starting('face')
24
+ expect(res).to be_a(Emojidex::Service::Collection)
25
+ expect(res.emoji.count >= 3).to be true
26
+ for i in 0..10
27
+ expect(/^face/.match(res.emoji.values[i].code).nil?).to be false
28
+ end
29
+ end
30
+ end
31
+
32
+ describe '.ending' do
33
+ it 'searches for a code starting with the term and returns a collection with the results' do
34
+ res = Emojidex::Service::Search.ending('face')
35
+ expect(res).to be_a(Emojidex::Service::Collection)
36
+ expect(res.emoji.count >= 3).to be true
37
+ for i in 0..10
38
+ expect(/face$/.match(res.emoji.values[i].code).nil?).to be false
39
+ end
40
+ end
41
+ end
42
+
43
+ describe '.tags' do
44
+ it 'searches for emoji by a single tag' do
45
+ res = Emojidex::Service::Search.tags(:metal)
46
+ expect(res.emoji.values[0].tags.include? :metal).to be true
47
+ end
48
+
49
+ it 'searches for emoji by multiple tags and mixed symbols/strings with spaces' do
50
+ res = Emojidex::Service::Search.tags([:metal, 'fist', 'heavy metal'])
51
+ expect(res.emoji.values[0].tags.include? :metal).to be true
52
+ expect(res.emoji.values[0].tags.include? :fist).to be true
53
+ end
54
+ end
55
+
56
+ describe '.advanced' do
57
+ it 'searches for a term' do
58
+ res = Emojidex::Service::Search.advanced('face')
59
+ expect(res).to be_a(Emojidex::Service::Collection)
60
+ expect(res.emoji.count > 0).to be true
61
+ for i in 0..(res.emoji.count - 1)
62
+ expect(/face/.match(res.emoji.values[i].code).nil?).to be false
63
+ end
64
+ end
65
+
66
+ it 'searches for a term constrained with a tag' do
67
+ res = Emojidex::Service::Search.advanced('metal', [], :fist)
68
+ expect(res).to be_a(Emojidex::Service::Collection)
69
+ expect(res.emoji.count > 0).to be true
70
+ for i in 0..(res.emoji.count - 1)
71
+ expect(/metal/.match(res.emoji.values[i].code).nil?).to be false
72
+ expect(res.emoji.values[i].tags.include? :fist).to be true
73
+ end
74
+ end
75
+
76
+ it 'searches for a term constrained by a category' do
77
+ res = Emojidex::Service::Search.advanced('san', [:food])
78
+ expect(res).to be_a(Emojidex::Service::Collection)
79
+ expect(res.emoji.count > 0).to be true
80
+ for i in 0..(res.emoji.count - 1)
81
+ expect(/san/.match(res.emoji.values[i].code).nil?).to be false
82
+ expect(res.emoji.values[i].category).to be :food
83
+ end
84
+ end
85
+
86
+ end
87
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+ require 'emojidex/service/transactor'
3
+
4
+ describe Emojidex::Service::Transactor do
5
+ describe '.get' do
6
+ it 'gets data' do
7
+ res = Emojidex::Service::Transactor.get('emoji')
8
+ expect(res.count > 0).to be true
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,128 @@
1
+ require 'spec_helper'
2
+ require 'emojidex/service/user'
3
+
4
+
5
+ describe Emojidex::Service::User do
6
+ it 'has a set of auth status codes which define if a user is authorized' do
7
+ expect(Emojidex::Service::User.auth_status_codes.include? :verified).to be true
8
+ expect(Emojidex::Service::User.auth_status_codes.include? :unverified).to be true
9
+ expect(Emojidex::Service::User.auth_status_codes[:verified]).to be true
10
+ expect(Emojidex::Service::User.auth_status_codes[:unverified]).to be false
11
+ end
12
+
13
+ describe 'initialize' do
14
+ it 'sets defaults' do
15
+ user = Emojidex::Service::User.new
16
+ expect(user.username).to eq ''
17
+ expect(user.pro).to eq false
18
+ expect(user.premium).to eq false
19
+ expect(user.pro_exp).to eq nil
20
+ expect(user.premium_exp).to eq nil
21
+ end
22
+
23
+ it 'defaults to an unauthroized state' do
24
+ user = Emojidex::Service::User.new
25
+ expect(user.authorized?).to be false
26
+ end
27
+ end
28
+
29
+ describe 'authorize' do
30
+ it 'fails authorization with a bad token' do
31
+ user = Emojidex::Service::User.new
32
+ expect(user.authorize('test', '12345')).to be false
33
+ expect(user.status).to eq :unverified
34
+ end
35
+
36
+ it 'authorizes with a good token' do
37
+ user = Emojidex::Service::User.new
38
+ expect(user.authorize('test',
39
+ '1798909355d57c9a93e3b82d275594e7c7c000db05021138')).to be true
40
+ expect(user.status).to eq :verified
41
+ end
42
+
43
+ it 'fails to sync history when unauthorized' do
44
+ user = Emojidex::Service::User.new
45
+ expect(user.sync_history).to be false
46
+ expect(user.history.class == Array).to be true
47
+ expect(user.history.size).to eq 0
48
+ end
49
+
50
+ it 'syncs history when authorized' do
51
+ user = Emojidex::Service::User.new
52
+ user.authorize('test', '1798909355d57c9a93e3b82d275594e7c7c000db05021138')
53
+ expect(user.sync_history).to be true
54
+ expect(user.history.size > 0).to be true
55
+ end
56
+
57
+ it 'fails to sync favorites when unauthorized' do
58
+ user = Emojidex::Service::User.new
59
+ expect(user.sync_favorites).to be false
60
+ end
61
+
62
+ it 'syncs favorites when authorized' do
63
+ user = Emojidex::Service::User.new
64
+ user.authorize('test', '1798909355d57c9a93e3b82d275594e7c7c000db05021138')
65
+ expect(user.sync_favorites).to be true
66
+ expect(user.favorites.emoji.length > 0).to be true
67
+ end
68
+
69
+ it 'refuses to add a favorite when not authorized' do
70
+ user = Emojidex::Service::User.new
71
+ expect(user.add_favorite('combat knife')).to be false
72
+ end
73
+
74
+ it 'adds a favorite when authorized' do
75
+ user = Emojidex::Service::User.new
76
+ user.authorize('test', '1798909355d57c9a93e3b82d275594e7c7c000db05021138')
77
+ expect(user.add_favorite('combat_knife')).to be true
78
+ end
79
+
80
+ it 'refuses to remove a favorite when not authorized' do
81
+ user = Emojidex::Service::User.new
82
+ expect(user.remove_favorite('combat_knife')).to be false
83
+ end
84
+
85
+ it 'removes a favorite when authorized' do
86
+ user = Emojidex::Service::User.new
87
+ user.authorize('test', '1798909355d57c9a93e3b82d275594e7c7c000db05021138')
88
+ user.add_favorite('combat_knife')
89
+ expect(user.remove_favorite('combat_knife')).to be true
90
+ end
91
+
92
+ it 'saves user data' do
93
+ user = Emojidex::Service::User.new
94
+ user.authorize('test', '1798909355d57c9a93e3b82d275594e7c7c000db05021138')
95
+ user.save(tmp_cache_path)
96
+ expect(File.exist? "#{tmp_cache_path}/user.json").to be true
97
+ expect(File.exist? "#{tmp_cache_path}/history.json").to be true
98
+ expect(File.exist? "#{tmp_cache_path}/favorites.json").to be true
99
+ end
100
+
101
+ it 'loads user data' do
102
+ user = Emojidex::Service::User.new
103
+ user.authorize('test', '1798909355d57c9a93e3b82d275594e7c7c000db05021138')
104
+ user.sync_favorites
105
+ user.sync_history
106
+ user.add_favorite('忍者') # just in case
107
+ user.save(tmp_cache_path)
108
+
109
+ # without syncing
110
+ user = Emojidex::Service::User.new
111
+ user.load(tmp_cache_path)
112
+ expect(user.username).to eq 'test'
113
+ expect(user.authorized?).to be true
114
+ expect(user.favorites.emoji.count > 0).to be true
115
+ expect(user.history.length > 0).to be true
116
+
117
+ # with syncing
118
+ user = Emojidex::Service::User.new
119
+ user.load(tmp_cache_path, false)
120
+ expect(user.username).to eq 'test'
121
+ expect(user.authorized?).to be false
122
+ expect(user.status).to be :loaded
123
+ expect(user.favorites.emoji.count > 0).to be true
124
+ expect(user.history.length > 0).to be true
125
+ end
126
+
127
+ end
128
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,71 +1,18 @@
1
- # require "codeclimate-test-reporter"
2
- # CodeClimate::TestReporter.start
3
-
4
1
  require 'rspec'
5
- require 'webmock/rspec'
6
2
  require 'emojidex'
7
- require 'emojidex/collection'
3
+ require 'emojidex/data/collection'
8
4
  require 'emojidex/vectors'
9
5
 
10
- WebMock.disable_net_connect!(allow_localhost: true)
11
-
12
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
13
-
14
- if ENV['TRAVIS'] || ENV['COVERAGE']
15
- require 'simplecov'
16
-
17
- if ENV['TRAVIS']
18
- require 'coveralls'
19
- SimpleCov.formatter = Coveralls::SimpleCov::Formatter
20
- end
21
-
22
- SimpleCov.start do
23
- add_filter '/spec/'
24
- end
25
- end
26
-
27
- def a_delete(path)
28
- a_request(:delete, path)
29
- end
30
-
31
- def a_get(path)
32
- a_request(:get, path)
33
- end
34
-
35
- def a_post(path)
36
- a_request(:post, path)
37
- end
38
-
39
- def a_put(path)
40
- a_request(:put, path)
41
- end
42
-
43
- def stub_delete(path)
44
- stub_request(:delete, path)
45
- end
46
-
47
- def stub_get(path)
48
- stub_request(:get, path)
49
- end
50
-
51
- def stub_post(path)
52
- stub_request(:post, path)
53
- end
54
-
55
- def stub_put(path)
56
- stub_request(:put, path)
57
- end
58
-
59
- def fixture_path
60
- File.expand_path('../support/fixtures', __FILE__)
6
+ def sample_collection(name)
7
+ e = Emojidex::Data::Collection.new
8
+ e.load_local_collection(File.expand_path("../support/sample_collections/#{name}", __FILE__))
9
+ e
61
10
  end
62
11
 
63
- def fixture(file)
64
- File.new(fixture_path + '/' + file)
12
+ def tmp_cache_path
13
+ tmp_cache_path = File.expand_path('../tmp/samplecache', __FILE__)
65
14
  end
66
15
 
67
- def sample_collection(name)
68
- e =Emojidex::Collection.new
69
- e.load_local_collection(File.expand_path("../support/sample_collections/#{name}", __FILE__))
70
- e
16
+ def clear_tmp_cache
17
+ FileUtils.rm_rf tmp_cache_path if Dir.exist? tmp_cache_path
71
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emojidex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.23
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rei Kagetsuki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-10 00:00:00.000000000 Z
11
+ date: 2015-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -57,6 +57,7 @@ executables: []
57
57
  extensions: []
58
58
  extra_rdoc_files: []
59
59
  files:
60
+ - ".coveralls.yml"
60
61
  - ".gitignore"
61
62
  - ".rspec"
62
63
  - ".rubocop.yml"
@@ -67,33 +68,38 @@ files:
67
68
  - emoji/categories.json
68
69
  - emojidex.gemspec
69
70
  - lib/emojidex.rb
70
- - lib/emojidex/api/categories.rb
71
- - lib/emojidex/api/emoji.rb
72
- - lib/emojidex/api/search/emoji.rb
73
- - lib/emojidex/categories.rb
74
- - lib/emojidex/category.rb
75
- - lib/emojidex/client.rb
76
- - lib/emojidex/collection.rb
77
- - lib/emojidex/collection/asset_information.rb
78
- - lib/emojidex/collection/cache.rb
79
- - lib/emojidex/collection/moji_data.rb
80
- - lib/emojidex/collection_checker.rb
71
+ - lib/emojidex/data/categories.rb
72
+ - lib/emojidex/data/category.rb
73
+ - lib/emojidex/data/collection.rb
74
+ - lib/emojidex/data/collection/asset_information.rb
75
+ - lib/emojidex/data/collection/cache.rb
76
+ - lib/emojidex/data/collection/moji_data.rb
77
+ - lib/emojidex/data/collection/static_collection.rb
78
+ - lib/emojidex/data/collection_checker.rb
79
+ - lib/emojidex/data/emoji.rb
80
+ - lib/emojidex/data/emoji/asset_information.rb
81
+ - lib/emojidex/data/extended.rb
82
+ - lib/emojidex/data/utf.rb
81
83
  - lib/emojidex/defaults.rb
82
- - lib/emojidex/emoji.rb
83
- - lib/emojidex/emoji/asset_information.rb
84
- - lib/emojidex/error.rb
85
- - lib/emojidex/extended.rb
86
- - lib/emojidex/service.rb
87
- - lib/emojidex/utf.rb
88
- - spec/api/categories_spec.rb
89
- - spec/api/emoji_spec.rb
90
- - spec/api/search/emoji_spec.rb
91
- - spec/categories_spec.rb
92
- - spec/client_spec.rb
93
- - spec/collection_checker_spec.rb
94
- - spec/collection_spec.rb
95
- - spec/emoji_spec.rb
96
- - spec/extended_spec.rb
84
+ - lib/emojidex/env_helper.rb
85
+ - lib/emojidex/service/collection.rb
86
+ - lib/emojidex/service/error.rb
87
+ - lib/emojidex/service/indexes.rb
88
+ - lib/emojidex/service/search.rb
89
+ - lib/emojidex/service/transactor.rb
90
+ - lib/emojidex/service/user.rb
91
+ - spec/emojidex/data/categories_spec.rb
92
+ - spec/emojidex/data/collection_checker_spec.rb
93
+ - spec/emojidex/data/collection_spec.rb
94
+ - spec/emojidex/data/emoji_spec.rb
95
+ - spec/emojidex/data/extended_spec.rb
96
+ - spec/emojidex/data/utf_spec.rb
97
+ - spec/emojidex/service/collection_spec.rb
98
+ - spec/emojidex/service/error_spec.rb
99
+ - spec/emojidex/service/indexes_spec.rb
100
+ - spec/emojidex/service/search_spec.rb
101
+ - spec/emojidex/service/transactor_spec.rb
102
+ - spec/emojidex/service/user_spec.rb
97
103
  - spec/spec_helper.rb
98
104
  - spec/support/Genshin.svg
99
105
  - spec/support/couple_kiss/0.svg
@@ -145,7 +151,6 @@ files:
145
151
  - spec/support/sample_collections/missing_index/px32/purple_heart.png
146
152
  - spec/support/sample_collections/missing_index/px32/woman_with_bunny_ears.png
147
153
  - spec/support/sample_collections/missing_index/woman_with_bunny_ears.svg
148
- - spec/utf_spec.rb
149
154
  homepage: http://developer.emojidex.com
150
155
  licenses:
151
156
  - emojiOL
@@ -158,7 +163,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
158
163
  requirements:
159
164
  - - ">="
160
165
  - !ruby/object:Gem::Version
161
- version: '0'
166
+ version: '2.0'
162
167
  required_rubygems_version: !ruby/object:Gem::Requirement
163
168
  requirements:
164
169
  - - ">="
@@ -166,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
171
  version: '0'
167
172
  requirements: []
168
173
  rubyforge_project:
169
- rubygems_version: 2.4.5
174
+ rubygems_version: 2.4.8
170
175
  signing_key:
171
176
  specification_version: 4
172
177
  summary: emojidex Ruby tools