autoprefixer-rails 9.8.5 → 9.8.6.4

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
  SHA256:
3
- metadata.gz: f5182124a6fefc07d412d82b244a521dd3094a1d7bc1bcd481156ea53d19082a
4
- data.tar.gz: 8efdba7a1317cd31cb68fd67ef782fa32e8ced7b208ac806f6d7af9c0e0bb3b2
3
+ metadata.gz: 1c62892692c2f07e5540401e9c50e334a459077a0ed6a992d7eacbe2c2d1878e
4
+ data.tar.gz: 70eb5e668e43435c65a78c4288476634eaf73167ca87da7f5cab93dbb39817d1
5
5
  SHA512:
6
- metadata.gz: ca048733118764ce88990487ceec91f39732a5ba6e84de4dbecc9bb2c9f306ebbb0296726c50582e0c3487d00a41870bd229365774dd605fecebdb284f57db67
7
- data.tar.gz: 0604ebbbd9e25c9cdca72ba0143f871a8df9eb211073de53d6864c5e276139601f26a47272d9458de8c6925431fc04f960d5a3c541ff29cad0f680b2ca5c43cc
6
+ metadata.gz: 7502d48faf64d234f680ed4ef7aca5cf884b82d0c204b816df9bc77271f30691ac4cf918bca34156ce6f1eef7a3c936fdbe56b0bd49302f65ee01bbc5b89d3af
7
+ data.tar.gz: bbd1399069a6142f3b02b42f12137c8d5e71572a6ccc6a387c18c18a204366a0215350f332fa21f70760f0345cb87221887049774f1604ab99cdba3fb34d8143
@@ -1,5 +1,21 @@
1
1
  # Change Log
2
2
 
3
+ ## 9.8.6.4
4
+ * Remove deprecation warnings.
5
+
6
+ ## 9.8.6.3
7
+ * Fix deprecation warning for non-Rails environment.
8
+
9
+ ## 9.8.6.2
10
+ * Print deprecation warning only once.
11
+
12
+ ## 9.8.6.1
13
+ * Improve deprecated warnings.
14
+
15
+ ## 9.8.6
16
+ * Fixed `env` option.
17
+ * Added deprecation warning.
18
+
3
19
  ## 9.8.5
4
20
  * Improved Grid Layout warnings (by Daniel Tonon).
5
21
 
data/README.md CHANGED
@@ -5,17 +5,18 @@
5
5
  title="Autoprefixer logo by Anton Lovchikov">
6
6
 
7
7
  [Autoprefixer] is a tool to parse CSS and add vendor prefixes to CSS rules
8
- using values from the [Can I Use] database. This gem provides Ruby and Ruby on Rails
9
- integration with this JavaScript tool.
8
+ using values from the [Can I Use] database. This gem provides Ruby
9
+ and Ruby on Rails integration with this JavaScript tool.
10
10
 
11
11
  <a href="https://evilmartians.com/?utm_source=autoprefixer-rails">
12
12
  <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54">
13
13
  </a>
14
14
 
15
- [Autoprefixer]: https://github.com/postcss/autoprefixer
16
- [Can I Use]: http://caniuse.com/
17
- [ci-img]: https://travis-ci.org/ai/autoprefixer-rails.svg
18
- [ci]: https://travis-ci.org/ai/autoprefixer-rails
15
+ [Autoprefixer]: https://github.com/postcss/autoprefixer
16
+ [Can I Use]: http://caniuse.com/
17
+ [PostCSS]: https://postcss.org/
18
+ [ci-img]: https://travis-ci.org/ai/autoprefixer-rails.svg
19
+ [ci]: https://travis-ci.org/ai/autoprefixer-rails
19
20
 
20
21
  ## Differences
21
22
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Ruby integration with Autoprefixer JS library, which parse CSS and adds
2
4
  # only actual prefixed
3
5
  module AutoprefixerRails
@@ -6,9 +8,7 @@ module AutoprefixerRails
6
8
  # Add prefixes to `css`. See `Processor#process` for options.
7
9
  def self.process(css, opts = {})
8
10
  params = {}
9
- if opts.key?(:overrideBrowserslist)
10
- params[:overrideBrowserslist] = opts.delete(:overrideBrowserslist)
11
- end
11
+ params[:overrideBrowserslist] = opts.delete(:overrideBrowserslist) if opts.key?(:overrideBrowserslist)
12
12
  params[:browsers] = opts.delete(:browsers) if opts.key?(:browsers)
