emojidex-static-collector 0.0.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 912cbd47de163e05167f0d834b7a69cc9c0365a0
4
- data.tar.gz: 60e67d9accdb2d9a0c4ceb3ee86131744e262248
3
+ metadata.gz: e9ffb813f3555a51b8fcdeec9e3e3e19492c843c
4
+ data.tar.gz: d6226db06139639a65bf25cbd56c5fd08dba8a6f
5
5
  SHA512:
6
- metadata.gz: 6c00316b25db04a5841f57def1e2134a7ef788862a94d1f97b011f1e1451e91033d0f34b3a110d2cfdc16201a2ffb272ed2802beb343b8d206b1e7e027eb4791
7
- data.tar.gz: 9822f9cbe2928894eb15a82b619ab433af6820f8d9834591a6dd519c9183aa5e7be25022b0d4befc3f499155327838b71197c3dd5a6e35474352215dca0ce451
6
+ metadata.gz: 6e00286c61492cf6461effd9aeacbe9d960d17828acead33a29ba970d8a8383f2b2668ad5fc01bb0c5849c99ff1350cd099006a2eacfd4b73b007f3b9b96ada0
7
+ data.tar.gz: d82cfdbd856b88266456048e083270ce83d332777aa926fa76932b7e792cb521d6ff30251cc0a8b21174b2f7065719e05fdcbe6639139876839bbdd97031f93f
@@ -3,10 +3,10 @@ require 'optparse'
3
3
  require 'fileutils'
4
4
  require_relative '../lib/emojidex_static_collector'
5
5
 
6
- puts '⊂ em😜 jidex Static Collector⊃'
6
+ puts '⊂ em😜🏼jidex Static Collector⊃'
7
7
 
8
8
  # s:size, t:type, o:output
9
- params = ARGV.getopts('s:t:o:h', 'utf-only', 'clean-cache')
9
+ params = ARGV.getopts('s:t:o:h', 'utf-only', 'uncategorized', 'clean-cache')
10
10
 
11
11
  # Set params.
12
12
  params['s'] = '256' if params['s'].nil?
@@ -23,8 +23,10 @@ if params['h']
23
23
  " \"en\" (standard English codes)\n" \
24
24
  " \"ja\" (Japanese codes)\n" \
25
25
  " \"char\" (raw character codes)\n" \
26
- " \"moji\" (moji code (:char with Japanese category directories))\n" \
27
- "--utf-only UTF/Unicode only (does not export Extended)" \
26
+ " \"moji\" (moji code (character code with Japanese category directories))\n" \
27
+ " \"unicode\" (unicode/utf code)\n" \
28
+ "--utf-only UTF/Unicode only (does not export Extended)\n" \
29
+ "--uncategorized doesn't separate emoji into categorized folders" \
28
30
  else
29
31
  # Create folder.
30
32
  out_dir = File.expand_path(params['o'], __FILE__)
@@ -33,5 +35,5 @@ else
33
35
  # Generate
34
36
  collector = EmojidexStaticCollector.new
35
37
  collector.generate(params['o'], params['s'].to_i, params['utf-only'],
36
- params['t'].to_sym)
38
+ params['t'].to_sym, !(params['uncategorized']))
37
39
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'emojidex-static-collector'
3
- s.version = '0.0.1'
3
+ s.version = '0.2.0'
4
4
  s.license = 'emojiOL'
5
5
  s.summary = 'Create static collections from emojidex assets'
6
6
  s.description = 'Generates PNG rasters from emojidex vectors in a ' \
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.executables << 'emojidex-static-collector'
15
15
  s.homepage = 'http://developer.emojidex.com'
16
16
 
17
- s.add_dependency 'emojidex'
18
- s.add_dependency 'emojidex-vectors'
19
- s.add_dependency 'emojidex-converter'
17
+ s.add_dependency 'emojidex', '~> 0.3', '~> 0.3.2'
18
+ s.add_dependency 'emojidex-vectors', '~> 1.0'
19
+ s.add_dependency 'emojidex-converter', '~> 0.3'
20
20
  end
@@ -1,15 +1,17 @@
1
1
  require 'emojidex-vectors'
2
2
  require 'emojidex_converter'
3
- require 'emojidex/categories'
3
+ require 'emojidex/data/utf'
4
+ require 'emojidex/data/extended'
5
+ require 'emojidex/data/categories'
4
6
 
5
7
  require 'fileutils'
6
8
 
7
9
  # Generates static collections of emojidex assets
8
10
  class EmojidexStaticCollector
9
11
  def initialize
10
- @utf = Emojidex::UTF.new
11
- @extended = Emojidex::Extended.new
12
- @categories = Emojidex::Categories.new
12
+ @utf = Emojidex::Data::UTF.new
13
+ @extended = Emojidex::Data::Extended.new
14
+ @categories = Emojidex::Data::Categories.new
13
15
  end
14
16
 
15
17
  # Generates a static collection
@@ -17,23 +19,29 @@ class EmojidexStaticCollector
17
19
  # path: path to export to
18
20
  # size: export size
19
21
  # utf_only: weather or not to limit to unicode standard emoji
22
+ # categorized: put emoji in categorized folders
20
23
  # code_type: can be
21
24
  # :en (standard English codes)
22
25
  # :ja (Japanese codes)
23
26
  # :char (raw character codes)
24
27
  # :moji (moji code (:char with Japanese category directories))
25
- def generate(path = './', size = 64, utf_only = false, code_type = :en, clean_cache = true)
28
+ # :unicode (unicode codes as file names)
29
+ def generate(path = './', size = 64, utf_only = false, code_type = :en, categorized = true, clean_cache = true)
26
30
  cache_dir = File.join(path, '.cache')
27
- @utf.cache!(cache_path: cache_dir, formats: [:svg])
28
- @extended.cache!(cache_path: cache_dir, formats: [:svg]) unless utf_only
29
- collection = Emojidex::Collection.new(nil, cache_dir)
30
- _generate_categories(collection, path, size, utf_only, code_type)
31
+ @utf.cache(cache_path: cache_dir, formats: [:svg])
32
+ @extended.cache(cache_path: cache_dir, formats: [:svg]) unless utf_only
33
+ collection = Emojidex::Data::Collection.new(local_load_path: "#{cache_dir}/emoji")
34
+ if categorized
35
+ _generate_categories(collection, path, size, code_type)
36
+ else
37
+ _generate_consolidated(collection, path, size, code_type)
38
+ end
31
39
  FileUtils.rm_rf(cache_dir) if clean_cache
32
40
  end
33
41
 
34
42
  private
35
43
 
36
- def _generate_categories(collection, path, size, _utf_only, code_type)
44
+ def _generate_categories(collection, path, size, code_type)
37
45
  @categories.categories.each_value do |category|
38
46
  cat_path = set_path(path, code_type, category)
39
47
  FileUtils.mkdir_p cat_path
@@ -46,11 +54,17 @@ class EmojidexStaticCollector
46
54
  end
47
55
  end
48
56
 
57
+ def _generate_consolidated(collection, path, size, code_type)
58
+ puts "Processing Consolidated Collection"
59
+ puts "Collection emoji Count: #{collection.emoji.count}"
60
+ _write_emoji(path, collection, size, code_type)
61
+ end
62
+
49
63
  def set_path(path, code_type, category)
50
64
  cat_path = ''
51
65
  if code_type == :ja || code_type == :moji
52
66
  cat_path = File.join(path, category.ja)
53
- elsif code_type == :en || code_type == :char
67
+ elsif code_type == :en || code_type == :char || :unicode
54
68
  cat_path = File.join(path, category.en)
55
69
  end
56
70
  cat_path
@@ -67,10 +81,26 @@ class EmojidexStaticCollector
67
81
  def _rename_files(path, collection, code_type)
68
82
  collection.each do |emoji|
69
83
  case code_type
70
- when :ja then FileUtils.mv "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.code_ja}.png"
71
- when :moji then FileUtils.mv "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.moji}.png"
72
- when :en then FileUtils.mv "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.code}.png"
73
- when :char then FileUtils.mv "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.moji}.png"
84
+ when :ja then FileUtils.cp "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.code_ja}.png"
85
+ when :moji
86
+ if emoji.moji.nil? || emoji.moji == ""
87
+ FileUtils.cp "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.code}.png"
88
+ else
89
+ FileUtils.cp "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.moji}.png"
90
+ end
91
+ when :en then FileUtils.cp "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.code}.png"
92
+ when :char
93
+ if emoji.moji.nil? || emoji.moji == ""
94
+ FileUtils.cp "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.code}.png"
95
+ else
96
+ FileUtils.cp "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.moji}.png"
97
+ end
98
+ when :unicode
99
+ if emoji.unicode.nil? || emoji.unicode == ""
100
+ FileUtils.cp "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.code}.png"
101
+ else
102
+ FileUtils.cp "#{path}/working/#{emoji.code}.png", "#{path}/#{emoji.unicode.to_s}.png"
103
+ end
74
104
  end
