somemoji 0.3.2 → 0.4.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/CHANGELOG.md +4 -0
- data/README.md +22 -2
- data/exe/somemoji +7 -0
- data/lib/somemoji/command_builder.rb +24 -0
- data/lib/somemoji/command_line_arguments.rb +65 -0
- data/lib/somemoji/commands/base_command.rb +21 -0
- data/lib/somemoji/commands/error_command.rb +9 -0
- data/lib/somemoji/commands/extract_command.rb +33 -0
- data/lib/somemoji/emoji_extractors/apple_emoji_extractor.rb +1 -1
- data/lib/somemoji/emoji_extractors/base_emoji_extractor.rb +4 -4
- data/lib/somemoji/emoji_extractors/downloadable_emoji_extractor.rb +2 -2
- data/lib/somemoji/version.rb +1 -1
- data/lib/somemoji.rb +6 -0
- data/somemoji.gemspec +5 -1
- metadata +24 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a5968df8d5cdd9d90f4ed13049765d15d1bc98df
|
|
4
|
+
data.tar.gz: 3809aa17d978c8a7569d03a3675833d5619b4de4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ecf472874f03a6319c174b0e0366bae4e202014198ac0d3bac0f5e9ebbdd80cf8f49481da7dcab5b84519753340f4000a31edd4083d0248a9145009b5e6a52e5
|
|
7
|
+
data.tar.gz: 0bcd7d90ac15d8e35feb063e5e3b27e51ce8b9165de952f2f251f25bc5744269495b5f7f3157eaafb83db454370a3ee5e23a0e3a17854153b760a39920164c9f
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -33,9 +33,25 @@ Or install it yourself as:
|
|
|
33
33
|
gem install somemoji
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
##
|
|
36
|
+
## Command line tool
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
`somemoji` executable is bundled to extract images from each emoji provider.
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
$ somemoji --help
|
|
42
|
+
Usage: somemoji extract [options]
|
|
43
|
+
-p, --provider (required) apple, emoji_one, noto, or twemoji
|
|
44
|
+
-d, --destination (required) directory path to locate extracted image files
|
|
45
|
+
-f, --format png or svg (default: png)
|
|
46
|
+
-s, --size Some providers have different size image files
|
|
47
|
+
-h, --help Display this help message
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
To extract emojis from Twemoji to ./images/emoji directory, execute:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
somemoji extract --provider=twemoji --destination=./images/emoji
|
|
54
|
+
```
|
|
39
55
|
|
|
40
56
|
## Use cases
|
|
41
57
|
|
|
@@ -107,3 +123,7 @@ class EmojiFilter < ::HTML::Pipeline::Filter
|
|
|
107
123
|
end
|
|
108
124
|
end
|
|
109
125
|
```
|
|
126
|
+
|
|
127
|
+
## Documentation
|
|
128
|
+
|
|
129
|
+
See API documentation at http://www.rubydoc.info/github/r7kamura/somemoji.
|
data/exe/somemoji
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Somemoji
|
|
2
|
+
class CommandBuilder
|
|
3
|
+
# @param argv [Array<String>]
|
|
4
|
+
def initialize(argv)
|
|
5
|
+
@argv = argv
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
# @return [Somemoji::Commands::BaseCommand]
|
|
9
|
+
def build
|
|
10
|
+
if command_line_arguments.valid?
|
|
11
|
+
::Somemoji::Commands::ExtractCommand.new(command_line_arguments)
|
|
12
|
+
else
|
|
13
|
+
::Somemoji::Commands::ErrorCommand.new(command_line_arguments)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
# @return [Somemoji::CommandLineArguments]
|
|
20
|
+
def command_line_arguments
|
|
21
|
+
@command_line_arguments ||= ::Somemoji::CommandLineArguments.new(@argv)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
module Somemoji
|
|
2
|
+
class CommandLineArguments
|
|
3
|
+
# @param argv [Array<String>]
|
|
4
|
+
def initialize(argv)
|
|
5
|
+
@argv = argv
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
# @return [String]
|
|
9
|
+
def destination
|
|
10
|
+
slop_parse_result[:destination]
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# @return [String]
|
|
14
|
+
def error_message
|
|
15
|
+
slop_options.to_s
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @return [String, nil]
|
|
19
|
+
def format
|
|
20
|
+
slop_parse_result[:format]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @return [String]
|
|
24
|
+
def provider_name
|
|
25
|
+
slop_parse_result[:provider]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# @return [Integer, nil]
|
|
29
|
+
def size
|
|
30
|
+
slop_parse_result[:size]
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @return [Boolean]
|
|
34
|
+
def valid?
|
|
35
|
+
command_name == "extract" && !slop_parse_result.nil?
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
|
|
40
|
+
# @return [String]
|
|
41
|
+
def command_name
|
|
42
|
+
@argv[0]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @return [Slop::Options]
|
|
46
|
+
def slop_options
|
|
47
|
+
@slop_options ||= begin
|
|
48
|
+
slop_options = ::Slop::Options.new
|
|
49
|
+
slop_options.banner = "Usage: somemoji extract [options]"
|
|
50
|
+
slop_options.string "-p", "--provider", "(required) apple, emoji_one, noto, or twemoji"
|
|
51
|
+
slop_options.string "-d", "--destination", "(required) directory path to locate extracted image files"
|
|
52
|
+
slop_options.string "-f", "--format", "png or svg (default: png)"
|
|
53
|
+
slop_options.integer "-s", "--size", "Some providers have different size image files"
|
|
54
|
+
slop_options.bool "-h", "--help", "Display this help message"
|
|
55
|
+
slop_options
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @return [Slop::Result]
|
|
60
|
+
def slop_parse_result
|
|
61
|
+
@slop_parse_result ||= ::Slop::Parser.new(slop_options).parse(@argv)
|
|
62
|
+
rescue ::Slop::UnknownOption
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Somemoji
|
|
2
|
+
module Commands
|
|
3
|
+
class BaseCommand
|
|
4
|
+
# @param command_line_arguments [Somemoji::CommandLineArguments]
|
|
5
|
+
def initialize(command_line_arguments)
|
|
6
|
+
@command_line_arguments = command_line_arguments
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def call
|
|
10
|
+
raise ::NotImplementedError
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
# @return [Somemoji::CommandLineArguments]
|
|
16
|
+
def command_line_arguments
|
|
17
|
+
@command_line_arguments
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Somemoji
|
|
2
|
+
module Commands
|
|
3
|
+
class ExtractCommand < BaseCommand
|
|
4
|
+
def call
|
|
5
|
+
if emoji_extractor_class && command_line_arguments.destination
|
|
6
|
+
emoji_extractor_class.new(
|
|
7
|
+
destination: command_line_arguments.destination,
|
|
8
|
+
format: command_line_arguments.format,
|
|
9
|
+
size: command_line_arguments.size,
|
|
10
|
+
).extract
|
|
11
|
+
else
|
|
12
|
+
abort(command_line_arguments.error_message)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
# @return [Class]
|
|
19
|
+
def emoji_extractor_class
|
|
20
|
+
case command_line_arguments.provider_name
|
|
21
|
+
when "apple"
|
|
22
|
+
::Somemoji::EmojiExtractors::AppleEmojiExtractor
|
|
23
|
+
when "emoji_one"
|
|
24
|
+
::Somemoji::EmojiExtractors::EmojiOneEmojiExtractor
|
|
25
|
+
when "noto"
|
|
26
|
+
::Somemoji::EmojiExtractors::NotoEmojiExtractor
|
|
27
|
+
when "twemoji"
|
|
28
|
+
::Somemoji::EmojiExtractors::TwemojiEmojiExtractor
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -3,12 +3,12 @@ require "fileutils"
|
|
|
3
3
|
module Somemoji
|
|
4
4
|
module EmojiExtractors
|
|
5
5
|
class BaseEmojiExtractor
|
|
6
|
-
# @param
|
|
6
|
+
# @param destination [String]
|
|
7
7
|
# @param format [String]
|
|
8
8
|
# @param silence [Boolean]
|
|
9
9
|
# @param size [Integer, nil]
|
|
10
|
-
def initialize(format: nil,
|
|
11
|
-
@
|
|
10
|
+
def initialize(format: nil, destination:, silence: nil, size: nil)
|
|
11
|
+
@destination = destination
|
|
12
12
|
@format = format || "png"
|
|
13
13
|
@silence = silence || false
|
|
14
14
|
@size = size
|
|
@@ -21,7 +21,7 @@ module Somemoji
|
|
|
21
21
|
private
|
|
22
22
|
|
|
23
23
|
def make_directory
|
|
24
|
-
::FileUtils.mkdir_p(@
|
|
24
|
+
::FileUtils.mkdir_p(@destination)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def silence?
|
|
@@ -23,8 +23,8 @@ module Somemoji
|
|
|
23
23
|
http.use_ssl = true
|
|
24
24
|
response = http.get(find_remote_emoji_path(emoji))
|
|
25
25
|
if response.code == "200"
|
|
26
|
-
::FileUtils.mkdir_p("#{@
|
|
27
|
-
::File.write("#{@
|
|
26
|
+
::FileUtils.mkdir_p("#{@destination}/unicode")
|
|
27
|
+
::File.write("#{@destination}/#{emoji.base_path}.#{extension}", response.body)
|
|
28
28
|
true
|
|
29
29
|
else
|
|
30
30
|
false
|
data/lib/somemoji/version.rb
CHANGED
data/lib/somemoji.rb
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
require "json"
|
|
2
|
+
require "slop"
|
|
3
|
+
require "somemoji/command_builder"
|
|
4
|
+
require "somemoji/command_line_arguments"
|
|
5
|
+
require "somemoji/commands/base_command"
|
|
6
|
+
require "somemoji/commands/error_command"
|
|
7
|
+
require "somemoji/commands/extract_command"
|
|
2
8
|
require "somemoji/emoji_collection"
|
|
3
9
|
require "somemoji/emoji"
|
|
4
10
|
require "somemoji/emoji_extractors/base_emoji_extractor"
|
data/somemoji.gemspec
CHANGED
|
@@ -15,12 +15,16 @@ Gem::Specification.new do |spec|
|
|
|
15
15
|
f.match(%r{^(test|spec|features)/})
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
spec.
|
|
18
|
+
spec.bindir = "exe"
|
|
19
|
+
spec.executables = spec.files.grep(%r{^exe/}).map{ |f| File.basename(f) }
|
|
19
20
|
|
|
20
21
|
spec.require_paths = ["lib"]
|
|
21
22
|
|
|
23
|
+
spec.required_ruby_version = ">= 2.1.0"
|
|
24
|
+
|
|
22
25
|
spec.add_dependency "gemoji", "3.0.0.rc1"
|
|
23
26
|
spec.add_dependency "json"
|
|
27
|
+
spec.add_dependency "slop", ">= 4.0.0"
|
|
24
28
|
spec.add_development_dependency "bundler", "~> 1.13"
|
|
25
29
|
spec.add_development_dependency "gemojione", "3.2.0"
|
|
26
30
|
spec.add_development_dependency "rake", "~> 10.0"
|
metadata
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: somemoji
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryo Nakamura
|
|
8
8
|
autorequire:
|
|
9
|
-
bindir:
|
|
9
|
+
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
11
|
date: 2016-10-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
@@ -38,6 +38,20 @@ dependencies:
|
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: slop
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: 4.0.0
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 4.0.0
|
|
41
55
|
- !ruby/object:Gem::Dependency
|
|
42
56
|
name: bundler
|
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -125,7 +139,8 @@ dependencies:
|
|
|
125
139
|
description:
|
|
126
140
|
email:
|
|
127
141
|
- r7kamura@gmail.com
|
|
128
|
-
executables:
|
|
142
|
+
executables:
|
|
143
|
+
- somemoji
|
|
129
144
|
extensions: []
|
|
130
145
|
extra_rdoc_files: []
|
|
131
146
|
files:
|
|
@@ -1933,7 +1948,13 @@ files:
|
|
|
1933
1948
|
- data/emoji_definitions/zzz.json
|
|
1934
1949
|
- data/noto_supported_characters.json
|
|
1935
1950
|
- data/twemoji_supported_characters.json
|
|
1951
|
+
- exe/somemoji
|
|
1936
1952
|
- lib/somemoji.rb
|
|
1953
|
+
- lib/somemoji/command_builder.rb
|
|
1954
|
+
- lib/somemoji/command_line_arguments.rb
|
|
1955
|
+
- lib/somemoji/commands/base_command.rb
|
|
1956
|
+
- lib/somemoji/commands/error_command.rb
|
|
1957
|
+
- lib/somemoji/commands/extract_command.rb
|
|
1937
1958
|
- lib/somemoji/emoji.rb
|
|
1938
1959
|
- lib/somemoji/emoji_collection.rb
|
|
1939
1960
|
- lib/somemoji/emoji_extractors/apple_emoji_extractor.rb
|