13
13
  params[:cascade] = opts.delete(:cascade) if opts.key?(:cascade)
14
14
  params[:remove] = opts.delete(:remove) if opts.key?(:remove)
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "pathname"
2
4
  require "execjs"
3
5
  require "json"
4
6
 
5
- IS_SECTION = /^\s*\[(.+)\]\s*$/
7
+ IS_SECTION = /^\s*\[(.+)\]\s*$/.freeze
6
8
 
7
9
  module AutoprefixerRails
8
10
  # Ruby to JS wrapper for Autoprefixer processor instance
@@ -20,23 +22,18 @@ module AutoprefixerRails
20
22
  def process(css, opts = {})
21
23
  opts = convert_options(opts)
22
24
 
23
- apply_wrapper =
24
- "(function(opts, pluginOpts) {" \
25
- "return eval(process.apply(this, opts, pluginOpts));" \
26
- "})"
27
-
28
25
  plugin_opts = params_with_browsers(opts[:from]).merge(opts)
29
26
  process_opts = {
30
27
  from: plugin_opts.delete(:from),
31
28
  to: plugin_opts.delete(:to),
32
- map: plugin_opts.delete(:map),
29
+ map: plugin_opts.delete(:map)
33
30
  }
34
31
 
35
32
  begin
36
- result = runtime.call(apply_wrapper, [css, process_opts, plugin_opts])
33
+ result = runtime.call("autoprefixer.process", css, process_opts, plugin_opts)
37
34
  rescue ExecJS::ProgramError => e
38
35
  contry_error = "BrowserslistError: " \
39
- "Country statistics is not supported " \
36
+ "Country statistics are not supported " \
40
37
  "in client-side build of Browserslist"
41
38
  if e.message == contry_error
42
39
  raise "Country statistics is not supported in AutoprefixerRails. " \
@@ -51,18 +48,18 @@ module AutoprefixerRails
51
48
 
52
49
  # Return, which browsers and prefixes will be used
53
50
  def info
54
- runtime.eval("autoprefixer(#{js_params}).info()")
51
+ runtime.call("autoprefixer.info", params_with_browsers)
55
52
  end
56
53
 
57
54
  # Parse Browserslist config
58
55
  def parse_config(config)
59
- sections = {"defaults" => []}
56
+ sections = { "defaults" => [] }
60
57
  current = "defaults"
