autoprefixer-rails 9.8.3 → 9.8.6.2
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 +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +10 -6
- data/lib/autoprefixer-rails.rb +16 -3
- data/lib/autoprefixer-rails/processor.rb +18 -16
- data/lib/autoprefixer-rails/railtie.rb +11 -10
- data/lib/autoprefixer-rails/result.rb +2 -0
- data/lib/autoprefixer-rails/sprockets.rb +6 -4
- data/lib/autoprefixer-rails/version.rb +4 -2
- data/lib/rake/autoprefixer_tasks.rb +2 -0
- data/spec/app/Rakefile +3 -1
- data/spec/app/app/controllers/application_controller.rb +2 -0
- data/spec/app/app/controllers/css_controller.rb +2 -0
- data/spec/app/config.ru +3 -1
- data/spec/app/config/application.rb +4 -4
- data/spec/app/config/boot.rb +3 -1
- data/spec/app/config/environment.rb +3 -1
- data/spec/app/config/environments/test.rb +2 -0
- data/spec/app/config/initializers/secret_token.rb +2 -0
- data/spec/app/config/routes.rb +2 -0
- data/spec/autoprefixer_spec.rb +11 -9
- data/spec/processor_spec.rb +7 -5
- data/spec/rails_spec.rb +3 -1
- data/spec/railtie_spec.rb +2 -0
- data/spec/spec_helper.rb +4 -2
- data/vendor/autoprefixer.js +16412 -15050
- metadata +61 -13
- data/Rakefile +0 -53
- data/autoprefixer-rails.gemspec +0 -33
- data/spec/app/.browserslistrc +0 -4
- data/spec/app/.gitignore +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ba3f0942a7f5eb8d5a6aa3b97f181373f341b51da51b9492b59fcf8d0200c39
|
4
|
+
data.tar.gz: 94c9475c55a54ca4247ba1def1786da6817df33782900d2d9cb5b986b162c4ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8914a057f4aafea8d3e5d955aa834f3540272653e2010e1e6393f350ea8c637398665366c11105701d9aa40840586de20201185eb1f0927fcf6376f66286ea4c
|
7
|
+
data.tar.gz: b66e90fb6a17ed111685d1ffc7121c764707308fba6404b9b23721d2341ad1aaf1030584a8e50af3c64d225d3a54039d94c3f6c2602bc77ad84a8da6ad0cd287
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 9.8.6.2
|
4
|
+
* Print deprecation warning only once.
|
5
|
+
|
6
|
+
## 9.8.6.1
|
7
|
+
* Improve deprecated warnings.
|
8
|
+
|
9
|
+
## 9.8.6
|
10
|
+
* Fixed `env` option.
|
11
|
+
* Added deprecation warning.
|
12
|
+
|
13
|
+
## 9.8.5
|
14
|
+
* Improved Grid Layout warnings (by Daniel Tonon).
|
15
|
+
|
16
|
+
## 9.8.4
|
17
|
+
* Reduce JS bundle size.
|
18
|
+
|
3
19
|
## 9.8.3
|
4
20
|
* Update Can I Use data.
|
5
21
|
|
data/README.md
CHANGED
@@ -4,18 +4,22 @@
|
|
4
4
|
src="http://postcss.github.io/autoprefixer/logo.svg"
|
5
5
|
title="Autoprefixer logo by Anton Lovchikov">
|
6
6
|
|
7
|
+
**DEPRECATED. [Migration Guide.]**
|
8
|
+
|
7
9
|
[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
|
9
|
-
integration with this JavaScript tool.
|
10
|
+
using values from the [Can I Use] database. This gem provides Ruby
|
11
|
+
and Ruby on Rails integration with this JavaScript tool.
|
10
12
|
|
11
13
|
<a href="https://evilmartians.com/?utm_source=autoprefixer-rails">
|
12
14
|
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54">
|
13
15
|
</a>
|
14
16
|
|
15
|
-
[
|
16
|
-
[
|
17
|
-
[
|
18
|
-
[
|
17
|
+
[Migration Guide.]: https://github.com/ai/autoprefixer-rails/wiki/Deprecated
|
18
|
+
[Autoprefixer]: https://github.com/postcss/autoprefixer
|
19
|
+
[Can I Use]: http://caniuse.com/
|
20
|
+
[PostCSS]: https://postcss.org/
|
21
|
+
[ci-img]: https://travis-ci.org/ai/autoprefixer-rails.svg
|
22
|
+
[ci]: https://travis-ci.org/ai/autoprefixer-rails
|
19
23
|
|
20
24
|
## Differences
|
21
25
|
|
data/lib/autoprefixer-rails.rb
CHANGED
@@ -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)
|
@@ -32,6 +32,19 @@ module AutoprefixerRails
|
|
32
32
|
def self.processor(params = {})
|
33
33
|
Processor.new(params)
|
34
34
|
end
|
35
|
+
|
36
|
+
def self.show_deprecation_message!
|
37
|
+
return unless defined?(ActiveSupport::Deprecation)
|
38
|
+
|
39
|
+
return if defined?(@deprecation_shown)
|
40
|
+
|
41
|
+
ActiveSupport::Deprecation.warn(
|
42
|
+
"autoprefixer-rails was deprected. Migration guide:\n" \
|
43
|
+
"https://github.com/ai/autoprefixer-rails/wiki/Deprecated"
|
44
|
+
)
|
45
|
+
|
46
|
+
@deprecation_shown = true
|
47
|
+
end
|
35
48
|
end
|
36
49
|
|
37
50
|
require_relative "autoprefixer-rails/result"
|
@@ -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
|
@@ -18,6 +20,8 @@ module AutoprefixerRails
|
|
18
20
|
# * `to` with output CSS file name.
|
19
21
|
# * `map` with true to generate new source map or with previous map.
|
20
22
|
def process(css, opts = {})
|
23
|
+
AutoprefixerRails.show_deprecation_message!
|
24
|
+
|
21
25
|
opts = convert_options(opts)
|
22
26
|
|
23
27
|
apply_wrapper =
|
@@ -29,7 +33,7 @@ module AutoprefixerRails
|
|
29
33
|
process_opts = {
|
30
34
|
from: plugin_opts.delete(:from),
|
31
35
|
to: plugin_opts.delete(:to),
|
32
|
-
map: plugin_opts.delete(:map)
|
36
|
+
map: plugin_opts.delete(:map)
|
33
37
|
}
|
34
38
|
|
35
39
|
begin
|
@@ -56,13 +60,13 @@ module AutoprefixerRails
|
|
56
60
|
|
57
61
|
# Parse Browserslist config
|
58
62
|
def parse_config(config)
|
59
|
-
sections = {"defaults" => []}
|
63
|
+
sections = { "defaults" => [] }
|
60
64
|
current = "defaults"
|
61
65
|
config.gsub(/#[^\n]*/, "")
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
+
.split(/\n/)
|
67
|
+
.map(&:strip)
|
68
|
+
.reject(&:empty?)
|
69
|
+
.each do |line|
|
66
70
|
if IS_SECTION =~ line
|
67
71
|
current = line.match(IS_SECTION)[1].strip
|
68
72
|
sections[current] ||= []
|
@@ -77,10 +81,10 @@ module AutoprefixerRails
|
|
77
81
|
|
78
82
|
def params_with_browsers(from = nil)
|
79
83
|
from ||= if defined?(Rails) && Rails.respond_to?(:root) && Rails.root
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
+
Rails.root.join("app/assets/stylesheets").to_s
|
85
|
+
else
|
86
|
+
"."
|
87
|
+
end
|
84
88
|
|
85
89
|
params = @params
|
86
90
|
if !params.key?(:browsers) && !params.key?(:overrideBrowserslist) && from
|
@@ -99,7 +103,7 @@ module AutoprefixerRails
|
|
99
103
|
# Convert params to JS string and add browsers from Browserslist config
|
100
104
|
def js_params
|
101
105
|
"{ " +
|
102
|
-
params_with_browsers.map { |k, v| "#{k}: #{v.inspect}"}.join(", ") +
|
106
|
+
params_with_browsers.map { |k, v| "#{k}: #{v.inspect}" }.join(", ") +
|
103
107
|
" }"
|
104
108
|
end
|
105
109
|
|
@@ -152,9 +156,7 @@ module AutoprefixerRails
|
|
152
156
|
if ExecJS.runtime == ExecJS::Runtimes::Node
|
153
157
|
version = ExecJS.runtime.eval("process.version")
|
154
158
|
first = version.match(/^v(\d+)/)[1].to_i
|
155
|
-
if first < 6
|
156
|
-
raise "Autoprefixer doesn’t support Node #{version}. Update it."
|
157
|
-
end
|
159
|
+
raise "Autoprefixer doesn’t support Node #{version}. Update it." if first < 6
|
158
160
|
end
|
159
161
|
|
160
162
|
ExecJS.compile(build_js)
|
@@ -163,7 +165,7 @@ module AutoprefixerRails
|
|
163
165
|
|
164
166
|
# Cache autoprefixer.js content
|
165
167
|
def read_js
|
166
|
-
|
168
|
+
@read_js ||= begin
|
167
169
|
root = Pathname(File.dirname(__FILE__))
|
168
170
|
path = root.join("../../vendor/autoprefixer.js")
|
169
171
|
path.read
|
@@ -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
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
next unless File.exist?(file)
|
31
|
+
|
32
|
+
parsed = ::YAML.load_file(file)
|
33
|
+
next unless parsed
|
34
|
+
|
35
|
+
params = parsed
|
34
36
|
|
35
|
-
|
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
|
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
|
-
|
35
|
+
::AutoprefixerRails::Sprockets)
|
34
36
|
else
|
35
37
|
env.register_bundle_processor("text/css",
|
36
|
-
|
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
|
-
|
46
|
+
::AutoprefixerRails::Sprockets)
|
45
47
|
else
|
46
48
|
env.unregister_bundle_processor("text/css",
|
47
|
-
|
49
|
+
::AutoprefixerRails::Sprockets)
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
data/spec/app/Rakefile
CHANGED
data/spec/app/config.ru
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
|
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
|
data/spec/app/config/boot.rb
CHANGED
data/spec/app/config/routes.rb
CHANGED
data/spec/autoprefixer_spec.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
63
|
-
|
64
|
-
|
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
|
-
|
93
|
+
end.to raise_error(/Use Autoprefixer with webpack/)
|
92
94
|
end
|
93
95
|
|
94
96
|
context "Sprockets" do
|
data/spec/processor_spec.rb
CHANGED
@@ -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
|
-
|
9
|
-
|
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
|
-
|
24
|
+
end.not_to raise_error
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|