styles 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +22 -0
- data/README.md +725 -0
- data/Rakefile +9 -0
- data/bin/styles +11 -0
- data/lib/styles.rb +18 -0
- data/lib/styles/application.rb +190 -0
- data/lib/styles/colors.rb +289 -0
- data/lib/styles/core_ext.rb +12 -0
- data/lib/styles/engine.rb +73 -0
- data/lib/styles/line.rb +55 -0
- data/lib/styles/properties.rb +34 -0
- data/lib/styles/properties/background_color.rb +15 -0
- data/lib/styles/properties/base.rb +68 -0
- data/lib/styles/properties/border.rb +147 -0
- data/lib/styles/properties/color.rb +16 -0
- data/lib/styles/properties/display.rb +10 -0
- data/lib/styles/properties/font_weight.rb +13 -0
- data/lib/styles/properties/function.rb +7 -0
- data/lib/styles/properties/margin.rb +83 -0
- data/lib/styles/properties/match_background_color.rb +28 -0
- data/lib/styles/properties/match_color.rb +21 -0
- data/lib/styles/properties/match_font_weight.rb +23 -0
- data/lib/styles/properties/match_text_decoration.rb +36 -0
- data/lib/styles/properties/padding.rb +81 -0
- data/lib/styles/properties/text_align.rb +10 -0
- data/lib/styles/properties/text_decoration.rb +20 -0
- data/lib/styles/properties/width.rb +11 -0
- data/lib/styles/rule.rb +67 -0
- data/lib/styles/stylesheet.rb +103 -0
- data/lib/styles/sub_engines.rb +4 -0
- data/lib/styles/sub_engines/base.rb +16 -0
- data/lib/styles/sub_engines/color.rb +115 -0
- data/lib/styles/sub_engines/layout.rb +158 -0
- data/lib/styles/sub_engines/pre_processor.rb +19 -0
- data/lib/styles/version.rb +3 -0
- data/styles.gemspec +26 -0
- data/test/application_test.rb +92 -0
- data/test/colors_test.rb +162 -0
- data/test/engine_test.rb +59 -0
- data/test/integration_test.rb +136 -0
- data/test/line_test.rb +24 -0
- data/test/properties/background_color_test.rb +36 -0
- data/test/properties/base_test.rb +11 -0
- data/test/properties/border_test.rb +154 -0
- data/test/properties/color_test.rb +28 -0
- data/test/properties/display_test.rb +26 -0
- data/test/properties/font_weight_test.rb +24 -0
- data/test/properties/function_test.rb +28 -0
- data/test/properties/margin_test.rb +98 -0
- data/test/properties/match_background_color_test.rb +71 -0
- data/test/properties/match_color_test.rb +79 -0
- data/test/properties/match_font_weight_test.rb +34 -0
- data/test/properties/match_text_decoration_test.rb +38 -0
- data/test/properties/padding_test.rb +87 -0
- data/test/properties/text_align_test.rb +107 -0
- data/test/properties/text_decoration_test.rb +25 -0
- data/test/properties/width_test.rb +41 -0
- data/test/rule_test.rb +39 -0
- data/test/stylesheet_test.rb +245 -0
- data/test/sub_engines/color_test.rb +144 -0
- data/test/sub_engines/layout_test.rb +110 -0
- data/test/test_helper.rb +5 -0
- metadata +184 -0
@@ -0,0 +1,144 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
require 'term/ansicolor'
|
3
|
+
|
4
|
+
class ColorSubEngineTest < MiniTest::Unit::TestCase
|
5
|
+
def test_can_combine_line_properties
|
6
|
+
test_line = 'this line has a certain word in it'
|
7
|
+
color_prop = ::Styles::Properties::Color.new('word', :color, :blue)
|
8
|
+
text_decor_prop = ::Styles::Properties::TextDecoration.new('word', :text_decoration, :underline)
|
9
|
+
font_weight_prop = ::Styles::Properties::FontWeight.new('word', :font_weight, :bold)
|
10
|
+
no_back_color_prop = ::Styles::Properties::BackgroundColor.new('word', :background_color, :none)
|
11
|
+
|
12
|
+
assert_equal "#{color.blue}#{test_line}#{color.reset}", process([color_prop], test_line)
|
13
|
+
|
14
|
+
assert_equal "#{color.blue}#{color.underline}#{test_line}#{color.reset}",
|
15
|
+
process([color_prop, text_decor_prop], test_line)
|
16
|
+
|
17
|
+
assert_equal "#{color.blue}#{color.bold}#{color.underline}#{test_line}#{color.reset}",
|
18
|
+
process([color_prop, text_decor_prop, font_weight_prop], test_line)
|
19
|
+
|
20
|
+
assert_equal "#{color.blue}#{test_line}#{color.reset}",
|
21
|
+
process([color_prop, no_back_color_prop], test_line)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_can_combine_line_and_match_properties
|
25
|
+
test_line = 'this line has a certain word in it'
|
26
|
+
color_prop = ::Styles::Properties::Color.new('word', :color, :blue)
|
27
|
+
bg_color_prop = ::Styles::Properties::BackgroundColor.new('word', :background_color, :blue)
|
28
|
+
string_match_color_prop = ::Styles::Properties::MatchColor.new('word', :match_color, :green)
|
29
|
+
string_match_no_color_prop = ::Styles::Properties::MatchColor.new('word', :match_color, :none)
|
30
|
+
regex_match_color_prop = ::Styles::Properties::MatchColor.new(/word/, :match_color, :green)
|
31
|
+
regex_match_no_color_prop = ::Styles::Properties::MatchColor.new(/word/, :match_color, :none)
|
32
|
+
|
33
|
+
assert_equal "#{color.blue}this line has a certain #{color.green}word#{color.blue} in it#{color.reset}",
|
34
|
+
process([color_prop, string_match_color_prop], test_line)
|
35
|
+
assert_equal "#{color.blue}this line has a certain #{color.green}word#{color.blue} in it#{color.reset}",
|
36
|
+
process([color_prop, regex_match_color_prop], test_line)
|
37
|
+
|
38
|
+
assert_equal "#{color.on_blue}this line has a certain #{color.green}word#{color.reset}#{color.on_blue} in it#{color.reset}",
|
39
|
+
process([bg_color_prop, string_match_color_prop], test_line)
|
40
|
+
assert_equal "#{color.on_blue}this line has a certain #{color.green}word#{color.reset}#{color.on_blue} in it#{color.reset}",
|
41
|
+
process([bg_color_prop, regex_match_color_prop], test_line)
|
42
|
+
|
43
|
+
assert_equal "#{color.blue}this line has a certain #{color.reset}word#{color.blue} in it#{color.reset}",
|
44
|
+
process([color_prop, string_match_no_color_prop], test_line)
|
45
|
+
assert_equal "#{color.blue}this line has a certain #{color.reset}word#{color.blue} in it#{color.reset}",
|
46
|
+
process([color_prop, regex_match_no_color_prop], test_line)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_can_combine_line_and_match_properties_with_multiple_matches
|
50
|
+
test_line = 'this line has the number 12 and the number 89 in it'
|
51
|
+
color_prop = ::Styles::Properties::Color.new('line', :color, :blue)
|
52
|
+
string_match_color_prop = ::Styles::Properties::MatchColor.new('number', :match_color, :green)
|
53
|
+
regex_match_color_prop = ::Styles::Properties::MatchColor.new(/\d\d/, :match_color, :green)
|
54
|
+
|
55
|
+
assert_equal "#{color.blue}this line has the #{color.green}number#{color.blue}" +
|
56
|
+
" 12 and the #{color.green}number#{color.blue} 89 in it#{color.reset}",
|
57
|
+
process([color_prop, string_match_color_prop], test_line)
|
58
|
+
|
59
|
+
assert_equal "#{color.blue}this line has the number #{color.green}12#{color.blue}" +
|
60
|
+
" and the number #{color.green}89#{color.blue} in it#{color.reset}",
|
61
|
+
process([color_prop, regex_match_color_prop], test_line)
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_can_combine_line_and_match_properties_with_multiple_match_colors
|
65
|
+
test_line = 'this line has the number 12 in it'
|
66
|
+
color_prop = ::Styles::Properties::Color.new('line', :color, :blue)
|
67
|
+
regex_match_color_prop = ::Styles::Properties::MatchColor.new(/(number) (\d\d)/, :match_color, [:green, :red])
|
68
|
+
regex_match_color_prop_with_none = ::Styles::Properties::MatchColor.new(/(number) (\d\d)/, :match_color, [:green, :none])
|
69
|
+
|
70
|
+
assert_equal "#{color.blue}this line has the #{color.green}number#{color.blue}" +
|
71
|
+
" #{color.red}12#{color.blue} in it#{color.reset}",
|
72
|
+
process([color_prop, regex_match_color_prop], test_line)
|
73
|
+
assert_equal "#{color.blue}this line has the #{color.green}number#{color.blue}" +
|
74
|
+
" #{color.reset}12#{color.blue} in it#{color.reset}",
|
75
|
+
process([color_prop, regex_match_color_prop_with_none], test_line)
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_can_combine_misc_line_and_match_properties
|
79
|
+
test_line = 'this line has the number 12 in it'
|
80
|
+
underline_prop = ::Styles::Properties::TextDecoration.new('number', :text_decoration, :underline)
|
81
|
+
blink_match_prop = ::Styles::Properties::MatchTextDecoration.new('number', :match_text_decoration, :blink)
|
82
|
+
|
83
|
+
assert_equal "#{color.underline}this line has the #{color.reset}#{color.blink}number#{color.reset}" +
|
84
|
+
"#{color.underline} 12 in it#{color.reset}",
|
85
|
+
process([underline_prop, blink_match_prop], test_line)
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_background_colors_for_line_applies_to_matches_if_no_background_color_of_their_own
|
89
|
+
test_line = 'this line has a certain word in it'
|
90
|
+
bg_color_prop = ::Styles::Properties::BackgroundColor.new('word', :background_color, :blue)
|
91
|
+
string_match_color_prop = ::Styles::Properties::MatchColor.new('word', :match_color, :green)
|
92
|
+
regex_match_color_prop = ::Styles::Properties::MatchColor.new(/word/, :match_color, :green)
|
93
|
+
regex_groups_match_color_prop = ::Styles::Properties::MatchColor.new(/(certain) (word)/, :match_color, [:green, :red])
|
94
|
+
regex_groups_match_color_prop_with_none = ::Styles::Properties::MatchColor.new(/(certain) (word)/, :match_color, [:green, :none])
|
95
|
+
|
96
|
+
assert_equal "#{color.on_blue}this line has a certain #{color.green}word#{color.reset}#{color.on_blue} in it#{color.reset}",
|
97
|
+
process([bg_color_prop, string_match_color_prop], test_line)
|
98
|
+
assert_equal "#{color.on_blue}this line has a certain #{color.green}word#{color.reset}#{color.on_blue} in it#{color.reset}",
|
99
|
+
process([bg_color_prop, regex_match_color_prop], test_line)
|
100
|
+
|
101
|
+
assert_equal "#{color.on_blue}this line has a #{color.green}certain#{color.reset}#{color.on_blue}" +
|
102
|
+
" #{color.red}word#{color.reset}#{color.on_blue} in it#{color.reset}",
|
103
|
+
process([bg_color_prop, regex_groups_match_color_prop], test_line)
|
104
|
+
assert_equal "#{color.on_blue}this line has a #{color.green}certain#{color.reset}#{color.on_blue}" +
|
105
|
+
" word in it#{color.reset}",
|
106
|
+
process([bg_color_prop, regex_groups_match_color_prop_with_none], test_line)
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_color_for_line_applies_to_matches_if_no_color_of_their_own
|
110
|
+
test_line = 'this line has a certain word in it'
|
111
|
+
bg_color_prop = ::Styles::Properties::Color.new('word', :color, :blue)
|
112
|
+
string_match_color_prop = ::Styles::Properties::MatchBackgroundColor.new('word', :match_background_color, :green)
|
113
|
+
regex_match_color_prop = ::Styles::Properties::MatchBackgroundColor.new(/word/, :match_background_color, :green)
|
114
|
+
regex_groups_match_color_prop = ::Styles::Properties::MatchBackgroundColor.new(/(certain) (word)/,
|
115
|
+
:match_background_color, [:green, :red])
|
116
|
+
regex_groups_match_color_prop_with_none = ::Styles::Properties::MatchBackgroundColor.new(/(certain) (word)/,
|
117
|
+
:match_background_color, [:green, :none])
|
118
|
+
|
119
|
+
assert_equal "#{color.blue}this line has a certain #{color.on_green}word#{color.reset}#{color.blue} in it#{color.reset}",
|
120
|
+
process([bg_color_prop, string_match_color_prop], test_line)
|
121
|
+
assert_equal "#{color.blue}this line has a certain #{color.on_green}word#{color.reset}#{color.blue} in it#{color.reset}",
|
122
|
+
process([bg_color_prop, regex_match_color_prop], test_line)
|
123
|
+
|
124
|
+
assert_equal "#{color.blue}this line has a #{color.on_green}certain#{color.reset}#{color.blue}" +
|
125
|
+
" #{color.on_red}word#{color.reset}#{color.blue} in it#{color.reset}",
|
126
|
+
process([bg_color_prop, regex_groups_match_color_prop], test_line)
|
127
|
+
assert_equal "#{color.blue}this line has a #{color.on_green}certain#{color.reset}#{color.blue} word in it#{color.reset}",
|
128
|
+
process([bg_color_prop, regex_groups_match_color_prop_with_none], test_line)
|
129
|
+
end
|
130
|
+
|
131
|
+
private
|
132
|
+
|
133
|
+
def process(properties, line)
|
134
|
+
sub_engine.process(::Styles::Line.new(line, properties)).to_s
|
135
|
+
end
|
136
|
+
|
137
|
+
def sub_engine
|
138
|
+
@sub_engine ||= ::Styles::SubEngines::Color.new
|
139
|
+
end
|
140
|
+
|
141
|
+
def color
|
142
|
+
::Term::ANSIColor
|
143
|
+
end
|
144
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
require 'term/ansicolor'
|
3
|
+
|
4
|
+
class LayoutSubEngineTest < MiniTest::Unit::TestCase
|
5
|
+
def test_can_combine_padding_and_margin
|
6
|
+
test_line = 'here it is'
|
7
|
+
margin_left = ::Styles::Properties::Margin.new('here', :margin_left, 2)
|
8
|
+
padding_left = ::Styles::Properties::Padding.new('here', :padding_left, 2)
|
9
|
+
margin = ::Styles::Properties::Margin.new('here', :margin, 1)
|
10
|
+
padding = ::Styles::Properties::Padding.new('here', :padding, 2)
|
11
|
+
|
12
|
+
assert_equal " #{test_line}", process([margin_left, padding_left], test_line)
|
13
|
+
blank = "#{' ' * 16}\n"
|
14
|
+
assert_equal "#{blank * 3} #{test_line} \n#{blank * 3}", process([margin, padding], test_line)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_can_combine_padding_and_border
|
18
|
+
test_line = 'here it is'
|
19
|
+
s = ::Styles::Properties::Border::SOLID_CHARS
|
20
|
+
|
21
|
+
border = ::Styles::Properties::Border.new('here', :border, :solid)
|
22
|
+
padding_1 = ::Styles::Properties::Padding.new('here', :padding, 1)
|
23
|
+
padding_2 = ::Styles::Properties::Padding.new('here', :padding, 2)
|
24
|
+
|
25
|
+
output = <<RESULT
|
26
|
+
#{s[:top_left]}#{s[:top] * (1 + test_line.size + 1)}#{s[:top_right]}
|
27
|
+
#{s[:left]}#{' ' * (1 + test_line.size + 1)}#{s[:right]}
|
28
|
+
#{s[:left]} #{test_line} #{s[:right]}
|
29
|
+
#{s[:left]}#{' ' * (1 + test_line.size + 1)}#{s[:right]}
|
30
|
+
#{s[:bottom_left]}#{s[:bottom] * (1 + test_line.size + 1)}#{s[:bottom_right]}
|
31
|
+
RESULT
|
32
|
+
|
33
|
+
assert_equal output, process([padding_1, border], test_line)
|
34
|
+
|
35
|
+
output = <<RESULT
|
36
|
+
#{s[:top_left]}#{s[:top] * (2 + test_line.size + 2)}#{s[:top_right]}
|
37
|
+
#{s[:left]}#{' ' * (2 + test_line.size + 2)}#{s[:right]}
|
38
|
+
#{s[:left]}#{' ' * (2 + test_line.size + 2)}#{s[:right]}
|
39
|
+
#{s[:left]} #{test_line} #{s[:right]}
|
40
|
+
#{s[:left]}#{' ' * (2 + test_line.size + 2)}#{s[:right]}
|
41
|
+
#{s[:left]}#{' ' * (2 + test_line.size + 2)}#{s[:right]}
|
42
|
+
#{s[:bottom_left]}#{s[:bottom] * (2 + test_line.size + 2)}#{s[:bottom_right]}
|
43
|
+
RESULT
|
44
|
+
|
45
|
+
assert_equal output, process([padding_2, border], test_line)
|
46
|
+
|
47
|
+
output = <<RESULT
|
48
|
+
#{s[:top_left]}#{s[:top] * (test_line.size + 1)}#{s[:top_right]}
|
49
|
+
#{s[:left]}#{' ' * (test_line.size + 1)}#{s[:right]}
|
50
|
+
#{s[:left]}#{' ' * (test_line.size + 1)}#{s[:right]}
|
51
|
+
#{s[:left]}#{test_line} #{s[:right]}
|
52
|
+
#{s[:bottom_left]}#{s[:bottom] * (test_line.size + 1)}#{s[:bottom_right]}
|
53
|
+
RESULT
|
54
|
+
|
55
|
+
top_padding = ::Styles::Properties::Padding.new('here', :padding_top, 2)
|
56
|
+
right_padding = ::Styles::Properties::Padding.new('here', :padding_right, 1)
|
57
|
+
top_and_right_padding = ::Styles::Properties::Padding.new([top_padding, right_padding])
|
58
|
+
assert_equal output, process([top_and_right_padding, border], test_line)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_can_combine_padding_and_margin_and_border
|
62
|
+
test_line = 'here it is'
|
63
|
+
s = ::Styles::Properties::Border::SOLID_CHARS
|
64
|
+
|
65
|
+
margin_1 = ::Styles::Properties::Margin.new('here', :margin, 1)
|
66
|
+
padding_1 = ::Styles::Properties::Padding.new('here', :padding, 1)
|
67
|
+
border = ::Styles::Properties::Border.new('here', :border, :solid)
|
68
|
+
|
69
|
+
# Add trailing whitespace in a peculiar way so it doesn't get stripped by tools
|
70
|
+
output = <<RESULT
|
71
|
+
#{' ' * (3 + test_line.size + 3)}
|
72
|
+
#{s[:top_left]}#{s[:top] * (1 + test_line.size + 1)}#{s[:top_right]}#{' '}
|
73
|
+
#{s[:left]}#{' ' * (1 + test_line.size + 1)}#{s[:right]}#{' '}
|
74
|
+
#{s[:left]} #{test_line} #{s[:right]}#{' '}
|
75
|
+
#{s[:left]}#{' ' * (1 + test_line.size + 1)}#{s[:right]}#{' '}
|
76
|
+
#{s[:bottom_left]}#{s[:bottom] * (1 + test_line.size + 1)}#{s[:bottom_right]}#{' '}
|
77
|
+
#{' ' * (3 + test_line.size + 3)}
|
78
|
+
RESULT
|
79
|
+
|
80
|
+
assert_equal output, process([margin_1, padding_1, border], test_line)
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_can_combine_padding_and_background_color
|
84
|
+
test_line = "#{color.on_blue}here it is#{color.reset}" # assume already processed by color sub-engine
|
85
|
+
padding = ::Styles::Properties::Padding.new('here', :padding, 1)
|
86
|
+
bg_color = ::Styles::Properties::BackgroundColor.new('here', :background_color, :blue)
|
87
|
+
|
88
|
+
output = <<RESULT
|
89
|
+
#{color.on_blue}#{' ' * 12}#{color.reset}
|
90
|
+
#{color.on_blue} #{color.reset}#{test_line}#{color.on_blue} #{color.reset}
|
91
|
+
#{color.on_blue}#{' ' * 12}#{color.reset}
|
92
|
+
RESULT
|
93
|
+
|
94
|
+
assert_equal output, process([padding, bg_color], test_line)
|
95
|
+
end
|
96
|
+
|
97
|
+
private
|
98
|
+
|
99
|
+
def process(properties, line)
|
100
|
+
sub_engine.process(::Styles::Line.new(line, properties)).to_s
|
101
|
+
end
|
102
|
+
|
103
|
+
def sub_engine
|
104
|
+
@sub_engine ||= ::Styles::SubEngines::Layout.new
|
105
|
+
end
|
106
|
+
|
107
|
+
def color
|
108
|
+
::Term::ANSIColor
|
109
|
+
end
|
110
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,184 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: styles
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Aaron Royer
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-06-06 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: term-ansicolor
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.1.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.1.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: timecop
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: mocha
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
description: plain text stylesheets
|
63
|
+
email:
|
64
|
+
- aaronroyer@gmail.com
|
65
|
+
executables:
|
66
|
+
- styles
|
67
|
+
extensions: []
|
68
|
+
extra_rdoc_files: []
|
69
|
+
files:
|
70
|
+
- .gitignore
|
71
|
+
- Gemfile
|
72
|
+
- LICENSE.txt
|
73
|
+
- README.md
|
74
|
+
- Rakefile
|
75
|
+
- bin/styles
|
76
|
+
- lib/styles.rb
|
77
|
+
- lib/styles/application.rb
|
78
|
+
- lib/styles/colors.rb
|
79
|
+
- lib/styles/core_ext.rb
|
80
|
+
- lib/styles/engine.rb
|
81
|
+
- lib/styles/line.rb
|
82
|
+
- lib/styles/properties.rb
|
83
|
+
- lib/styles/properties/background_color.rb
|
84
|
+
- lib/styles/properties/base.rb
|
85
|
+
- lib/styles/properties/border.rb
|
86
|
+
- lib/styles/properties/color.rb
|
87
|
+
- lib/styles/properties/display.rb
|
88
|
+
- lib/styles/properties/font_weight.rb
|
89
|
+
- lib/styles/properties/function.rb
|
90
|
+
- lib/styles/properties/margin.rb
|
91
|
+
- lib/styles/properties/match_background_color.rb
|
92
|
+
- lib/styles/properties/match_color.rb
|
93
|
+
- lib/styles/properties/match_font_weight.rb
|
94
|
+
- lib/styles/properties/match_text_decoration.rb
|
95
|
+
- lib/styles/properties/padding.rb
|
96
|
+
- lib/styles/properties/text_align.rb
|
97
|
+
- lib/styles/properties/text_decoration.rb
|
98
|
+
- lib/styles/properties/width.rb
|
99
|
+
- lib/styles/rule.rb
|
100
|
+
- lib/styles/stylesheet.rb
|
101
|
+
- lib/styles/sub_engines.rb
|
102
|
+
- lib/styles/sub_engines/base.rb
|
103
|
+
- lib/styles/sub_engines/color.rb
|
104
|
+
- lib/styles/sub_engines/layout.rb
|
105
|
+
- lib/styles/sub_engines/pre_processor.rb
|
106
|
+
- lib/styles/version.rb
|
107
|
+
- styles.gemspec
|
108
|
+
- test/application_test.rb
|
109
|
+
- test/colors_test.rb
|
110
|
+
- test/engine_test.rb
|
111
|
+
- test/integration_test.rb
|
112
|
+
- test/line_test.rb
|
113
|
+
- test/properties/background_color_test.rb
|
114
|
+
- test/properties/base_test.rb
|
115
|
+
- test/properties/border_test.rb
|
116
|
+
- test/properties/color_test.rb
|
117
|
+
- test/properties/display_test.rb
|
118
|
+
- test/properties/font_weight_test.rb
|
119
|
+
- test/properties/function_test.rb
|
120
|
+
- test/properties/margin_test.rb
|
121
|
+
- test/properties/match_background_color_test.rb
|
122
|
+
- test/properties/match_color_test.rb
|
123
|
+
- test/properties/match_font_weight_test.rb
|
124
|
+
- test/properties/match_text_decoration_test.rb
|
125
|
+
- test/properties/padding_test.rb
|
126
|
+
- test/properties/text_align_test.rb
|
127
|
+
- test/properties/text_decoration_test.rb
|
128
|
+
- test/properties/width_test.rb
|
129
|
+
- test/rule_test.rb
|
130
|
+
- test/stylesheet_test.rb
|
131
|
+
- test/sub_engines/color_test.rb
|
132
|
+
- test/sub_engines/layout_test.rb
|
133
|
+
- test/test_helper.rb
|
134
|
+
homepage: http://github.com/aaronroyer/styles
|
135
|
+
licenses: []
|
136
|
+
post_install_message:
|
137
|
+
rdoc_options: []
|
138
|
+
require_paths:
|
139
|
+
- lib
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 1.9.0
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
none: false
|
148
|
+
requirements:
|
149
|
+
- - ! '>='
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
requirements: []
|
153
|
+
rubyforge_project:
|
154
|
+
rubygems_version: 1.8.23
|
155
|
+
signing_key:
|
156
|
+
specification_version: 3
|
157
|
+
summary: A utility for processing text that provides a Ruby DSL leveraging CSS concepts
|
158
|
+
test_files:
|
159
|
+
- test/application_test.rb
|
160
|
+
- test/colors_test.rb
|
161
|
+
- test/engine_test.rb
|
162
|
+
- test/integration_test.rb
|
163
|
+
- test/line_test.rb
|
164
|
+
- test/properties/background_color_test.rb
|
165
|
+
- test/properties/base_test.rb
|
166
|
+
- test/properties/border_test.rb
|
167
|
+
- test/properties/color_test.rb
|
168
|
+
- test/properties/display_test.rb
|
169
|
+
- test/properties/font_weight_test.rb
|
170
|
+
- test/properties/function_test.rb
|
171
|
+
- test/properties/margin_test.rb
|
172
|
+
- test/properties/match_background_color_test.rb
|
173
|
+
- test/properties/match_color_test.rb
|
174
|
+
- test/properties/match_font_weight_test.rb
|
175
|
+
- test/properties/match_text_decoration_test.rb
|
176
|
+
- test/properties/padding_test.rb
|
177
|
+
- test/properties/text_align_test.rb
|
178
|
+
- test/properties/text_decoration_test.rb
|
179
|
+
- test/properties/width_test.rb
|
180
|
+
- test/rule_test.rb
|
181
|
+
- test/stylesheet_test.rb
|
182
|
+
- test/sub_engines/color_test.rb
|
183
|
+
- test/sub_engines/layout_test.rb
|
184
|
+
- test/test_helper.rb
|