61
58
  config.gsub(/#[^\n]*/, "")
62
- .split(/\n/)
63
- .map(&:strip)
64
- .reject(&:empty?)
65
- .each do |line|
59
+ .split(/\n/)
60
+ .map(&:strip)
61
+ .reject(&:empty?)
62
+ .each do |line|
66
63
  if IS_SECTION =~ line
67
64
  current = line.match(IS_SECTION)[1].strip
68
65
  sections[current] ||= []
@@ -77,10 +74,10 @@ module AutoprefixerRails
77
74
 
78
75
  def params_with_browsers(from = nil)
79
76
  from ||= if defined?(Rails) && Rails.respond_to?(:root) && Rails.root
80
- Rails.root.join("app/assets/stylesheets").to_s
81
- else
82
- "."
83
- end
77
+ Rails.root.join("app/assets/stylesheets").to_s
78
+ else
79
+ "."
80
+ end
84
81
 
85
82
  params = @params
86
83
  if !params.key?(:browsers) && !params.key?(:overrideBrowserslist) && from
@@ -96,13 +93,6 @@ module AutoprefixerRails
96
93
  params
97
94
  end
98
95
 
99
- # Convert params to JS string and add browsers from Browserslist config
100
- def js_params
101
- "{ " +
102
- params_with_browsers.map { |k, v| "#{k}: #{v.inspect}"}.join(", ") +
103
- " }"
104
- end
105
-
106
96
  # Convert ruby_options to jsOptions
107
97
  def convert_options(opts)
108
98
  converted = {}
@@ -152,43 +142,17 @@ module AutoprefixerRails
152
142
  if ExecJS.runtime == ExecJS::Runtimes::Node
153
143
  version = ExecJS.runtime.eval("process.version")
154
144
  first = version.match(/^v(\d+)/)[1].to_i
155
- if first < 6
156
- raise "Autoprefixer doesn’t support Node #{version}. Update it."
157
- end
145
+ raise "Autoprefixer doesn’t support Node #{version}. Update it." if first < 6
158
146
  end
159
147
 
160
148
  ExecJS.compile(build_js)
161
149
  end
162
150
  end
163
151
 
164
- # Cache autoprefixer.js content
165
- def read_js
166
- @@js ||= begin
167
- root = Pathname(File.dirname(__FILE__))
168
- path = root.join("../../vendor/autoprefixer.js")
169
- path.read
170
- end
171
- end
172
-
173
- # Return processor JS with some extra methods
174
152
  def build_js
175
- "var global = this;" + read_js + process_proxy
176
- end
177
-
178
- # Return JS code for process method proxy
179
- def process_proxy
180
- <<-JS
181
- var processor;
182
- var process = function() {
183
- var result = autoprefixer.process.apply(autoprefixer, arguments);
184
- var warns = result.warnings().map(function (i) {
185
- delete i.plugin;
186
- return i.toString();
187
- });
188
- var map = result.map ? result.map.toString() : null;
189
- return { css: result.css, map: map, warnings: warns };
190
- };
191
- JS
153
+ root = Pathname(File.dirname(__FILE__))
154
+ path = root.join("../../vendor/autoprefixer.js")
155
+ path.read
192
156
  end
193
157
  end
194
158
  end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "yaml"
2
4
 
3
5
  begin
4
6
  module AutoprefixedRails
5
- class Railtie < ::Rails::Railtie
7
+ class Railtie < ::Rails::Railtie # :nodoc:
6
8
  rake_tasks do |app|
7
9
  require "rake/autoprefixer_tasks"
8
10
  Rake::AutoprefixerTasks.new(config) if defined? app.assets
@@ -14,9 +16,7 @@ begin
14
16
  end
15
17
  else
16
18
  initializer :setup_autoprefixer, group: :all do |app|
17
- if defined?(app.assets) && !app.assets.nil?
18
- AutoprefixerRails.install(app.assets, config)
19
- end
19
+ AutoprefixerRails.install(app.assets, config) if defined?(app.assets) && !app.assets.nil?
20
20
  end
21
21
  end
22
22
 
@@ -27,13 +27,14 @@ begin
27
27
  roots.each do |root|
28
28
  file = File.join(root, "config/autoprefixer.yml")
29
29
 
30
- if File.exist?(file)
31
- parsed = ::YAML.load_file(file)
32
- next unless parsed
33
- params = parsed
30
+ next unless File.exist?(file)
31
+
32
+ parsed = ::YAML.load_file(file)
33
+ next unless parsed
34
+
35
+ params = parsed
34
36
 
35
- break
36
- end
37
+ break
37
38
  end
38
39
 
39
40
  params = params.symbolize_keys
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AutoprefixerRails
2
4
  # Container of prefixed CSS and source map with changes
3
5
  class Result
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "pathname"
2
4
 
3
5
  module AutoprefixerRails
@@ -30,10 +32,10 @@ module AutoprefixerRails
30
32
  def self.install(env)
31
33
  if ::Sprockets::VERSION.to_f < 4
32
34
  env.register_postprocessor("text/css",
33
- ::AutoprefixerRails::Sprockets)
35
+ ::AutoprefixerRails::Sprockets)
34
36
  else
35
37
  env.register_bundle_processor("text/css",
36
- ::AutoprefixerRails::Sprockets)
38
+ ::AutoprefixerRails::Sprockets)
37
39
  end
38
40
  end
39
41
 
@@ -41,10 +43,10 @@ module AutoprefixerRails
41
43
  def self.uninstall(env)
42
44
  if ::Sprockets::VERSION.to_f < 4
43
45
  env.unregister_postprocessor("text/css",
44
- ::AutoprefixerRails::Sprockets)
46
+ ::AutoprefixerRails::Sprockets)
45
47
  else
46
48
  env.unregister_bundle_processor("text/css",
47
- ::AutoprefixerRails::Sprockets)
49
+ ::AutoprefixerRails::Sprockets)
48
50
  end
49
51
  end
50
52
 
@@ -1,3 +1,5 @@
1
- module AutoprefixerRails
2
- VERSION = "9.8.5".freeze unless defined? AutoprefixerRails::VERSION
1
+ # frozen_string_literal: true
2
+
3
+ module AutoprefixerRails # :nodoc:
4
+ VERSION = "9.8.6.4" unless defined? AutoprefixerRails::VERSION
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rake"
2
4
  require "rake/tasklib"
3
5
  require "autoprefixer-rails"
