r2 0.0.1 → 0.0.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.
- data/README.md +1 -1
- data/lib/r2.rb +17 -2
- data/lib/r2/version.rb +1 -1
- data/r2.gemspec +1 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -19,7 +19,7 @@ Report bugs in the github project at http://github.com/mzsanford/r2rb
|
|
19
19
|
|
20
20
|
== Copyright and License ==
|
21
21
|
|
22
|
-
Copyright 2011 Twitter, Inc.
|
22
|
+
Copyright 2011 Twitter, Inc.
|
23
23
|
|
24
24
|
Licensed under the Apache License, Version 2.0 (the "License");
|
25
25
|
you may not use this work except in compliance with the License.
|
data/lib/r2.rb
CHANGED
@@ -1,9 +1,18 @@
|
|
1
|
+
# Change the directionality of a block of CSS code from right-to-left to left-to-right. This includes not only
|
2
|
+
# altering the <tt>direction</tt> attribute but also altering the 4-argument version of things like <tt>padding</tt>
|
3
|
+
# to correctly reflect the change. CSS is also minified, in part to make the processing easier.
|
4
|
+
#
|
5
|
+
# Author:: Matt Sanford (mailto:matt@twitter.com)
|
6
|
+
# Copyright:: Copyright (c) 2011 Twitter, Inc.
|
7
|
+
# License:: Licensed under the Apache License, Version 2.0
|
1
8
|
module R2
|
2
9
|
|
10
|
+
# Short cut method for providing a one-time CSS change
|
3
11
|
def self.r2(css)
|
4
12
|
::R2::Swapper.new.r2(css)
|
5
13
|
end
|
6
14
|
|
15
|
+
# Reuable class for CSS alterations
|
7
16
|
class Swapper
|
8
17
|
PROPERTY_MAP = {
|
9
18
|
'margin-left' => 'margin-right',
|
@@ -35,8 +44,7 @@ module R2
|
|
35
44
|
'direction' => lambda {|obj,val| obj.direction_swap(val) }
|
36
45
|
}
|
37
46
|
|
38
|
-
|
39
|
-
|
47
|
+
# Given a String of CSS perform the full directionality change
|
40
48
|
def r2(original_css)
|
41
49
|
css = minimize(original_css)
|
42
50
|
|
@@ -57,6 +65,7 @@ module R2
|
|
57
65
|
return result
|
58
66
|
end
|
59
67
|
|
68
|
+
# Minimize the provided CSS by removing comments, and extra specs
|
60
69
|
def minimize(css)
|
61
70
|
return '' unless css
|
62
71
|
|
@@ -66,6 +75,7 @@ module R2
|
|
66
75
|
gsub(/\s+/, ' ') # replace multiple spaces with single spaces
|
67
76
|
end
|
68
77
|
|
78
|
+
# Given a single CSS declaration rule (e.g. <tt>padding-left: 4px</tt>) return the opposing rule (so, <tt>padding-right:4px;</tt> in this example)
|
69
79
|
def declartion_swap(decl)
|
70
80
|
return '' unless decl
|
71
81
|
|
@@ -81,6 +91,7 @@ module R2
|
|
81
91
|
return property + ':' + value + ';'
|
82
92
|
end
|
83
93
|
|
94
|
+
# Given a value of <tt>rtl</tt> or <tt>ltr</tt> return the opposing value. All other arguments are ignored and returned unmolested.
|
84
95
|
def direction_swap(val)
|
85
96
|
if val == "rtl"
|
86
97
|
"ltr"
|
@@ -91,6 +102,7 @@ module R2
|
|
91
102
|
end
|
92
103
|
end
|
93
104
|
|
105
|
+
# Given a value of <tt>right</tt> or <tt>left</tt> return the opposing value. All other arguments are ignored and returned unmolested.
|
94
106
|
def side_swap(val)
|
95
107
|
if val == "right"
|
96
108
|
"left"
|
@@ -101,6 +113,9 @@ module R2
|
|
101
113
|
end
|
102
114
|
end
|
103
115
|
|
116
|
+
# Given a 4-argument CSS declaration value (like that of <tt>padding</tt> or <tt>margin</tt>) return the opposing
|
117
|
+
# value. The opposing value swaps the left and right but not the top or bottom. Any unrecognized argument is returned
|
118
|
+
# unmolested (for example, 2-argument values)
|
104
119
|
def quad_swap(val)
|
105
120
|
# 1px 2px 3px 4px => 1px 4px 3px 2px
|
106
121
|
points = val.to_s.split(/\s+/)
|
data/lib/r2/version.rb
CHANGED
data/r2.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = ["matt@twitter.com"]
|
11
11
|
s.homepage = ""
|
12
12
|
s.summary = %q{CSS flipper for right-to-left processing}
|
13
|
-
s.description = %q{A Ruby port of https://github.com/ded/r2}
|
13
|
+
s.description = %q{CSS flipper for right-to-left processing. A Ruby port of https://github.com/ded/r2}
|
14
14
|
|
15
15
|
s.rubyforge_project = "r2"
|
16
16
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matt Sanford
|
@@ -19,7 +19,7 @@ date: 2011-06-17 00:00:00 -07:00
|
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
22
|
-
description: A Ruby port of https://github.com/ded/r2
|
22
|
+
description: CSS flipper for right-to-left processing. A Ruby port of https://github.com/ded/r2
|
23
23
|
email:
|
24
24
|
- matt@twitter.com
|
25
25
|
executables:
|