fontello_rails_converter 0.2.0 → 0.3.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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTRhYmE3Yjk3NTEzNDRiOWM5ZGQ4M2Q4NTRlMTU0YzFmNGYyMzI1OQ==
4
+ YzdhMjhjZGZjMjE1NDNjYmYxNzQ3NjIwZDMyYTI1YjA5Y2FjMGRhMw==
5
5
  data.tar.gz: !binary |-
6
- NmMxMmZmOGVjYjkwMGQyNjAwMzdhOTVmMDFhMGZjYmViOGYwYmVjNQ==
6
+ Y2NlYTNmNWFjMTAyMjVmN2IzNGVlN2YxYmM1ZjFjZDc5NjcwYThkNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZWViZjFmYjUzNWM0YjkwZTUxY2JkN2YwN2I4Y2NhNjI5MjFkYTQ4OGNhZDJh
10
- NjM0YzMxMWRkNmVhMzgzN2EzMjRjMTNiZTk0NDMxYmQ1OWM1NWY2MTY0MDNk
11
- M2EwMTgzNzI3Yzg0NWEwZGI5NGY1YTEzNGJhNTBjMmYyMTRjYTU=
9
+ M2VkZGMxNmQ4MDljOTIwZWE4YjdiYjJmOTY1ZTJmNjIwY2FlNTc2ZThhNzcz
10
+ OWQzNzYzMmYxOWFlYjllYjI3OGE3ODU5NTQwNjA0MTZkNGEzMmMzMzQ4YTk3
11
+ OGI5ZTM3MGZiZTE4Mjc2OTYyYjI3ZGY1NjI2YWI1MTU3OTliYTc=
12
12
  data.tar.gz: !binary |-
13
- NDZjYzIyZDcxNmZiZTc0MGFhNjJlMzRmNmY3MDliM2Q4ZjI3NjZjNTQyY2M3
14
- YjYwMDBjZGMwMTM5NDYzM2U3ZDllNTRiYmE1MTUxMjI5ZjM3ZTMxMjQ5YWI0
15
- ZDBjNjNmMzY2NTMzZjNmMGJiM2Q0MTA0MmU0MmNjZjEwZjgwNDU=
13
+ MGZiZTUzOTVjMWYwNTAyZTc3MTY3NDZhYTBhZDhlZTNkOGUzNTEzMTBjOWIw
14
+ YWUzNDk3YmJhMjhkZWQwMjVkZTUyZDQwNGVhN2RlYTYyNzM2YTRiOWU5ODli
15
+ ODAwYmJmYzE4YWQ0MmYyZWQ2NWU2NjBjYThkMjk3NjRiNjM0MTc=
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ### 0.3.0
4
+
5
+ * allow setting global options using a .yml file (e.g. /rails_root/config/fontello_rails_converter.yml)
6
+ * allow configuration of the stylesheet extension for the SCSS files (`.css.scss` or `.scss`)
7
+ * fail gracefully when there is no config file yet (90ec5942383cc5558a097aa78c4adcc809ab6a0e)
8
+ * fixes for 2 encoding issues #11 and #12 by @hqm42
9
+
3
10
  ### 0.2.0
4
11
 
5
12
  * removed deprecated rake task
data/Gemfile CHANGED
@@ -4,5 +4,5 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'rails-dummy'
7
- gem 'rails'
7
+ gem 'rails', '~> 4.0'
8
8
  gem 'sqlite3' # dummy app dependency
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  ## fontello_rails_converter
2
2
 
