icomoon2sass 1.0.2 → 1.0.3

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: 0a950e6bc77ff1331d2e3ef292382b433b5690aa
4
- data.tar.gz: 8d76c54bf86d370e9d297d829a587945178d1b68
3
+ metadata.gz: 76a022fa1734a2a2327fdcf8be6196a8086dd7ce
4
+ data.tar.gz: 726612498b2e206c2765165bc54272598d741015
5
5
  SHA512:
6
- metadata.gz: baefe6bb865165be45e235c8624c80189ef52007616301e2484763f8c5a8c7f9479c7b045f53c3917074974f3e98eb4ce25e002fd02d5d6e6c0d8f54771929ba
7
- data.tar.gz: 1265deb0b8c629f359884920a6aac9598ac642e486d72e207c9cdd21e61884bfefcb6f4023673b53427fd523df64cc5fd51717b1d70c181fc14ef956e65090ea
6
+ metadata.gz: 51ed00395230f2a3df1291d0bcd6725c4a1f525f57e96c752d2fa9a77d0a79f4fde2b4014006f34b4faf4f4958c19c15d6a41138f6d63a0057a0717f8c21731f
7
+ data.tar.gz: f762faacccbdf3bb5b2a539c1f5226266081d60545bd3231343719db1dd03daf110616cfd1b969350a8669ce3ebc1586ff62797accd94333a9ac4e0cb544673c
data/lib/hash.rb ADDED
@@ -0,0 +1,26 @@
1
+ class Hash
2
+ def transform_keys
3
+ result = {}
4
+ each_key do |key|
5
+ result[yield(key)] = self[key]
6
+ end
7
+ result
8
+ end
9
+
10
+ def transform_keys!
11
+ keys.each do |key|
12
+ self[yield(key)] = delete(key)
13
+ end
14
+ self
15
+ end
16
+
17
+ def symbolize_keys
18
+ transform_keys{ |key| key.to_sym rescue key }
19
+ end
20
+
21
+ def symbolize_keys!
22
+ transform_keys!{ |key| key.to_sym rescue key }
23
+ end
24
+
25
+ end
26
+
data/lib/icomoon2sass.rb CHANGED
@@ -4,8 +4,56 @@ require 'icomoon2sass/zip'
4
4
  require 'icomoon2sass/dir'
5
5
  require 'icomoon2sass/font'
6
6
  require 'icomoon2sass/sass'
7
+ require 'icomoon2sass/utilities'
8
+ require 'hash'
7
9
 
8
10
  module Icomoon2Sass
9
- # Your code goes here...
11
+
12
+ def self.run!(source, font_path, sass_path, options = {})
13
+ defaults = {
14
+ scss: false,
15
+ compatible: false,
16
+ oocss: false
17
+ }
18
+
19
+ options = defaults.merge options.symbolize_keys
20
+
21
+ utilities = Icomoon2Sass::Utilities.new
22
+
23
+ if source.end_with? '.zip'
24
+ files = Icomoon2Sass::Zip.new source
25
+
26
+ elsif Dir.exists? source
27
+ files = Icomoon2Sass::Dir.new source
28
+
29
+ else
30
+ raise 'Source must be either a directory or .zip file!'
31
+
32
+ end
33
+
34
+ raise 'Source must contain \'selection.json\'.' unless files.files['selection.json']
35
+
36
+ font = Icomoon2Sass::Font.new files.metadata_file
37
+
38
+ syntax = options[:scss] ? 'scss' : 'sass'
39
+
40
+ compatible = options[:compatible] || false
41
+
42
+ sass = Icomoon2Sass::Sass.new font, syntax, compatible
43
+
44
+
45
+ # Save the Sass file
46
+ utilities.create_file "#{sass_path}/_icons.#{sass.syntax}", sass.code
47
+
48
+ if options[:oocss]
49
+ utilities.create_file "#{sass_path}/_oocss_icons.#{sass.syntax}", sass.oocss
50
+ end
51
+
52
+ files.font_files.each do |filename, content|
53
+ utilities.create_file "#{font_path}/#{filename.sub('fonts/', '')}", content
54
+ end
55
+
56
+ end
57
+
10
58
  end
11
59
 
@@ -5,7 +5,7 @@ require 'icomoon2sass'
5
5
  class Icomoon2Sass::CLI < Thor::Group
6
6
  include Thor::Actions
7
7
 
8
- argument :icomoon
8
+ argument :source
9
9
 
10
10
  class_option :'font-path', type: :string, default: './', desc: 'Destination path for font files'
11
11
  class_option :'sass-path', type: :string, default: './', desc: 'Destination path for Sass files'
@@ -15,43 +15,15 @@ class Icomoon2Sass::CLI < Thor::Group
15
15
 
16
16
  def start
17
17
 
18
- if icomoon.end_with? '.zip'
19
- say_status('Reading zip file.', '', :green)
18
+ begin
19
+ Icomoon2Sass.run! source, options['font-path'], options['sass-path'], options
20
20
 
21
- files = Icomoon2Sass::Zip.new icomoon
21
+ rescue Exception => e
22
+ say_status(e, '', :red)
22
23
 
23
- elsif Dir.exists? icomoon
24
- say_status('Reading directory.', '', :blue)
25
-
26
- files = Icomoon2Sass::Dir.new icomoon
27
-
28
- else
29
- return say_status('WTF?!', 'I have no idea what I\'m doing.', :red)
30
-
31
- end
32
-
33
- return say_status('You seem to be missing \'selection.json\'.', '', :red) unless files.files['selection.json']
34
-
35
-
36
- font = Icomoon2Sass::Font.new files.metadata_file
37
-
38
- syntax = options['scss'] ? 'scss' : 'sass'
39
-
40
- compatible = options['compatible'] || false
41
-
42
- sass = Icomoon2Sass::Sass.new font, syntax, compatible
43
-
44
-
45
- # Save the Sass file
46
- create_file "#{options['sass-path']}/_icons.#{sass.syntax}", sass.code
47
-
48
- if options['oocss']
49
- create_file "#{options['sass-path']}/_oocss_icons.#{sass.syntax}", sass.oocss
50
24
  end
51
25
 
52
- files.font_files.each do |filename, content|
53
- create_file "#{options['font-path']}/#{filename.sub('fonts/', '')}", content
54
- end
26
+ return
55
27
 
56
28
  end
57
29
  end
@@ -0,0 +1,9 @@
1
+ require 'thor'
2
+
3
+ module Icomoon2Sass
4
+
5
+ class Utilities < Thor
6
+ include Thor::Actions
7
+ end
8
+
9
+ end
@@ -1,4 +1,4 @@
1
1
  module Icomoon2Sass
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
4
4
 
data/lib/run.rb CHANGED
@@ -7,16 +7,20 @@ ARGV << '--help' if ARGV.empty?
7
7
  help_message = <<-EOT
8
8
  Usage: icomoon2sass path/to/icomoon(.zip) [OPTIONS]
9
9
 
10
+ You can also pass the path to an unzipped directory.
11
+
12
+
10
13
  OPTIONS
11
14
  --font-path PATH Destination path for font files, defaults to current directory
12
15
  --sass-path PATH Destination path for Sass files, defaults to current directory
13
16
  --scss Use the SCSS syntax
14
17
  -c, --compatible Generate code compatible with Sass 3.2
18
+ --oocss Generate OOCSS-style classes
15
19
 
16
20
 
17
21
  OUTPUT
18
22
  By default icomoon2sass generates Sass code in the indented Sass syntax. Further,
19
- the default generated code is only compaitble with Sass 3.3+.
23
+ the default generated code is only compatible with Sass 3.3+.
20
24
 
21
25
  $icons: (
22
26
  github: \'\\28\',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: icomoon2sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jed Foster
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-12 00:00:00.000000000 Z
11
+ date: 2014-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -61,6 +61,7 @@ extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
63
  - bin/icomoon2sass
64
+ - lib/hash.rb
64
65
  - lib/icomoon2sass.rb
65
66
  - lib/icomoon2sass/archive.rb
66
67
  - lib/icomoon2sass/cli.rb
@@ -71,6 +72,7 @@ files:
71
72
  - lib/icomoon2sass/templates/map.sass.erb
72
73
  - lib/icomoon2sass/templates/oocss_list.sass.erb
73
74
  - lib/icomoon2sass/templates/oocss_map.sass.erb
75
+ - lib/icomoon2sass/utilities.rb
74
76
  - lib/icomoon2sass/version.rb
75
77
  - lib/icomoon2sass/zip.rb
76
78
  - lib/run.rb