fontello_rails_converter 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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