emojidex 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5410198fbf7a8a192c52c7f321bf0c82549a7076
4
- data.tar.gz: fc92c715b7aa8f648adadfe0ed2212b280c8e449
3
+ metadata.gz: 3e6f88686eccedc6de0ac1cc7fae3d7cbe5ecea2
4
+ data.tar.gz: 7c50835110dd0241205e3793b2a557cc1b31fce8
5
5
  SHA512:
6
- metadata.gz: 575d1d4702c789d39b5189af25acead411053da281431cb4ac0d34ab79d9d26a4994249058f5246e9cd47173c1e0012dee779c0b9adb5988d67aa1268da2eb81
7
- data.tar.gz: 6c4edaf23c04dbe9cb81f51ea21a53b4f3b2bcdfeedf5c43d54fdc56b0fe2f1b0ebefa803f27c4c46165e5a0753e5067f399698d1b65af50af81a3612cc580f7
6
+ metadata.gz: 1f0bc60a900cdf724fc878d5b4c7cb0f13921c105c017a61ce9443ed920dc412717af1fd10a86f0b3ce513ac6192e209f93293e4dbc1670391e654a103e2107f
7
+ data.tar.gz: 088cdba0c8bed81cebee332c1bec647dbf41c797c4b7d9466a5a6d0dc764ae67c751752cc5b80f94c7ab34eaf85af60543f65d08e95833b4dff0d929889c7807
data/emojidex.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'emojidex'
3
- s.version = '0.2.1'
3
+ s.version = '0.2.2'
4
4
  s.license = 'emojiOL'
5
5
  s.summary = 'emojidex Ruby tools'
6
6
  s.description = 'emojidex emoji handling, search and lookup, listing and caching functionality' \
@@ -16,12 +16,14 @@ module Emojidex
16
16
  include Emojidex::Data::CollectionAssetInformation
17
17
  include Emojidex::Data::CollectionMojiData
18
18
  attr_accessor :emoji, :categories,
19
- :source_path, :vector_source_path, :raster_source_path
19
+ :source_path, :vector_source_path, :raster_source_path,
20
+ :r18 # set to true if collection contains R-18 emoji
20
21
 
21
22
  # Initialize Collection. You can pass a list of emoji to seed the collection
22
23
  def initialize(opts = {})
23
24
  @emoji = {}
24
25
  @raster_source_path = @vector_source_path = @source_path = nil
26
+ @r18 = opts[:r18] || false
25
27
  if opts.include? :cache_path
26
28
  setup_cache(opts[:cache_path])
27
29
  opts.delete :cache_path
@@ -35,7 +37,7 @@ module Emojidex
35
37
 
36
38
  # Loads an emoji collection on local storage
37
39
  def load_local_collection(path)
38
- @source_path = @vector_source_path = @raster_source_path = File.expand_path(path)
40
+ @source_path = File.expand_path(path)
39
41
  json = IO.read(@source_path + '/emoji.json')
40
42
  list = JSON.parse(json, symbolize_names: true)
41
43
  add_emoji(list)
@@ -134,11 +136,14 @@ module Emojidex
134
136
  private
135
137
 
136
138
  def _add_list(list)
139
+ return if list.nil?
137
140
  list.each do |moji_info|
138
141
  if moji_info.instance_of? Emojidex::Data::Emoji
142
+ next if @r18 == false && moji_info.r18 == true
139
143
  @emoji[moji_info.code.to_sym] = moji_info.dup
140
144
  @emoji[moji_info.code.to_sym].paths = get_paths(moji_info)
141
145
  else
146
+ next if @r18 == false && moji_info.include?(:r18) && moji_info[:r18] == true
142
147
  emoji = Emojidex::Data::Emoji.new moji_info
143
148
  emoji.paths = get_paths(emoji)
144
149
  @emoji[Emojidex.escape_code(emoji.code.to_s).to_sym] = emoji
@@ -43,15 +43,22 @@ module Emojidex
43
43
  # (default is ENV['EMOJI_CACHE'] or '$HOME/.emoji_cache')
44
44
  # formats: formats to cache (default is SVG only)
45
45
  # sizes: sizes to cache (default is px32, but this is irrelivant for SVG)
46
+ def cache(options = {})
47
+ _cache(options)
48
+ cache_index
49
+ end
50
+
51
+ # Caches emoji to local emoji storage cache
52
+ # +regenerates checksums and paths
53
+ # Options:
54
+ # cache_path: manually specify cache location
55
+ # (default is ENV['EMOJI_CACHE'] or '$HOME/.emoji_cache')
56
+ # formats: formats to cache (default is SVG only)
57
+ # sizes: sizes to cache (default is px32, but this is irrelivant for SVG)
46
58
  def cache!(options = {})
47
- setup_cache options[:cache_path]
48
- formats = options[:formats] || Emojidex::Defaults.selected_formats
49
- sizes = options[:sizes] || Emojidex::Defaults.selected_sizes
50
- @emoji.values.each do |moji|
51
- _svg_check_copy(moji) if formats.include? :svg
52
- _raster_check_copy(moji, :png, sizes) if formats.include? :png
53
- end
54
- _process_download_queue
59
+ _cache(options)
60
+ generate_paths
61
+ generate_checksums
55
62
  cache_index
56
63
  end
57
64
 
@@ -63,7 +70,8 @@ module Emojidex
63
70
  idx = Emojidex::Data::Collection.new
64
71
  idx.load_local_collection(destination) if FileTest.exist? "#{destination}/emoji.json"
65
72
  idx.add_emoji @emoji.values
66
- File.open("#{destination}/emoji.json", 'w') { |f| f.write idx.emoji.values.to_json }
73
+ #File.open("#{destination}/emoji.json", 'w') { |f| f.write idx.emoji.values.to_json }
74
+ write_index(destination)
67
75
  end
68
76
 
69
77
  # [over]writes a sanitized index to the specified destination.
@@ -71,7 +79,11 @@ module Emojidex
71
79
  def write_index(destination)
72
80
  idx = @emoji.values.to_json
73
81
  idx = JSON.parse idx
74
- idx.each { |moji| moji.delete_if { |_k, v| v.nil? } }
82
+ idx.each do |moji|
83
+ moji['paths'] = nil
84
+ moji['local_checksums'] = nil
85
+ moji.delete_if { |_k, v| v.nil? }
86
+ end
75
87
  File.open("#{destination}/emoji.json", 'w') { |f| f.write idx.to_json }
76
88
  end
77
89
 
@@ -127,6 +139,17 @@ module Emojidex
127
139
  dls << Thread.new { moji.cache(:png, sizes) } if formats.include? :png
128
140
  dls.each(&:join)
129
141
  end
142
+
143
+ def _cache(options)
144
+ setup_cache options[:cache_path]
145
+ formats = options[:formats] || Emojidex::Defaults.selected_formats
146
+ sizes = options[:sizes] || Emojidex::Defaults.selected_sizes
147
+ @emoji.values.each do |moji|
148
+ _svg_check_copy(moji) if formats.include? :svg
149
+ _raster_check_copy(moji, :png, sizes) if formats.include? :png
150
+ end
151
+ _process_download_queue
152
+ end
130
153
  end
131
154
  end
132
155
  end
@@ -6,7 +6,8 @@ module Emojidex
6
6
  # emoji base class
7
7
  class Emoji
8
8
  attr_accessor :moji, :category, :code, :code_ja,
9
- :unicode, :tags, :emoticon, :variants, :base
9
+ :unicode, :tags, :emoticon, :variants, :base,
10
+ :r18
10
11
 
11
12
  include Emojidex::Data::EmojiAssetInformation
12
13
 
@@ -49,6 +50,7 @@ module Emojidex
49
50
  @unicode = details[:unicode].to_s
50
51
  @full_name = details[:full_name].to_s
51
52
  @emoticon = details[:emoticon].to_s
53
+ @r18 = details[:r18] || false
52
54
  end
53
55
 
54
56
  def _init_descriptor_info(details)
@@ -37,6 +37,15 @@ module Emojidex
37
37
  end
38
38
  end
39
39
 
40
+ def blank_paths
41
+ @paths = {}
42
+ @paths[:svg] = nil
43
+ @paths[:png] = {}
44
+ Emojidex::Defaults.sizes.keys.each do |size|
45
+ @paths[:png][size] = nil
46
+ end
47
+ end
48
+
40
49
  def fill_paths(paths)
41
50
  @paths[:svg] = paths[:svg] if paths.include? :svg
42
51
  return unless paths.include? :png
@@ -78,6 +78,15 @@ module Emojidex
78
78
  end
79
79
  col
80
80
  end
81
+
82
+ def self._check_auth(opts)
83
+ if !(opts.include? :auth_token) && Emojidex::Client.USER.authorized?
84
+ opts[:username] = Emojidex::Client::USER.username
85
+ opts[:auth_token] = Emojidex::Client::USER.auth_token
86
+ end
87
+
88
+ opts
89
+ end
81
90
  end
82
91
  end
83
92
  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.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rei Kagetsuki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-20 00:00:00.000000000 Z
11
+ date: 2016-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday