icomoon 0.0.2

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 53b0108a30656c9c7590ed344b6343d72947be75
4
+ data.tar.gz: 103310f193a88ea46fb4098dfb905f1e02ecf607
5
+ SHA512:
6
+ metadata.gz: 53158fe6b99a2a08effbe4603e589fd7f74d49419aaaa9922d8918511faead57a44fd582f24f9a28ae38b614dbf6c40a883aba0c4bae90bae0468de58302ae2a
7
+ data.tar.gz: c39ba697be84deff9885723059921aa2b2fd3a5394d2283a3a40c0487824faaeee7f48306b7691a7824c841fdab119a12d6f7048e04dba6e96eafebc64c2e8cb
@@ -0,0 +1,31 @@
1
+ # Icomoon
2
+ This helper will make using Icomoon icons set easier.
3
+
4
+ ## Usage
5
+ If you want to use Icomoon icons on your project, this is what will help you.
6
+
7
+ ### Installation
8
+ Add this to your Gemfile:
9
+ ```ruby
10
+ gem 'icomoon'
11
+ ```
12
+ And then `bundle install`. You can always run `icomoon help` if you need help.
13
+
14
+ ### Getting started
15
+ - run `icomoon init`
16
+
17
+ ### Adding/removing icons (basically updating your icon set)
18
+ - open [IcoMoon App](https://icomoon.io/app/#/projects)
19
+ - click "Import Project" and select icomoon.json file from your project (it's located in the "Directory of fonts files" directory from the survey you took before)
20
+ - click "Load" on the imported project
21
+ - add/remove icons, change project preferences
22
+ - download set and unzip without changing folder name
23
+ - run `icomoon import` and specify location of unzipped icon set (`--dir` or `-d`)
24
+ - update icons file code (will display)
25
+
26
+ ## Requirements
27
+ - ruby 2.2.2 or higher
28
+ - requires your application to use SASS/SCSS
29
+
30
+ ## Note
31
+ It was tested on OS X only, not tested on Linux nor Windows.
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'icomoon/cli'
4
+
5
+ Icomoon::Cli.start(ARGV)
@@ -0,0 +1,2 @@
1
+ module Icomoon
2
+ end
@@ -0,0 +1,59 @@
1
+ require 'pry'
2
+ require 'json'
3
+ require 'colorize'
4
+
5
+ require 'icomoon/cli/exec_param'
6
+ require 'icomoon/cli/exec'
7
+ require 'icomoon/cli/parse_argv'
8
+ require 'icomoon/cli/survey'
9
+ require 'icomoon/cli/question'
10
+ require 'icomoon/cli/logger'
11
+ require 'icomoon/cli/operation'
12
+ require 'icomoon/cli/writer'
13
+ require 'icomoon/cli/config'
14
+ require 'icomoon/cli/icon'
15
+
16
+ module Icomoon
17
+ module Cli
18
+ MANIFEST_FILENAME = 'icomoon.json'
19
+
20
+ Error = Class.new(StandardError)
21
+ Warning = Class.new(StandardError)
22
+
23
+ class << self
24
+ def start(argv)
25
+ Icomoon::Cli::Exec.run(argv)
26
+ end
27
+
28
+ def logs(text)
29
+ logger.log(text, true)
30
+ end
31
+
32
+ def log(text)
33
+ logger.log(text, false)
34
+ end
35
+
36
+ def error(text)
37
+ puts "#{'Error:'.red} #{text}"
38
+ end
39
+
40
+ def put_separator
41
+ logs('---')
42
+ end
43
+
44
+ def file_exists?(path)
45
+ File.exists?(path)
46
+ end
47
+
48
+ def logger
49
+ @@logger
50
+ end
51
+
52
+ def logger=(logger)
53
+ @@logger = logger
54
+ end
55
+
56
+ @@logger = Icomoon::Cli::Logger.new
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,43 @@
1
+ module Icomoon
2
+ module Cli
3
+ class Config
4
+ CONFIG_FILE_NAME = '.icomoon-config.json'
5
+
6
+ class << self
7
+ def read
8
+ if !File.exists? config_file_full_path
9
+ fail Icomoon::Cli::Error, 'Config file not found.'
10
+ end
11
+
12
+ content = JSON.parse(File.read(config_file_full_path))
13
+
14
+ Struct.new(
15
+ :icons_set_name,
16
+ :icons_file_path,
17
+ :fonts_file_dir,
18
+ :css_class
19
+ ).new(
20
+ content['icons_set_name'],
21
+ content['icons_file_path'],
22
+ content['fonts_file_dir'],
23
+ content['css_class']
24
+ )
25
+ end
26
+
27
+ def write(config)
28
+ Icomoon::Cli::Writer.write(CONFIG_FILE_NAME) do |file|
29
+ file.puts(JSON.pretty_generate(config))
30
+ end
31
+ end
32
+
33
+ def config_file_exists?
34
+ File.exists? CONFIG_FILE_NAME
35
+ end
36
+
37
+ def config_file_full_path
38
+ File.expand_path(CONFIG_FILE_NAME)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,31 @@
1
+ require 'icomoon/version'
2
+
3
+ require 'icomoon/cli/exec/base'
4
+ require 'icomoon/cli/exec/init'
5
+ require 'icomoon/cli/exec/import'
6
+ require 'icomoon/cli/exec/help'
7
+
8
+ module Icomoon
9
+ module Cli
10
+ module Exec
11
+ class << self
12
+ def run(argv)
13
+ command = argv.shift
14
+
15
+ case command
16
+ when 'init'
17
+ Icomoon::Cli::Exec::Init.run(argv)
18
+ when 'import'
19
+ Icomoon::Cli::Exec::Import.run(argv)
20
+ when 'help', nil
21
+ Icomoon::Cli::Exec::Help.run(argv)
22
+ when 'version', '--version', '-v'
23
+ Icomoon::Cli.logs Icomoon::VERSION
24
+ else
25
+ Icomoon::Cli.logs "invalid command: #{command}"
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,59 @@
1
+ module Icomoon
2
+ module Cli
3
+ module Exec
4
+ class Base
5
+ @@params = []
6
+
7
+ def self.params
8
+ @@params
9
+ end
10
+
11
+ def initialize(args)
12
+ @args = args
13
+ end
14
+
15
+ class << self
16
+ def run(argv)
17
+ if argv.count == 1 && argv[0] == 'help'
18
+ return display_help
19
+ end
20
+
21
+ new(Icomoon::Cli::ParseArgv.call(argv, params)).run
22
+ end
23
+
24
+ def display_help
25
+ puts @command_help_text
26
+ end
27
+
28
+ def help(text)
29
+ @command_help_text = text
30
+ end
31
+
32
+ def param(*args)
33
+ add_param(true, *args)
34
+ end
35
+
36
+ def flag(*args)
37
+ add_param(false, *args)
38
+ end
39
+
40
+ def add_param(needs_value, *args)
41
+ key = args.shift
42
+ params << Icomoon::Cli::ExecParam.new(key, args, needs_value) if args.count.nonzero?
43
+
44
+ method_name = needs_value ? key : "#{key}?"
45
+ define_param_reader(key, method_name)
46
+ end
47
+
48
+ def define_param_reader(key, method_name = key)
49
+ class_eval("def #{method_name}; args[#{key.to_sym.inspect}] rescue nil; end")
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ attr_reader :args
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,23 @@
1
+ module Icomoon
2
+ module Cli
3
+ module Exec
4
+ class Help < Icomoon::Cli::Exec::Base
5
+ help <<~STRING
6
+ :-)
7
+ STRING
8
+
9
+ def run
10
+ puts <<~STRING
11
+ Usage: icomoon command [...options]
12
+
13
+ Run `icomoon command help` to get help about specific command.
14
+
15
+ Commands:
16
+ - help Displays this help text.
17
+ - init Initializes and configures Icomoon.
18
+ STRING
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,143 @@
1
+ require 'fileutils'
2
+
3
+ module Icomoon
4
+ module Cli
5
+ module Exec
6
+ class Import < Icomoon::Cli::Exec::Base
7
+ CONFIG_FILE_NAME = '.icomoonrc'
8
+ EXTENSIONS = %w[eot ttf woff svg].freeze
9
+
10
+ help <<~STRING
11
+ Usage: icomoon import [--major]
12
+
13
+ This subprogram imports fonts files and JSON manifest from given
14
+ directory. It also updates icon font version.
15
+
16
+ options:
17
+
18
+ -dir, -d Specifies source directory for importing files.
19
+ This option is required.
20
+ STRING
21
+
22
+ param :source_dir, '--dir', '-d'
23
+
24
+ def run
25
+ Icomoon::Cli::Operation.new do
26
+ validate_params
27
+ end
28
+
29
+ Icomoon::Cli::Operation.new do
30
+ read_config
31
+ end
32
+
33
+ Icomoon::Cli::Operation.new 'Checking files' do
34
+ EXTENSIONS.each do |ext|
35
+ check_source_file("fonts/#{config.icons_set_name}.#{ext}")
36
+ end
37
+ end
38
+
39
+ Icomoon::Cli::Operation.new 'Copying font files' do
40
+ EXTENSIONS.each do |ext|
41
+ filename = "#{config.icons_set_name}.#{ext}"
42
+ copy_file(filename, source_subdir: 'fonts')
43
+ end
44
+ end
45
+
46
+ Icomoon::Cli::Operation.new 'Copying JSON manifest' do
47
+ copy_file('selection.json', target_filename: Icomoon::Cli::MANIFEST_FILENAME)
48
+ end
49
+
50
+ Icomoon::Cli::Operation.new do
51
+ validate_and_print_code
52
+ end
53
+
54
+ Icomoon::Cli::Operation.dump_warnings
55
+ Icomoon::Cli::Operation.dump_errors
56
+ end
57
+
58
+ private
59
+
60
+ attr_reader :config
61
+
62
+ def read_config
63
+ @config = Icomoon::Cli::Config.read
64
+ end
65
+
66
+ def check_source_file(path)
67
+ absolute_path = File.join(source_dir, config.icons_set_name, path)
68
+ return true if File.exists?(absolute_path)
69
+ fail Icomoon::Cli::Error, "File not found: #{absolute_path}"
70
+ end
71
+
72
+ def copy_file(filename, source_subdir: '', target_filename: filename)
73
+ FileUtils.cp(
74
+ File.join(source_dir, config.icons_set_name, source_subdir, filename),
75
+ File.expand_path(File.join(config.fonts_file_dir, target_filename))
76
+ )
77
+ rescue StandardError => e
78
+ fail Icomoon::Cli::Error, e.message
79
+ end
80
+
81
+ def validate_and_print_code
82
+ css_icons_path = File.expand_path(config.icons_file_path)
83
+ css_icon_regex = /\&--([0-9a-z_\-]+)\:before \{\s+content: \"\\(e[0-9a-f]+)\"/
84
+ css_icons = array_to_icons(File.read(css_icons_path).scan(css_icon_regex))
85
+
86
+ svg_icons_path = File.expand_path(File.join(config.fonts_file_dir, "#{config.icons_set_name}.svg"))
87
+ svg_icon_regex = /unicode=\"&#x([0-9a-z]+);\" glyph-name=\"([0-9a-z_\-]+)\"/
88
+ svg_icons = array_to_icons(File.read(svg_icons_path).scan(svg_icon_regex).map(&:reverse))
89
+
90
+ find_unused_icons(css_icons, svg_icons)
91
+ print_code_update(css_icons, svg_icons)
92
+ end
93
+
94
+ def find_unused_icons(css_icons, svg_icons)
95
+ unused_icons = css_icons.select do |css_icon|
96
+ svg_icons.map(&:code).index(css_icon.code).nil?
97
+ end
98
+
99
+ n = unused_icons.count
100
+
101
+ return true if n.zero?
102
+
103
+ names = unused_icons.map(&:name).join(', ')
104
+ message = "#{n} unused #{n == 1 ? 'icon' : 'icons'} detected: #{names}."
105
+ Icomoon::Cli::Operation.warn! message
106
+ end
107
+
108
+ def print_code_update(css_icons, svg_icons)
109
+ missing_icons = svg_icons.select do |svg_icon|
110
+ css_icons.map(&:code).index(svg_icon.code).nil?
111
+ end
112
+
113
+ if missing_icons.count.zero?
114
+ Icomoon::Cli::Operation.warn! 'No new icons detected.'
115
+ return
116
+ end
117
+
118
+ code = missing_icons.map do |icon|
119
+ <<~STRING
120
+ &--#{icon.name}:before {
121
+ content: "\\#{icon.code}";
122
+ }
123
+ STRING
124
+ end.join("\n").cyan
125
+
126
+ puts "\nAdd this to #{config.icons_file_path}:\n\n#{code}"
127
+ end
128
+
129
+ def validate_params
130
+ if source_dir.nil?
131
+ fail Icomoon::Cli::Error, 'Source directory argument (--dir, -d) is required.'
132
+ end
133
+ end
134
+
135
+ def array_to_icons(array)
136
+ array.map do |name, code|
137
+ Icomoon::Cli::Icon.new(name, code)
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,160 @@
1
+ module Icomoon
2
+ module Cli
3
+ module Exec
4
+ class Init < Icomoon::Cli::Exec::Base
5
+ help <<~STRING
6
+ Usage: icomoon init [--force, -f]
7
+
8
+ This subprogram will help you to create starting
9
+ files such as icon stylesheet file and config initializer.
10
+ Just run `icomoon init` and follow instructions.
11
+
12
+ options:
13
+
14
+ --force, -f Overrides config and stylesheet files.
15
+ STRING
16
+
17
+ flag :force, '--force', '-f'
18
+
19
+ def run
20
+ config = Icomoon::Cli::Survey.run do |s|
21
+ s.ask :icons_set_name, 'Icon set name', 'icomoon-icons'
22
+ s.ask :icons_file_path, 'Path of icons stylesheet file', 'app/assets/stylesheets/_icons.scss'
23
+ s.ask :fonts_file_dir, 'Directory of fonts files', 'app/assets/fonts/'
24
+ s.ask :css_class, 'CSS icon class', 'icon'
25
+ end
26
+
27
+ dir = config[:fonts_file_dir]
28
+ manifest_path = File.expand_path(File.join(dir, Icomoon::Cli::MANIFEST_FILENAME))
29
+
30
+ Icomoon::Cli.put_separator
31
+
32
+ Icomoon::Cli::Operation.new do
33
+ ensure_pristine(config, manifest_path)
34
+ end
35
+
36
+ Icomoon::Cli::Operation.new 'Creating config file' do
37
+ write_config(config)
38
+ end
39
+
40
+ Icomoon::Cli::Operation.new 'Initializing icons stylesheet' do
41
+ write_styles(config)
42
+ end
43
+
44
+ Icomoon::Cli::Operation.new 'Creating JSON manifest' do
45
+ write_manifest(config, manifest_path)
46
+ end
47
+
48
+ Icomoon::Cli::Operation.dump_warnings
49
+ Icomoon::Cli::Operation.dump_errors
50
+ end
51
+
52
+ private
53
+
54
+ def ensure_pristine(config, manifest_path)
55
+ return true if force?
56
+
57
+ force_tip = 'use --force (-f) option if you want to override.'
58
+
59
+ if Icomoon::Cli::Config.config_file_exists?
60
+ fail Icomoon::Cli::Error, 'Config file already exists, '\
61
+ + force_tip
62
+ end
63
+
64
+ if Icomoon::Cli.file_exists?(config[:icons_file_path])
65
+ fail Icomoon::Cli::Error, 'Styles file already exists, '\
66
+ + force_tip
67
+ end
68
+
69
+ if Icomoon::Cli.file_exists?(manifest_path)
70
+ fail Icomoon::Cli::Error, 'icomoon.json file already exists, '\
71
+ + force_tip
72
+ end
73
+ end
74
+
75
+ def write_config(config)
76
+ Icomoon::Cli::Config.write(config)
77
+ end
78
+
79
+ def write_styles(config)
80
+ icons_file_path = config[:icons_file_path]
81
+ icons_set_name = config[:icons_set_name]
82
+ css_class = config[:css_class]
83
+
84
+ Icomoon::Cli::Writer.write(icons_file_path) do |file|
85
+ file.puts(<<~STRING
86
+ @font-face {
87
+ font-family: '#{icons_set_name}';
88
+ src: asset-url('#{icons_set_name}.eot');
89
+ src: asset-url('#{icons_set_name}.eot') format('embedded-opentype'),
90
+ asset-url('#{icons_set_name}.ttf') format('truetype'),
91
+ asset-url('#{icons_set_name}.woff') format('woff');
92
+ }
93
+
94
+ .#{css_class} {
95
+ font-family: '#{icons_set_name}';
96
+
97
+ // &--icon-name:before {
98
+ // content: \"\\e900\";
99
+ // }
100
+ }
101
+ STRING
102
+ )
103
+ end
104
+ end
105
+
106
+ def write_manifest(config, manifest_path)
107
+ font_name = config[:icons_set_name]
108
+ css_class = config[:css_class]
109
+ icons_file_path = config[:icons_file_path]
110
+ prefix = "#{css_class}-"
111
+
112
+ Icomoon::Cli::Writer.write_json(
113
+ manifest_path,
114
+ IcoMoonType: 'selection',
115
+ icons: [],
116
+ height: 1024,
117
+ metadata: {
118
+ name: font_name
119
+ },
120
+ preferences: {
121
+ showGlyphs: true,
122
+ showQuickUse: true,
123
+ showQuickUse2: true,
124
+ showSVGs: true,
125
+ fontPref: {
126
+ prefix: prefix,
127
+ metadata: {
128
+ fontFamily: font_name,
129
+ majorVersion: 0,
130
+ minorVersion: 1
131
+ },
132
+ metrics: {
133
+ emSize: 1024,
134
+ baseline: 6.25,
135
+ whitespace: 50
136
+ },
137
+ embed: false,
138
+ showSelector: false,
139
+ showMetrics: false,
140
+ showMetadata: false,
141
+ showVersion: false
142
+ },
143
+ imagePref: {
144
+ prefix: prefix,
145
+ png: true,
146
+ useClassSelector: true,
147
+ color: 0,
148
+ bgColor: 16777215,
149
+ classSelector: ".#{css_class}"
150
+ },
151
+ historySize: 50,
152
+ showCodes: true,
153
+ gridSize: 16
154
+ }
155
+ )
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,13 @@
1
+ module Icomoon
2
+ module Cli
3
+ class ExecParam
4
+ attr_reader :key, :aliases, :needs_value
5
+
6
+ def initialize(key, aliases, needs_value)
7
+ @key = key
8
+ @aliases = aliases || []
9
+ @needs_value = needs_value
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ module Icomoon
2
+ module Cli
3
+ class Icon
4
+ def initialize(name, code)
5
+ @name = name
6
+ @code = code
7
+ end
8
+
9
+ attr_reader :name, :code
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ module Icomoon
2
+ module Cli
3
+ class Logger
4
+ PREFIX = "[#{'icomoon'.light_blue}]".freeze
5
+
6
+ def log(text, break_line)
7
+ if break_line
8
+ puts "#{PREFIX} #{text}"
9
+ else
10
+ print "#{PREFIX} #{text}"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,54 @@
1
+ module Icomoon
2
+ module Cli
3
+ class Operation
4
+ @@warnings = []
5
+ @@errors = []
6
+ @@skip_all = false
7
+
8
+ def initialize(name = nil)
9
+ return unless block_given?
10
+ return if self.class.skip?
11
+
12
+ Icomoon::Cli.log "#{name}... " if name
13
+
14
+ begin
15
+ yield
16
+ puts '✔'.green if name
17
+ rescue Icomoon::Cli::Error => error
18
+ @@errors << error
19
+ puts '✘'.red if name
20
+ Icomoon::Cli::Operation.skip_all!
21
+ rescue Icomoon::Cli::Warning => warning
22
+ @@warnings << warning
23
+ puts '✘'.red if name
24
+ end
25
+ end
26
+
27
+ def self.dump_warnings
28
+ while (warning = @@warnings.shift)
29
+ Icomoon::Cli.logs "#{'Warning:'.yellow} #{warning.message}"
30
+ end
31
+ end
32
+
33
+ def self.dump_errors(exit_code = nil)
34
+ while (error = @@errors.shift)
35
+ Icomoon::Cli.logs "#{'Error:'.red} #{error.message}"
36
+ end
37
+
38
+ exit(exit_code) if exit_code
39
+ end
40
+
41
+ def self.warn!(message)
42
+ @@warnings << Icomoon::Cli::Operation::Warning.new(message)
43
+ end
44
+
45
+ def self.skip_all!
46
+ @@skip_all = true
47
+ end
48
+
49
+ def self.skip?
50
+ @@skip_all
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,27 @@
1
+ module Icomoon
2
+ module Cli
3
+ class ParseArgv
4
+ def self.call(argv, params)
5
+ result = {}
6
+
7
+ params.each do |param|
8
+ param.aliases.each do |aliaz|
9
+ idx = argv.find_index { |arg| argv.include? aliaz }
10
+
11
+ if idx
12
+ value = param.needs_value ? argv.delete_at(idx + 1) : true
13
+ argv.delete_at(idx)
14
+ result[param.key] = value
15
+ end
16
+ end
17
+ end
18
+
19
+ if argv.count.nonzero?
20
+ Icomoon::Cli.error "Unrecognized arguments: #{argv.join(', ')}"
21
+ end
22
+
23
+ result
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ module Icomoon
2
+ module Cli
3
+ class Question
4
+ def initialize(value, name, default)
5
+ @value = value
6
+ @name = name
7
+ @default = default
8
+ end
9
+
10
+ attr_reader :value, :name, :default
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,36 @@
1
+ module Icomoon
2
+ module Cli
3
+ class Survey
4
+ def initialize
5
+ @questions = []
6
+ end
7
+
8
+ def ask(value, name, default = nil)
9
+ questions << Icomoon::Cli::Question.new(value, name, default)
10
+ end
11
+
12
+ def read!
13
+ Hash.new.tap do |answers|
14
+ questions.each do |q|
15
+ Icomoon::Cli.log "#{'question'.light_black} #{q.name} (#{q.default || 'none'}): "
16
+
17
+ answer = (gets || '').chomp
18
+ answer = q.default if /\A[\s]*\z/.match?(answer)
19
+
20
+ answers[q.value] = answer
21
+ end
22
+ end
23
+ end
24
+
25
+ def self.run
26
+ survey = new
27
+ yield(survey)
28
+ survey.read!
29
+ end
30
+
31
+ private
32
+
33
+ attr_reader :questions
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,26 @@
1
+ module Icomoon
2
+ module Cli
3
+ class Writer
4
+ class << self
5
+ def write(path)
6
+ return unless block_given?
7
+
8
+ path = File.expand_path(path)
9
+
10
+ File.new(path, 'w+').tap do |file|
11
+ yield file
12
+ file.close
13
+ end
14
+
15
+ path
16
+ end
17
+
18
+ def write_json(path, json = {})
19
+ write(path) do |file|
20
+ file.puts(JSON.pretty_generate(json))
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,3 @@
1
+ module Icomoon
2
+ VERSION = '0.0.2'.freeze
3
+ end
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: icomoon
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - polakowski
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-09-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.5'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.5'
41
+ description: Rails helper makes using Icomoon easier.
42
+ email: marek.polakowski@gmail.com
43
+ executables:
44
+ - icomoon
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - README.md
49
+ - bin/icomoon
50
+ - lib/icomoon.rb
51
+ - lib/icomoon/cli.rb
52
+ - lib/icomoon/cli/config.rb
53
+ - lib/icomoon/cli/exec.rb
54
+ - lib/icomoon/cli/exec/base.rb
55
+ - lib/icomoon/cli/exec/help.rb
56
+ - lib/icomoon/cli/exec/import.rb
57
+ - lib/icomoon/cli/exec/init.rb
58
+ - lib/icomoon/cli/exec_param.rb
59
+ - lib/icomoon/cli/icon.rb
60
+ - lib/icomoon/cli/logger.rb
61
+ - lib/icomoon/cli/operation.rb
62
+ - lib/icomoon/cli/parse_argv.rb
63
+ - lib/icomoon/cli/question.rb
64
+ - lib/icomoon/cli/survey.rb
65
+ - lib/icomoon/cli/writer.rb
66
+ - lib/icomoon/version.rb
67
+ homepage: https://github.com/polakowski/icomoon
68
+ licenses:
69
+ - MIT
70
+ metadata: {}
71
+ post_install_message:
72
+ rdoc_options: []
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: 2.2.2
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ requirements: []
86
+ rubyforge_project:
87
+ rubygems_version: 2.4.8
88
+ signing_key:
89
+ specification_version: 4
90
+ summary: Icomoon helper
91
+ test_files: []