r2 0.2.2 → 0.2.3
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/.travis.yml +0 -4
- data/README.md +3 -0
- data/lib/r2.rb +22 -4
- data/lib/r2/version.rb +1 -1
- data/r2.gemspec +1 -1
- data/spec/r2_spec.rb +17 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 993216b45cc4bad2255bc31184ca50bbd73dc8bf
|
4
|
+
data.tar.gz: 8f13aebd5b0081c7f08e796654a67c54cb6ecb14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 553d29ee6461fb312f7e93cfee40a8707eefd96db4744041a4073e8d50be25781aea42c332313246c66ec1b23696ddf545965c9959ff88eb53d84a15b919ccaf
|
7
|
+
data.tar.gz: 0638da0e1140f27b7b330575d038603007c15f865309b538d5543b8572e6bb610e2f747c7248fc058645c5c45e17255b4b6914920fb8a498733604911a39b643
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -23,6 +23,9 @@ Report bugs in the github project at http://github.com/mzsanford/r2rb
|
|
23
23
|
|
24
24
|
## Change Log
|
25
25
|
|
26
|
+
* v0.2.3 - Handle `url()` properties better
|
27
|
+
* [BUG] - Handle `url()` with embedded semi-colons (like escaped SVG)
|
28
|
+
* [CHANGE] - Remove Travis tests for Ruby 1.8 because Travis adds a `celluloid` dependency that does not work before Ruby 1.9.3
|
26
29
|
* v0.2.2 – CSS3 `box-shadow` fix continues
|
27
30
|
* [BUG] Correctly handle `box-shadow` declarations that define multiple shadows (fix from [@wazeHQ](https://github.com/wazeHQ))
|
28
31
|
* [FEATURE] Make the `r2` command line tool convert CSS provided via `stdin` or a file (previously it was a no-op)
|
data/lib/r2.rb
CHANGED
@@ -70,14 +70,32 @@ module R2
|
|
70
70
|
css = minimize(original_css)
|
71
71
|
|
72
72
|
result = css.gsub(/([^\{\}]+[^\}]|[\}])+?/) do |rule|
|
73
|
+
# +rule+ can represent a selector (".foo {"), the closing "}" for a selector, or the complete
|
74
|
+
# body of a a selector
|
73
75
|
if rule.match(/[\{\}]/)
|
74
|
-
#it is a selector with "{" or a closing "}", insert as it is
|
76
|
+
# it is a selector with "{" or a closing "}", insert as it is. This is
|
77
|
+
# things like ".foo {" and its matching "}"
|
75
78
|
rule_str = rule
|
76
79
|
else
|
77
|
-
#It is a
|
80
|
+
# It is a declaration body, like "padding-left:4px;margin-left:5px;"
|
78
81
|
rule_str = ""
|
79
|
-
|
80
|
-
|
82
|
+
# Split up the individual rules in the body and process each swap. To handle the
|
83
|
+
# possible ";" in the url() definitions, like
|
84
|
+
# url("data;base64") and url("data:image/svg+xml;charset=...")
|
85
|
+
# a state machine is constructed.
|
86
|
+
url_rule = nil
|
87
|
+
rule.split(/;/).each do |part|
|
88
|
+
if part.match(/url\(/)
|
89
|
+
url_rule = part
|
90
|
+
elsif url_rule != nil
|
91
|
+
url_rule << ";" + part
|
92
|
+
if part.match(/\)$/)
|
93
|
+
rule_str << declaration_swap(url_rule)
|
94
|
+
url_rule = nil
|
95
|
+
end
|
96
|
+
else
|
97
|
+
rule_str << declaration_swap(part)
|
98
|
+
end
|
81
99
|
end
|
82
100
|
end
|
83
101
|
rule_str
|
data/lib/r2/version.rb
CHANGED
data/r2.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.authors = ["Matt Sanford"]
|
10
10
|
s.email = ["matt@twitter.com"]
|
11
|
-
s.homepage = ""
|
11
|
+
s.homepage = "https://github.com/mzsanford/R2rb"
|
12
12
|
s.summary = %q{CSS flipper for right-to-left processing}
|
13
13
|
s.description = %q{CSS flipper for right-to-left processing. A Ruby port of https://github.com/ded/r2}
|
14
14
|
|
data/spec/r2_spec.rb
CHANGED
@@ -39,6 +39,23 @@ describe R2::Swapper do
|
|
39
39
|
|
40
40
|
flipped_css.should == expected_result
|
41
41
|
end
|
42
|
+
|
43
|
+
it "handles SVG background-image declarations" do
|
44
|
+
escaped_xml = "%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enable-background%3Anew%200%200%2014%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20style%3D%22fill%3A%23FFFFFF%3B%22%20d%3D%22M9%2C5v3l5-4L9%2C0v3c0%2C0-5%2C0-5%2C7C6%2C5%2C9%2C5%2C9%2C5z%20M11%2C12H2V5h1l2-2H0v11h13V7l-2%2C2V12z%22%2F%3E%3C%2Fsvg%3E"
|
45
|
+
css = <<-EOS
|
46
|
+
.ui-icon-action:after {
|
47
|
+
display: block;
|
48
|
+
background-image: url("data:image/svg+xml;charset=ISO-8859-1,#{escaped_xml}");
|
49
|
+
text-align: left;
|
50
|
+
}
|
51
|
+
EOS
|
52
|
+
|
53
|
+
expected_result = ".ui-icon-action:after{display:block;background-image:url(\"data:image/svg+xml;charset=ISO-8859-1,#{escaped_xml}\");text-align:right;}"
|
54
|
+
|
55
|
+
flipped_css = r2.r2(css)
|
56
|
+
|
57
|
+
flipped_css.should == expected_result
|
58
|
+
end
|
42
59
|
end
|
43
60
|
|
44
61
|
describe "#declaration_swap" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Sanford
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -59,7 +59,7 @@ files:
|
|
59
59
|
- lib/r2/version.rb
|
60
60
|
- r2.gemspec
|
61
61
|
- spec/r2_spec.rb
|
62
|
-
homepage:
|
62
|
+
homepage: https://github.com/mzsanford/R2rb
|
63
63
|
licenses: []
|
64
64
|
metadata: {}
|
65
65
|
post_install_message:
|