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 +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +7 -6
- data/lib/autoprefixer-rails.rb +3 -3
- data/lib/autoprefixer-rails/processor.rb +20 -56
- 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 +19047 -67005
- metadata +58 -12
- 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: 1c62892692c2f07e5540401e9c50e334a459077a0ed6a992d7eacbe2c2d1878e
|
4
|
+
data.tar.gz: 70eb5e668e43435c65a78c4288476634eaf73167ca87da7f5cab93dbb39817d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7502d48faf64d234f680ed4ef7aca5cf884b82d0c204b816df9bc77271f30691ac4cf918bca34156ce6f1eef7a3c936fdbe56b0bd49302f65ee01bbc5b89d3af
|
7
|
+
data.tar.gz: bbd1399069a6142f3b02b42f12137c8d5e71572a6ccc6a387c18c18a204366a0215350f332fa21f70760f0345cb87221887049774f1604ab99cdba3fb34d8143
|
data/CHANGELOG.md
CHANGED
@@ -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
|
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]:
|
16
|
-
[Can I Use]:
|
17
|
-
[
|
18
|
-
[ci]:
|
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
|
|
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)
|
@@ -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(
|
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
|
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.
|
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
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
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
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
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
|
-
|
176
|
-
|
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
|
-
|
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
|