@@ -1,2 +1,4 @@
1
- require File.expand_path("../config/application", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("config/application", __dir__)
2
4
  App::Application.load_tasks
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ApplicationController < ActionController::Base
2
4
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class CssController < ApplicationController
2
4
  def test
3
5
  file = params[:exact_file] || params[:file] + ".css"
@@ -1,2 +1,4 @@
1
- require ::File.expand_path("../config/environment", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("config/environment", __dir__)
2
4
  run App::Application
@@ -1,11 +1,11 @@
1
- require File.expand_path("../boot", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("boot", __dir__)
2
4
 
3
5
  require "action_controller/railtie"
4
6
  require "sprockets/railtie"
5
7
 
6
- if defined?(Bundler)
7
- Bundler.require(*Rails.groups(assets: %w[development test]))
8
- end
8
+ Bundler.require(*Rails.groups(assets: %w[development test])) if defined?(Bundler)
9
9
 
10
10
  module App
11
11
  class Application < Rails::Application
@@ -1,2 +1,4 @@
1
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../Gemfile", __dir__)
2
4
  require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "tzinfo"
2
- require File.expand_path("../application", __FILE__)
4
+ require File.expand_path("application", __dir__)
3
5
  App::Application.initialize!
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  App::Application.configure do
2
4
  config.cache_classes = true
3
5
  config.eager_load = false
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  App::Application.config.secret_key_base = "test"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  App::Application.routes.draw do
2
4
  root to: "css#test"
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "spec_helper"
2
4
 
3
5
  describe AutoprefixerRails do
@@ -42,26 +44,26 @@ describe AutoprefixerRails do
42
44
  end
43
45
 
44
46
  it "generates separated source map" do
45
- result = AutoprefixerRails.process(@css, map: {inline: false})
47
+ result = AutoprefixerRails.process(@css, map: { inline: false })
46
48
  expect(result.map).to be_a(String)
47
49
  end
48
50
 
49
51
  it "uses file name in syntax errors", not_jruby: true do
50
- expect {
52
+ expect do
51
53
  AutoprefixerRails.process("a {", from: "a.css")
52
- }.to raise_error(/a.css:/)
54
+ end.to raise_error(/a.css:/)
53
55
  end
54
56
 
55
57
  it "includes sourcesContent by default" do
56
- map = AutoprefixerRails.process("a{}", map: {inline: false}).map
58
+ map = AutoprefixerRails.process("a{}", map: { inline: false }).map
57
59
  expect(map).to include("sourcesContent")
58
60
  end
59
61
 
60
62
  it "maps options from Ruby style" do
61
63
  map = AutoprefixerRails.process("a{}", map: {
62
- sources_content: false,
63
- inline: false,
64
- }).map
64
+ sources_content: false,
65
+ inline: false
66
+ }).map
65
67
 
66
68
  expect(map).not_to include("sourcesContent")
67
69
  end
@@ -86,9 +88,9 @@ describe AutoprefixerRails do
86
88
  end
87
89
 
88
90
  it "shows correct error on country statistics" do
89
- expect {
91
+ expect do
90
92
  AutoprefixerRails.process("", overrideBrowserslist: "> 1% in US")
91
- }.to raise_error(/Use Autoprefixer with webpack/)
93
+ end.to raise_error(/Use Autoprefixer with webpack/)
92
94
  end
93
95
 
94
96
  context "Sprockets" do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "spec_helper"
2
4
 
3
5
  describe AutoprefixerRails::Processor do
@@ -5,9 +7,9 @@ describe AutoprefixerRails::Processor do
5
7
  config = "# Comment\n ie 11\n \nie 8 # sorry\n[test ]\nios 8"
6
8
  processor = AutoprefixerRails::Processor.new
7
9
  expect(processor.parse_config(config)).to eql({
8
- "defaults" => ["ie 11", "ie 8"],
9
- "test" => ["ios 8"],
10
- })
10
+ "defaults" => ["ie 11", "ie 8"],
11
+ "test" => ["ios 8"]
12
+ })
11
13
  end
12
14
 
13
15
  context "without Rails" do
@@ -17,9 +19,9 @@ describe AutoprefixerRails::Processor do
17
19
 
18
20
  it "doesn't raise error during processing" do
19
21
  processor = AutoprefixerRails::Processor.new
20
- expect {
22
+ expect do
21
23
  processor.process("")
22
- }.not_to raise_error
24
+ end.not_to raise_error
23
25
  end
24
26
  end
25
27
  end