3
+ [![Build Status](https://travis-ci.org/railslove/fontello_rails_converter.png?branch=master)](https://travis-ci.org/railslove/fontello_rails_converter)
4
+
3
5
  CLI gem for comfortably working with icon fonts from [http://fontello.com](http://fontello.com) for usage in Rails apps.
4
6
 
5
7
  Main features:
data/bin/fontello CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'optparse'
4
+ require 'yaml'
4
5
  require "fontello_rails_converter"
5
6
  command = ARGV[0]
6
7
 
@@ -9,19 +10,34 @@ if ARGV[0].nil?
9
10
  exit
10
11
  end
11
12
 
12
- def options_based_on_rails_root(options)
13
+ def set_options_based_on_rails_root(options)
13
14
  options[:asset_dir] = "#{options[:rails_root_dir]}/vendor/assets"
14
15
  options.merge!({
15
16
  stylesheet_dir: "#{options[:asset_dir]}/stylesheets",
16
17
  font_dir: "#{options[:asset_dir]}/fonts",
17
18
  zip_file: "#{options[:rails_root_dir]}/tmp/fontello.zip",
18
19
  config_file: "#{options[:asset_dir]}/fonts/config.json",
19
- fontello_session_id_file: "#{options[:rails_root_dir]}/tmp/fontello_session_id"
20
+ fontello_session_id_file: "#{options[:rails_root_dir]}/tmp/fontello_session_id",
21
+ options_file: "#{options[:rails_root_dir]}/config/fontello_rails_converter.yml"
20
22
  })
21
23
  end
22
24
 
23
- options = { rails_root_dir: "." } # default
24
- options = options_based_on_rails_root(options)
25
+ def set_options_from_file(options)
26
+ if File.exist?(options[:options_file])
27
+ options_from_file = YAML.load_file options[:options_file]
28
+ options_from_file.each do |key, value|
29
+ options[key.to_sym] = value if options.keys.include?(key.to_sym)
30
+ end
31
+ end
32
+ end
33
+
34
+ # defaults
35
+ options = {
36
+ rails_root_dir: '.',
37
+ stylesheet_extension: '.css.scss'
38
+ }
39
+ set_options_based_on_rails_root(options)
40
+ set_options_from_file(options)
25
41
 
26
42
  OptionParser.new do |opts|
27
43
  opts.banner = "Usage: fontello COMMAND [options]\n\n"
@@ -30,6 +46,11 @@ OptionParser.new do |opts|
30
46
 
31
47
  opts.separator "Global options:"
32
48
 
49
+ opts.on("-o", "--options-file [PATH]", "options .yml file (default: /rails_root/config/fontello_rails_converter.yml)") do |opt|
50
+ options[:options_file] = opt
51
+ set_options_from_file(options)
52
+ end
53
+
33
54
  opts.on("-i", "--fontello-session-id [ID]", "Pass in session ID from fontello.com (e.g. fb235ab72cad01d2b46aaa023ab4abbd) otherwise it will be taken from session-id-file\n\n") do |opt|
34
55
  options[:fontello_session_id] = opt
35
56
  end
@@ -42,7 +63,11 @@ OptionParser.new do |opts|
42
63
 
43
64
  opts.separator "`convert` options:"
44
65
 
45
- opts.on("-n", "--no-download", "Converts existing .zip file without automatically downloading a new one\n\n") do |opt|
66
+ opts.on("-n", "--no-download", "Converts existing .zip file without automatically downloading a new one") do |opt|
67
+ options[:no_download] = true
68
+ end
69
+
70
+ opts.on("--stylesheet-extension", "Pick between e.g. '.css.scss' or '.scss'\n\n") do |opt|
46
71
  options[:no_download] = true
47
72
  end
48
73
 
@@ -56,7 +81,7 @@ OptionParser.new do |opts|
56
81
 
57
82
  opts.on("-r", "--rails-root [PATH]", "Rails root path (default: current location)") do |opt|
58
83
  options[:rails_root_dir] = opt
59
- options = options_based_on_rails_root(options)
84
+ set_options_based_on_rails_root(options)
60
85
  end
61
86
 
62
87
  opts.on("-c", "--config-file [PATH]", "config.json file (default: /rails_root/vendor/assets/fonts/config.json)") do |opt|
@@ -12,8 +12,14 @@ module FontelloRailsConverter
12
12
  end
13
13
 
14
14
  def open
15
- @fontello_api.new_session_from_config unless @options[:open_existing] == true
16
- Launchy.open @fontello_api.session_url
15
+ if config_file_exists?
16
+ @fontello_api.new_session_from_config unless @options[:open_existing] == true
17
+ Launchy.open @fontello_api.session_url
18
+ else
19
+ puts red("there's no config file yet!")
20
+ puts red("follow these instructions: https://github.com/railslove/fontello_rails_converter#initial-usage")
21
+ puts red("to setup your project")
22
+ end
17
23
  end
18
24
 
19
25
  def download
@@ -34,12 +40,12 @@ module FontelloRailsConverter
34
40
  # stylesheets
35
41
  if filename.end_with? '.css'
36
42
  # extract stylesheet to target location
37
- target_file = File.join @options[:stylesheet_dir], "#{filename}.scss"
43
+ target_file = File.join @options[:stylesheet_dir], filename.gsub('.css', @options[:stylesheet_extension])
38
44
  zipfile.extract(file, target_file) { true }
39
45
  puts green("copied #{target_file}")
40
46
 
41
47
  if !filename.end_with? "animation.css", "-ie7.css", "-codes.css", "-ie7-codes.css", "-embedded.css"
42
- converted_css = self.convert_main_stylesheet File.read(target_file)
48
+ converted_css = self.convert_main_stylesheet File.read(target_file).encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '')
43
49
  File.open(target_file, 'w') { |f| f.write(converted_css) }
44
50
  puts green("converted #{target_file} for Sass & asset pipeline")
45
51
  end
@@ -24,7 +24,7 @@ module FontelloRailsConverter
24
24
 
25
25
  def download_zip_body
26
26
  response = RestClient.get "#{session_url}/get"
27
- response.body
27
+ response.body.force_encoding("UTF-8")
28
28
  end
29
29
 
30
30
  private
@@ -46,4 +46,4 @@ module FontelloRailsConverter
46
46
  File.open(@fontello_session_id_file, 'w+') { |f| f.write @session_id }
47
47
  end
48
48
  end
49
- end
49
+ end
@@ -1,3 +1,3 @@
1
1
  module FontelloRailsConverter
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fontello_rails_converter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jakob Hilden
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-18 00:00:00.000000000 Z
11
+ date: 2014-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip