sass-media_query_combiner 0.0.6 → 0.0.7
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 +6 -14
- data/README.md +3 -1
- data/lib/sass-media_query_combiner.rb +10 -0
- data/lib/sass/media_query_combiner/combiner.rb +14 -1
- data/lib/sass/media_query_combiner/version.rb +1 -1
- data/spec/sass-media_query_combiner_spec.rb +33 -1
- metadata +18 -18
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
ODk2NjA4NDNkZjBmZDM2ODkwMDFiMDk0MjIxMjFmYjEzMTkwYWFhNzlkNzBk
|
10
|
-
NThmZTZmZmU1MDFjM2U5NTk1NGZiNzIwYWYwZDNhZDQ5NGE2NTEyYmU3Y2Vj
|
11
|
-
OTM0MjIxNTczMGZhNDViNmMxMTcxY2QwN2E5MmI3ZDczNDdlNWQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MjdmNjk0YjIyNTcyYzk1NjNjYmM4OTg4YTZiZTJiMTVmMzY0NGJjZTE2Mjkz
|
14
|
-
MThlNGI3NTBlYTIxZTBjMTdlMGQ4ODI1MzY5NzhjNmVhMDg3N2Y3MTI3NTdi
|
15
|
-
ZDE2OWRjNzMzZDlhMmUyODAxZGQzYzA3NWJlMjZkNGJlZDQ1MDQ=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d5336fadd067874f1617a9f8a5b9c97c89a94598
|
4
|
+
data.tar.gz: 2a970c01aab4299566178ae0a9008b2345238336
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fe173a3c9733d7615eee0b887e089b635e9c4912cf4399b6553282d7ddd183d481c1f8b607d0cff8362d3b63cbfbcfe8a07abdd34eaf697a6abc1ce27e8cafba
|
7
|
+
data.tar.gz: f0b1075b9dddfcbf64c93777aec6e6aa40e86cdd14101f652eb9a11833d391460b969a3baeec1f8d1881c4523517c90c75adfc64e905df62d7fbc19aeb530318
|
data/README.md
CHANGED
@@ -8,7 +8,9 @@
|
|
8
8
|
Combines all matching media queries while compiling your Sass.
|
9
9
|
|
10
10
|
If you're using
|
11
|
-
Rails 3.1+ or Sprockets, you should use [sprockets-media_query_combiner](https://github.com/aaronjensen/sprockets-media_query_combiner)
|
11
|
+
Rails 3.1+ or Sprockets, you should use [sprockets-media_query_combiner](https://github.com/aaronjensen/sprockets-media_query_combiner).
|
12
|
+
|
13
|
+
For node pipelines try [node-css-mqpacker](https://github.com/hail2u/node-css-mqpacker).
|
12
14
|
|
13
15
|
For example:
|
14
16
|
|
@@ -9,4 +9,14 @@ Sass::Engine.class_eval do
|
|
9
9
|
alias_method :render_without_combine, :render
|
10
10
|
alias_method :render, :render_with_combine
|
11
11
|
alias_method :to_css, :render_with_combine
|
12
|
+
|
13
|
+
def render_with_sourcemap_with_combine(*args)
|
14
|
+
rendered, sourcemap = render_with_sourcemap_without_combine(*args)
|
15
|
+
|
16
|
+
rendered = Sass::MediaQueryCombiner::Combiner.combine(rendered)
|
17
|
+
|
18
|
+
return rendered, sourcemap
|
19
|
+
end
|
20
|
+
alias_method :render_with_sourcemap_without_combine, :render_with_sourcemap
|
21
|
+
alias_method :render_with_sourcemap, :render_with_sourcemap_with_combine
|
12
22
|
end
|
@@ -5,6 +5,8 @@ module Sass
|
|
5
5
|
queries = Hash.new { |hash, key| hash[key] = '' }
|
6
6
|
pretty = true
|
7
7
|
|
8
|
+
css, source_map_url = extract_source_map_url(css)
|
9
|
+
|
8
10
|
filtered_data = css.gsub(/
|
9
11
|
\n? # Optional newline
|
10
12
|
(?<query> # The media query parameters, this will be $1
|
@@ -32,7 +34,18 @@ module Sass
|
|
32
34
|
|
33
35
|
combined = queries.map { |query, body| "#{query}{#{body}}" }.
|
34
36
|
join(("\n\n" if pretty))
|
35
|
-
"#{filtered_data}#{"\n" if pretty}#{combined}\n"
|
37
|
+
"#{filtered_data}#{"\n" if pretty}#{combined}#{source_map_url}\n"
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.extract_source_map_url(css)
|
41
|
+
source_map_url = ''
|
42
|
+
|
43
|
+
css = css.gsub(/\n*\/\*# sourceMappingURL=.* \*\/$/m) do |match|
|
44
|
+
source_map_url = match
|
45
|
+
''
|
46
|
+
end
|
47
|
+
|
48
|
+
return css, source_map_url
|
36
49
|
end
|
37
50
|
end
|
38
51
|
end
|
@@ -22,10 +22,37 @@ b
|
|
22
22
|
color: yellow
|
23
23
|
SASS
|
24
24
|
|
25
|
+
|
25
26
|
it "should work with sass" do
|
26
27
|
# NOTE: the weird interpolated space in there is required to match.
|
27
28
|
# My editor strips out trailing whitespace, so that's how I get it to stay.
|
28
|
-
|
29
|
+
expected_output = <<CSS
|
30
|
+
h3 {
|
31
|
+
color: orange; }
|
32
|
+
b {
|
33
|
+
color: yellow; }
|
34
|
+
|
35
|
+
@media (max-width: 480px) {
|
36
|
+
h1 {
|
37
|
+
color: red; }#{" "}
|
38
|
+
h2 {
|
39
|
+
color: blue; } }
|
40
|
+
|
41
|
+
@media (max-width: 980px) {
|
42
|
+
h4 {
|
43
|
+
color: black; } }
|
44
|
+
CSS
|
45
|
+
|
46
|
+
Sass::Engine.new(sass).render.should == expected_output
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should work with sourcemaps" do
|
50
|
+
options = {
|
51
|
+
filename: "out.css",
|
52
|
+
sourcemap_filename: "out.css.map"
|
53
|
+
}
|
54
|
+
|
55
|
+
expected_output = <<CSS
|
29
56
|
h3 {
|
30
57
|
color: orange; }
|
31
58
|
b {
|
@@ -40,7 +67,12 @@ b {
|
|
40
67
|
@media (max-width: 980px) {
|
41
68
|
h4 {
|
42
69
|
color: black; } }
|
70
|
+
|
71
|
+
/*# sourceMappingURL=out.css.map */
|
43
72
|
CSS
|
73
|
+
|
74
|
+
output, _ = Sass::Engine.new(sass, options).render_with_sourcemap("out.css.map")
|
75
|
+
output.should == expected_output
|
44
76
|
end
|
45
77
|
|
46
78
|
it "should work with debug_info: true" do
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sass-media_query_combiner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Jensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sass
|
15
|
-
prerelease: false
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
16
|
requirements:
|
18
|
-
- -
|
17
|
+
- - ">="
|
19
18
|
- !ruby/object:Gem::Version
|
20
19
|
version: 3.2.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
21
22
|
version_requirements: !ruby/object:Gem::Requirement
|
22
23
|
requirements:
|
23
|
-
- -
|
24
|
+
- - ">="
|
24
25
|
- !ruby/object:Gem::Version
|
25
26
|
version: 3.2.0
|
26
|
-
type: :runtime
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
|
-
prerelease: false
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
31
30
|
requirements:
|
32
|
-
- -
|
31
|
+
- - ">="
|
33
32
|
- !ruby/object:Gem::Version
|
34
33
|
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
35
36
|
version_requirements: !ruby/object:Gem::Requirement
|
36
37
|
requirements:
|
37
|
-
- -
|
38
|
+
- - ">="
|
38
39
|
- !ruby/object:Gem::Version
|
39
40
|
version: '0'
|
40
|
-
type: :development
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
|
-
prerelease: false
|
44
43
|
requirement: !ruby/object:Gem::Requirement
|
45
44
|
requirements:
|
46
|
-
- -
|
45
|
+
- - ">="
|
47
46
|
- !ruby/object:Gem::Version
|
48
47
|
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
49
50
|
version_requirements: !ruby/object:Gem::Requirement
|
50
51
|
requirements:
|
51
|
-
- -
|
52
|
+
- - ">="
|
52
53
|
- !ruby/object:Gem::Version
|
53
54
|
version: '0'
|
54
|
-
type: :development
|
55
55
|
description: Automatically combine media queries
|
56
56
|
email:
|
57
57
|
- aaronjensen@gmail.com
|
@@ -59,7 +59,7 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- .gitignore
|
62
|
+
- ".gitignore"
|
63
63
|
- CHANGELOG.md
|
64
64
|
- Gemfile
|
65
65
|
- LICENSE.txt
|
@@ -82,17 +82,17 @@ require_paths:
|
|
82
82
|
- lib
|
83
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- -
|
85
|
+
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: 1.9.2
|
88
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- -
|
90
|
+
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: '0'
|
93
93
|
requirements: []
|
94
94
|
rubyforge_project:
|
95
|
-
rubygems_version: 2.
|
95
|
+
rubygems_version: 2.2.2
|
96
96
|
signing_key:
|
97
97
|
specification_version: 4
|
98
98
|
summary: Sass plugin to combine all like media queries
|