r2 0.2.1 → 0.2.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/README.md +3 -0
- data/bin/r2 +8 -0
- data/lib/r2.rb +5 -11
- data/lib/r2/shadow_flipper.rb +33 -0
- data/lib/r2/version.rb +1 -1
- data/spec/r2_spec.rb +8 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5001cd455fb9de572960b0f6ab968888198a5e88
|
4
|
+
data.tar.gz: 3508a64c9e2df1edf3a5656094860f3afd66242c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eaf0fa605bd6b6f03a9181997949618a2567a18bc170e0db71d250b2a7a658ea2e6b613a3d9c050d5da1248bce08f8bd520d36c9e04424e512f30ead4b818c0b
|
7
|
+
data.tar.gz: 2db705161e9d78c836c7e19ce1c9942ecb0e388b19821edc40bce355eee226c5ee4f2f9d8d006277de6f2e9688a21ac7e75875c94aea5c3a8132f51fa261b985
|
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.2 – CSS3 `box-shadow` fix continues
|
27
|
+
* [BUG] Correctly handle `box-shadow` declarations that define multiple shadows (fix from [@wazeHQ](https://github.com/wazeHQ))
|
28
|
+
* [FEATURE] Make the `r2` command line tool convert CSS provided via `stdin` or a file (previously it was a no-op)
|
26
29
|
* v0.2.1 – CSS3 `box-shadow` fix
|
27
30
|
* [BUG] Correctly handle `box-shadow` declarations starting with `inset` (fix from [@wazeHQ](https://github.com/wazeHQ))
|
28
31
|
* v0.2.0 – CSS3 additions
|
data/bin/r2
CHANGED
data/lib/r2.rb
CHANGED
@@ -5,6 +5,9 @@
|
|
5
5
|
# Author:: Matt Sanford (mailto:matt@twitter.com)
|
6
6
|
# Copyright:: Copyright (c) 2011 Twitter, Inc.
|
7
7
|
# License:: Licensed under the Apache License, Version 2.0
|
8
|
+
|
9
|
+
require 'r2/shadow_flipper'
|
10
|
+
|
8
11
|
module R2
|
9
12
|
|
10
13
|
# Short cut method for providing a one-time CSS change
|
@@ -148,19 +151,10 @@ module R2
|
|
148
151
|
# Given the 2-6 variable declaration for box-shadow convert the direction. Conversion requires inverting the
|
149
152
|
# horizontal measure only.
|
150
153
|
def shadow_swap(val)
|
151
|
-
|
152
|
-
|
153
|
-
#move 'inset' to the end
|
154
|
-
args.push(args.shift) if args && args[0] == "inset"
|
155
|
-
|
156
|
-
matched = args && args[0].match(/^([-+]?\d+)(\w*)$/)
|
157
|
-
if matched
|
158
|
-
return (["#{(-1 * matched[1].to_i)}#{matched[2]}"] + args[1..5]).compact.join(' ')
|
159
|
-
else
|
160
|
-
return val
|
161
|
-
end
|
154
|
+
ShadowFlipper::flip(val)
|
162
155
|
end
|
163
156
|
|
157
|
+
|
164
158
|
# Border radius uses top-left, top-right, bottom-left, bottom-right, so all values need to be swapped. Additionally,
|
165
159
|
# two and three value border-radius declarations need to be swapped as well. Vertical radius, specified with a /,
|
166
160
|
# should be left alone.
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module R2
|
2
|
+
module ShadowFlipper
|
3
|
+
def self.flip(val)
|
4
|
+
val = replace_commas_in_parentheses(val)
|
5
|
+
val = val.split(/\s*,\s*/).map { |shadow| single_shadow_swap(shadow) }.join(', ')
|
6
|
+
restore_commas(val)
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def self.replace_commas_in_parentheses(string)
|
12
|
+
string.gsub(/\([^)]*\)/) { |parens| parens.gsub(',', '|||') }
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.restore_commas(string)
|
16
|
+
string.gsub('|||', ',')
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.single_shadow_swap(val)
|
20
|
+
args = val.to_s.split(/\s+/)
|
21
|
+
|
22
|
+
#move 'inset' to the end
|
23
|
+
args.push(args.shift) if args && args[0] == "inset"
|
24
|
+
|
25
|
+
matched = args && args[0].match(/^([-+]?\d+)(\w*)$/)
|
26
|
+
if matched
|
27
|
+
return (["#{(-1 * matched[1].to_i)}#{matched[2]}"] + args[1..5]).compact.join(' ')
|
28
|
+
else
|
29
|
+
return val
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/r2/version.rb
CHANGED
data/spec/r2_spec.rb
CHANGED
@@ -156,6 +156,14 @@ describe R2::Swapper do
|
|
156
156
|
r2.shadow_swap("inset 1px 2px").should == "-1px 2px inset"
|
157
157
|
end
|
158
158
|
|
159
|
+
it "should swap multiple values" do
|
160
|
+
r2.shadow_swap("inset 1px 2px, 1px 2px #000").should == "-1px 2px inset, -1px 2px #000"
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should swap multiple values (with rgba)" do
|
164
|
+
r2.shadow_swap("inset 1px 2px rgba(0,0,0,0.2), 1px 2px #000").should == "-1px 2px rgba(0,0,0,0.2) inset, -1px 2px #000"
|
165
|
+
end
|
166
|
+
|
159
167
|
end
|
160
168
|
|
161
169
|
describe "#border_radius_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.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Sanford
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -55,6 +55,7 @@ files:
|
|
55
55
|
- Rakefile
|
56
56
|
- bin/r2
|
57
57
|
- lib/r2.rb
|
58
|
+
- lib/r2/shadow_flipper.rb
|
58
59
|
- lib/r2/version.rb
|
59
60
|
- r2.gemspec
|
60
61
|
- spec/r2_spec.rb
|