autoprefixer-rails 9.8.5 → 9.8.6.4

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,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