75
105
  end
76
106
  FileUtils.rm_rf "#{path}/working/"
@@ -17,22 +17,33 @@ describe EmojidexStaticCollector do
17
17
  expect(File.exist?(@tmpdir + '/emojidex/')).to be_truthy
18
18
  end
19
19
 
20
- it 'generates a collection of UTF only' do
21
- expect(collector.generate(@tmpdir + '/UTF', 512, false)).to be_truthy
22
- end
23
-
24
20
  it '日本語のコードを使ってコレクションを作成する' do
25
- expect(collector.generate(@tmpdir + '/日本語', 8, true, :ja)).to be_truthy
21
+ expect(collector.generate(@tmpdir + '/日本語', 8, false, :ja)).to be_truthy
22
+ expect(File.exist?(@tmpdir + '/日本語/抽象物/18禁.png')).to be_truthy
23
+ expect(File.exist?(@tmpdir + '/日本語/抽象物/糞.png')).to be_truthy
26
24
  end
27
25
 
28
26
  it 'generates a collection using moji character codes' do
29
27
  expect(collector.generate(@tmpdir + '/moji', 8, true, :moji)).to be_truthy
30
28
  end
31
29
 
32
- it 'generates a collection of UTF only, extended emoji is not exist' do
30
+ it 'generates a collection of UTF only, extended emoji should not be included' do
33
31
  collector.generate(@tmpdir + '/UTF_only', 8, true, :en)
34
32
  expect(File.exist?(@tmpdir + '/UTF_only/Faces/angry.png')).to be_truthy
35
- expect(File.exist?(@tmpdir + '/UTF_only/Faces/angry(bk).png')).to be_falsey
33
+ expect(File.exist?(@tmpdir + '/UTF_only/Abstract/shit.png')).to be_falsey
34
+ end
35
+
36
+ it 'generates a collection with unicode codes as file names' do
37
+ collector.generate(@tmpdir + '/unicode', 8, false, :unicode)
38
+ expect(File.exist?(@tmpdir + '/unicode/Symbols/00ae.png')).to be_truthy
39
+ expect(File.exist?(@tmpdir + '/unicode/Abstract/shit.png')).to be_truthy
40
+ end
41
+
42
+ it 'generates a collection, not sorted into categories, with unicode codes for file names' do
43
+ collector.generate(@tmpdir + '/uncategorized_charcodes', 300, false, :unicode, false)
44
+ expect(File.exist?(@tmpdir + '/uncategorized_charcodes/00ae.png')).to be_truthy
45
+ expect(File.exist?(@tmpdir + '/uncategorized_charcodes/0033-20e3.png')).to be_truthy
46
+ expect(File.exist?(@tmpdir + '/uncategorized_charcodes/shit.png')).to be_truthy
36
47
  end
37
48
  end
38
49
  end
metadata CHANGED
@@ -1,57 +1,63 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emojidex-static-collector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.2.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: 2014-10-31 00:00:00.000000000 Z
11
+ date: 2016-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: emojidex
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.3'
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: 0.3.2
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - ">="
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.3'
30
+ - - "~>"
25
31
  - !ruby/object:Gem::Version
26
- version: '0'
32
+ version: 0.3.2
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: emojidex-vectors
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - ">="
37
+ - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '0'
39
+ version: '1.0'
34
40
  type: :runtime
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - ">="
44
+ - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '0'
46
+ version: '1.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: emojidex-converter
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - ">="
51
+ - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '0'
53
+ version: '0.3'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - ">="
58
+ - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '0'
60
+ version: '0.3'
55
61
  description: Generates PNG rasters from emojidex vectors in a specified size and manually
56
62
  sorts them into categorized folders.
57
63
  email: info@emojidex.com
@@ -90,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
96
  version: '0'
91
97
  requirements: []
92
98
  rubyforge_project:
93
- rubygems_version: 2.4.2
99
+ rubygems_version: 2.5.1
94
100
  signing_key:
95
101
  specification_version: 4
96
102
  summary: Create static collections from emojidex assets