csscss 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/.gitignore +0 -1
  2. data/CHANGELOG.md +3 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +39 -0
  5. data/README.md +47 -12
  6. data/bin/csscss +0 -1
  7. data/csscss.gemspec +2 -3
  8. data/lib/csscss/cli.rb +10 -1
  9. data/lib/csscss/json_reporter.rb +17 -0
  10. data/lib/csscss/parser/background.rb +72 -0
  11. data/lib/csscss/parser/base.rb +13 -0
  12. data/lib/csscss/parser/border.rb +45 -0
  13. data/lib/csscss/parser/border_color.rb +41 -0
  14. data/lib/csscss/parser/border_side.rb +91 -0
  15. data/lib/csscss/parser/border_style.rb +41 -0
  16. data/lib/csscss/parser/border_width.rb +37 -0
  17. data/lib/csscss/parser/color.rb +53 -0
  18. data/lib/csscss/parser/common.rb +86 -0
  19. data/lib/csscss/parser/css.rb +88 -0
  20. data/lib/csscss/parser/font.rb +96 -0
  21. data/lib/csscss/parser/list_style.rb +44 -0
  22. data/lib/csscss/parser/margin.rb +32 -0
  23. data/lib/csscss/parser/multi_side_transformer.rb +47 -0
  24. data/lib/csscss/parser/outline.rb +45 -0
  25. data/lib/csscss/parser/padding.rb +32 -0
  26. data/lib/csscss/parslet_optimizations.rb +77 -0
  27. data/lib/csscss/redundancy_analyzer.rb +75 -8
  28. data/lib/csscss/reporter.rb +2 -4
  29. data/lib/csscss/types.rb +77 -2
  30. data/lib/csscss/version.rb +1 -1
  31. data/lib/csscss.rb +22 -1
  32. data/test/csscss/json_reporter_test.rb +34 -0
  33. data/test/csscss/parser/background_test.rb +57 -0
  34. data/test/csscss/parser/border_color_test.rb +30 -0
  35. data/test/csscss/parser/border_side_test.rb +44 -0
  36. data/test/csscss/parser/border_style_test.rb +30 -0
  37. data/test/csscss/parser/border_test.rb +31 -0
  38. data/test/csscss/parser/border_width_test.rb +30 -0
  39. data/test/csscss/parser/color_test.rb +51 -0
  40. data/test/csscss/parser/common_test.rb +130 -0
  41. data/test/csscss/parser/css_test.rb +133 -0
  42. data/test/csscss/parser/font_test.rb +43 -0
  43. data/test/csscss/parser/list_style_test.rb +28 -0
  44. data/test/csscss/parser/margin_test.rb +50 -0
  45. data/test/csscss/parser/outline_test.rb +26 -0
  46. data/test/csscss/parser/padding_test.rb +50 -0
  47. data/test/csscss/redundancy_analyzer_test.rb +126 -4
  48. data/test/csscss/reporter_test.rb +4 -2
  49. data/test/csscss/types_test.rb +73 -0
  50. data/test/just_parse.rb +8 -0
  51. data/test/test_helper.rb +49 -6
  52. metadata +61 -23
  53. data/.rspec.default +0 -1
@@ -0,0 +1,50 @@
1
+ require "test_helper"
2
+
3
+ module Csscss::Parser
4
+ module Margin
5
+ describe Margin do
6
+ include CommonParserTests
7
+
8
+ before do
9
+ @parser = Parser.new
10
+ @trans = Transformer.new
11
+ end
12
+
13
+ it "converts shorthand rules to longhand" do
14
+ trans("1px 10% inherit auto").must_equal([
15
+ dec("margin-top", "1px"),
16
+ dec("margin-right", "10%"),
17
+ dec("margin-bottom", "inherit"),
18
+ dec("margin-left", "auto")
19
+ ])
20
+
21
+ trans("1px 10% inherit").must_equal([
22
+ dec("margin-top", "1px"),
23
+ dec("margin-right", "10%"),
24
+ dec("margin-bottom", "inherit"),
25
+ dec("margin-left", "10%")
26
+ ])
27
+
28
+ trans("1px 10%").must_equal([
29
+ dec("margin-top", "1px"),
30
+ dec("margin-right", "10%"),
31
+ dec("margin-bottom", "1px"),
32
+ dec("margin-left", "10%")
33
+ ])
34
+
35
+ trans("1px").must_equal([
36
+ dec("margin-top", "1px"),
37
+ dec("margin-right", "1px"),
38
+ dec("margin-bottom", "1px"),
39
+ dec("margin-left", "1px")
40
+ ])
41
+ end
42
+
43
+ it "tries the parse and returns false if it doesn't work" do
44
+ @parser.try_parse("foo").must_equal(false)
45
+ parsed = @parser.try_parse("1px")
46
+ parsed[:margin][:top].must_equal("1px")
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,26 @@
1
+ require "test_helper"
2
+
3
+ module Csscss::Parser
4
+ module Outline
5
+ describe self do
6
+ include CommonParserTests
7
+
8
+ before do
9
+ @parser = Parser.new
10
+ @trans = Transformer.new
11
+ end
12
+
13
+ it "converts shorthand rules to longhand" do
14
+ trans("1px solid blue").must_equal([
15
+ dec("outline-width", "1px"),
16
+ dec("outline-style", "solid"),
17
+ dec("outline-color", "blue")
18
+ ])
19
+
20
+ trans("solid").must_equal([
21
+ dec("outline-style", "solid")
22
+ ])
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,50 @@
1
+ require "test_helper"
2
+
3
+ module Csscss::Parser
4
+ module Padding
5
+ describe Padding do
6
+ include CommonParserTests
7
+
8
+ before do
9
+ @parser = Parser.new
10
+ @trans = Transformer.new
11
+ end
12
+
13
+ it "converts shorthand rules to longhand" do
14
+ trans("1px 10% inherit 4em").must_equal([
15
+ dec("padding-top", "1px"),
16
+ dec("padding-right", "10%"),
17
+ dec("padding-bottom", "inherit"),
18
+ dec("padding-left", "4em")
19
+ ])
20
+
21
+ trans("1px 10% inherit").must_equal([
22
+ dec("padding-top", "1px"),
23
+ dec("padding-right", "10%"),
24
+ dec("padding-bottom", "inherit"),
25
+ dec("padding-left", "10%")
26
+ ])
27
+
28
+ trans("1px 10%").must_equal([
29
+ dec("padding-top", "1px"),
30
+ dec("padding-right", "10%"),
31
+ dec("padding-bottom", "1px"),
32
+ dec("padding-left", "10%")
33
+ ])
34
+
35
+ trans("1px").must_equal([
36
+ dec("padding-top", "1px"),
37
+ dec("padding-right", "1px"),
38
+ dec("padding-bottom", "1px"),
39
+ dec("padding-left", "1px")
40
+ ])
41
+ end
42
+
43
+ it "tries the parse and returns false if it doesn't work" do
44
+ @parser.try_parse("foo").must_equal(false)
45
+ parsed = @parser.try_parse("1px")
46
+ parsed[:padding][:top].must_equal("1px")
47
+ end
48
+ end
49
+ end
50
+ end
@@ -2,6 +2,8 @@ require "test_helper"
2
2
 
3
3
  module Csscss
4
4
  describe RedundancyAnalyzer do
5
+ include TypeHelpers
6
+
5
7
  it "finds and trims redundant rule_sets" do
6
8
  css = %$
7
9
  h1, h2 { display: none; position: relative; outline:none}
@@ -11,17 +13,17 @@ module Csscss
11
13
  $
12
14
 
13
15
  RedundancyAnalyzer.new(css).redundancies.must_equal({
14
- [sel(".bar"), sel(%w(h1 h2))] => [dec("outline", "none"), dec("position", "relative")],
16
+ [sel(".bar"), sel("h1, h2")] => [dec("outline", "none"), dec("position", "relative")],
15
17
  [sel(".bar"), sel(".foo")] => [dec("width", "1px")],
16
- [sel(".baz"), sel(".foo"), sel(%w(h1 h2))] => [dec("display", "none")]
18
+ [sel(".baz"), sel(".foo"), sel("h1, h2")] => [dec("display", "none")]
17
19
  })
18
20
 
19
21
  RedundancyAnalyzer.new(css).redundancies.first.must_equal [
20
- [sel(".bar"), sel(%w(h1 h2))] , [dec("outline", "none"), dec("position", "relative")]
22
+ [sel(".bar"), sel("h1, h2")] , [dec("outline", "none"), dec("position", "relative")]
21
23
  ]
22
24
 
23
25
  RedundancyAnalyzer.new(css).redundancies(2).must_equal({
24
- [sel(".bar"), sel(%w(h1 h2))] => [dec("outline", "none"), dec("position", "relative")]
26
+ [sel(".bar"), sel("h1, h2")] => [dec("outline", "none"), dec("position", "relative")]
25
27
  })
26
28
  end
27
29
 
@@ -79,5 +81,125 @@ module Csscss
79
81
  redundancies = RedundancyAnalyzer.new(css).redundancies(3)
80
82
  redundancies[[sel(".bar"), sel(".baz")]].size.must_equal(5)
81
83
  end
84
+
85
+ it "also matches shorthand rules" do
86
+ css = %$
87
+ .foo { background-color: #fff }
88
+ .bar { background: #fff top }
89
+ $
90
+
91
+ RedundancyAnalyzer.new(css).redundancies.must_equal({
92
+ [sel(".bar"), sel(".foo")] => [dec("background-color", "#fff")]
93
+ })
94
+ end
95
+
96
+ it "keeps full shorthand together" do
97
+ css = %$
98
+ .baz { background-color: #fff }
99
+ .foo { background: #fff top }
100
+ .bar { background: #fff top }
101
+ $
102
+
103
+ RedundancyAnalyzer.new(css).redundancies.must_equal({
104
+ [sel(".bar"), sel(".foo")] => [dec("background", "#fff top")],
105
+ [sel(".bar"), sel(".baz"), sel(".foo")] => [dec("background-color", "#fff")]
106
+ })
107
+ end
108
+
109
+ it "doesn't consolidate explicit short/longhand" do
110
+ css = %$
111
+ .foo { background-color: #fff }
112
+ .bar { background: #fff }
113
+ $
114
+
115
+ RedundancyAnalyzer.new(css).redundancies.must_equal({
116
+ [sel(".bar"), sel(".foo")] => [dec("background-color", "#fff")]
117
+ })
118
+
119
+ css = %$
120
+ .bar { background: #fff }
121
+ .foo { background-color: #fff }
122
+ $
123
+
124
+ RedundancyAnalyzer.new(css).redundancies.must_equal({
125
+ [sel(".bar"), sel(".foo")] => [dec("background-color", "#fff")]
126
+ })
127
+ end
128
+
129
+ it "3-way case consolidation" do
130
+ css = %$
131
+ .bar { background: #fff }
132
+ .baz { background: #fff top }
133
+ .foo { background-color: #fff }
134
+ $
135
+
136
+ RedundancyAnalyzer.new(css).redundancies.must_equal({
137
+ [sel(".bar"), sel(".baz"), sel(".foo")] => [dec("background-color", "#fff")]
138
+ })
139
+ end
140
+
141
+ it "handles border and border-top matches appropriately" do
142
+ css = %$
143
+ .bar { border: 1px solid #fff }
144
+ .baz { border-top: 1px solid #fff }
145
+ .foo { border-top-width: 1px }
146
+ $
147
+
148
+ RedundancyAnalyzer.new(css).redundancies.must_equal({
149
+ [sel(".bar"), sel(".baz")] => [dec("border-top", "1px solid #fff")],
150
+ [sel(".bar"), sel(".baz"), sel(".foo")] => [dec("border-top-width", "1px")]
151
+ })
152
+ end
153
+
154
+ it "reduces border matches appropriately" do
155
+ css = %$
156
+ .bar { border: 1px solid #FFF }
157
+ .baz { border: 1px solid #FFF }
158
+ $
159
+
160
+ RedundancyAnalyzer.new(css).redundancies.must_equal({
161
+ [sel(".bar"), sel(".baz")] => [dec("border", "1px solid #fff")]
162
+ })
163
+
164
+ css = %$
165
+ .bar { border: 4px solid #4F4F4F }
166
+ .baz { border: 4px solid #4F4F4F }
167
+ .foo { border: 4px solid #3A86CE }
168
+ $
169
+
170
+ RedundancyAnalyzer.new(css).redundancies.must_equal({
171
+ [sel(".bar"), sel(".baz")] => [dec("border", "4px solid #4f4f4f")],
172
+ [sel(".bar"), sel(".baz"), sel(".foo")] => [dec("border-style", "solid"), dec("border-width", "4px")]
173
+ })
174
+
175
+ RedundancyAnalyzer.new(css).redundancies(2).must_equal({
176
+ [sel(".bar"), sel(".baz"), sel(".foo")] => [dec("border-style", "solid"), dec("border-width", "4px")]
177
+ })
178
+ end
179
+
180
+ it "reduces padding and margin" do
181
+ css = %$
182
+ .bar { padding: 4px; margin: 5px }
183
+ .baz { padding-bottom: 4px}
184
+ .foo { margin-right: 5px }
185
+ $
186
+
187
+ RedundancyAnalyzer.new(css).redundancies.must_equal({
188
+ [sel(".bar"), sel(".baz")] => [dec("padding-bottom", "4px")],
189
+ [sel(".bar"), sel(".foo")] => [dec("margin-right", "5px")]
190
+ })
191
+ end
192
+
193
+ # TODO: someday
194
+ # it "reports duplication within the same selector" do
195
+ # css = %$
196
+ # .bar { background: #fff top; background-color: #fff }
197
+ # $
198
+
199
+ # # TODO: need to update the reporter for this
200
+ # RedundancyAnalyzer.new(css).redundancies.must_equal({
201
+ # [sel(".bar")] => [dec("background-color", "#fff")]
202
+ # })
203
+ # end
82
204
  end
83
205
  end
@@ -2,11 +2,13 @@ require "test_helper"
2
2
 
3
3
  module Csscss
4
4
  describe Reporter do
5
+ include TypeHelpers
6
+
5
7
  it "formats string result" do
6
8
  reporter = Reporter.new({
7
9
  [sel(".foo"), sel(".bar")] => [dec("width", "1px"), dec("border", "black")],
8
- [sel(%w(h1 h2)), sel(".foo"), sel(".baz")] => [dec("display", "none")],
9
- [sel(%w(h1 h2)), sel(".bar")] => [dec("position", "relative")]
10
+ [sel("h1, h2"), sel(".foo"), sel(".baz")] => [dec("display", "none")],
11
+ [sel("h1, h2"), sel(".bar")] => [dec("position", "relative")]
10
12
  })
11
13
 
12
14
  expected =<<-EXPECTED
@@ -0,0 +1,73 @@
1
+ require "test_helper"
2
+
3
+ module Csscss
4
+ describe Declaration do
5
+ it "< and > checks parents" do
6
+ dec1 = Declaration.new("background", "#fff")
7
+ dec2 = Declaration.new("background", "#fff")
8
+ dec3 = Declaration.new("background-color", "#fff", [dec1])
9
+ dec4 = Declaration.new("background-color", "#fff", nil)
10
+
11
+ dec1.must_be :>, dec3
12
+ dec3.must_be :<, dec1
13
+
14
+ dec1.wont_be :>, dec4
15
+ dec1.wont_be :>, dec2
16
+ dec4.wont_be :>, dec1
17
+ end
18
+
19
+ it "checks ancestory against all parents" do
20
+ dec1 = Declaration.new("border", "#fff")
21
+ dec2 = Declaration.new("border", "#fff top")
22
+ dec3 = Declaration.new("border-top", "#fff", [dec1, dec2])
23
+
24
+ dec1.must_be :>, dec3
25
+ dec2.must_be :>, dec3
26
+
27
+ dec1.wont_be :>, dec1
28
+ dec2.wont_be :>, dec1
29
+ dec1.wont_be :>, dec2
30
+ dec3.wont_be :>, dec1
31
+ end
32
+
33
+ it "is a derivative if it has parents" do
34
+ dec1 = Declaration.new("background", "#fff")
35
+ dec1.wont_be :derivative?
36
+ Declaration.new("background-color", "#fff", [dec1]).must_be :derivative?
37
+ end
38
+
39
+ it "ignores parents when checking equality" do
40
+ dec1 = Declaration.new("background", "#fff")
41
+ dec2 = Declaration.new("background-color", "#fff", [dec1])
42
+ dec3 = Declaration.new("background-color", "#fff", nil)
43
+
44
+ dec1.wont_equal dec2
45
+ dec2.wont_equal dec1
46
+
47
+ dec2.must_equal dec3
48
+ dec3.must_equal dec2
49
+
50
+ dec2.hash.must_equal dec3.hash
51
+ dec3.hash.must_equal dec2.hash
52
+ dec3.hash.wont_equal dec1.hash
53
+
54
+ dec2.must_be :eql?, dec3
55
+ dec3.must_be :eql?, dec2
56
+ dec2.wont_be :eql?, dec1
57
+ end
58
+
59
+ it "derivatives are handled correctly in a hash" do
60
+ dec1 = Declaration.new("background", "#fff")
61
+ dec2 = Declaration.new("background-color", "#fff", [dec1])
62
+ dec3 = Declaration.new("background-color", "#fff", nil)
63
+
64
+ h = {}
65
+ h[dec2] = false
66
+ h[dec3] = true
67
+
68
+ h.keys.size.must_equal 1
69
+ h[dec2].must_equal true
70
+ h[dec3].must_equal true
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,8 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require "debugger"
4
+ require "csscss"
5
+
6
+ raise "need a file name" unless ARGV[0]
7
+ contents = File.read(ARGV[0])
8
+ rule_sets = Csscss::Parser::Css.parse(contents)
data/test/test_helper.rb CHANGED
@@ -7,19 +7,62 @@ require "debugger"
7
7
 
8
8
  require "csscss"
9
9
 
10
- MiniTest::Spec.add_setup_hook do
10
+ module TypeHelpers
11
11
  def sel(s)
12
- Csscss::Selector.new(Array(s))
12
+ Csscss::Selector.new(s)
13
13
  end
14
14
 
15
15
  def dec(p, v)
16
16
  Csscss::Declaration.new(p, v)
17
17
  end
18
18
 
19
- def cmatch(selectors, decs)
20
- Csscss::Match.new(selectors, decs)
19
+ def rs(selectors, decs)
20
+ Csscss::Ruleset.new(selectors, decs)
21
21
  end
22
22
  end
23
23
 
24
- Debugger.settings[:autoeval] = true
25
- Debugger.settings[:autolist] = 1
24
+ module MiniTest::Assertions
25
+ def assert_parse(parser, string)
26
+ assert parser.parse(string)
27
+ rescue Parslet::ParseFailed => ex
28
+ assert false, ex.cause.ascii_tree
29
+ end
30
+
31
+ def assert_not_parse(parser, string)
32
+ parser.parse(string)
33
+ assert false, "expected #{parser} to not successfully parse \"#{string}\" and it did"
34
+ rescue Parslet::ParseFailed => ex
35
+ assert ex
36
+ end
37
+ end
38
+
39
+ Parslet::Atoms::DSL.infect_an_assertion :assert_parse, :must_parse, :do_not_flip
40
+ Parslet::Atoms::DSL.infect_an_assertion :assert_not_parse, :wont_parse, :do_not_flip
41
+
42
+ module CommonParserTests
43
+ def self.included(base)
44
+ base.instance_eval do
45
+ include Helpers
46
+ include TypeHelpers
47
+
48
+ describe "common parser tests" do
49
+ it "parses inherit" do
50
+ trans("inherit").must_equal([])
51
+ end
52
+
53
+ it "doesn't parse unknown values" do
54
+ @parser.wont_parse("foo")
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ module Helpers
61
+ def trans(s)
62
+ @trans.apply(@parser.parse(s))
63
+ rescue Parslet::ParseFailed => e
64
+ puts e.cause.ascii_tree
65
+ raise e
66
+ end
67
+ end
68
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csscss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-01 00:00:00.000000000 Z
12
+ date: 2013-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: csspool
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '3.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: '3.0'
30
14
  - !ruby/object:Gem::Dependency
31
15
  name: parslet
32
16
  requirement: !ruby/object:Gem::Requirement
@@ -52,9 +36,10 @@ extensions: []
52
36
  extra_rdoc_files: []
53
37
  files:
54
38
  - .gitignore
55
- - .rspec.default
56
39
  - .travis.yml
40
+ - CHANGELOG.md
57
41
  - Gemfile
42
+ - Gemfile.lock
58
43
  - LICENSE.txt
59
44
  - README.md
60
45
  - Rakefile
@@ -62,14 +47,49 @@ files:
62
47
  - csscss.gemspec
63
48
  - lib/csscss.rb
64
49
  - lib/csscss/cli.rb
50
+ - lib/csscss/json_reporter.rb
51
+ - lib/csscss/parser/background.rb
52
+ - lib/csscss/parser/base.rb
53
+ - lib/csscss/parser/border.rb
54
+ - lib/csscss/parser/border_color.rb
55
+ - lib/csscss/parser/border_side.rb
56
+ - lib/csscss/parser/border_style.rb
57
+ - lib/csscss/parser/border_width.rb
58
+ - lib/csscss/parser/color.rb
59
+ - lib/csscss/parser/common.rb
60
+ - lib/csscss/parser/css.rb
61
+ - lib/csscss/parser/font.rb
62
+ - lib/csscss/parser/list_style.rb
63
+ - lib/csscss/parser/margin.rb
64
+ - lib/csscss/parser/multi_side_transformer.rb
65
+ - lib/csscss/parser/outline.rb
66
+ - lib/csscss/parser/padding.rb
67
+ - lib/csscss/parslet_optimizations.rb
65
68
  - lib/csscss/redundancy_analyzer.rb
66
69
  - lib/csscss/reporter.rb
67
70
  - lib/csscss/types.rb
68
71
  - lib/csscss/version.rb
72
+ - test/csscss/json_reporter_test.rb
73
+ - test/csscss/parser/background_test.rb
74
+ - test/csscss/parser/border_color_test.rb
75
+ - test/csscss/parser/border_side_test.rb
76
+ - test/csscss/parser/border_style_test.rb
77
+ - test/csscss/parser/border_test.rb
78
+ - test/csscss/parser/border_width_test.rb
79
+ - test/csscss/parser/color_test.rb
80
+ - test/csscss/parser/common_test.rb
81
+ - test/csscss/parser/css_test.rb
82
+ - test/csscss/parser/font_test.rb
83
+ - test/csscss/parser/list_style_test.rb
84
+ - test/csscss/parser/margin_test.rb
85
+ - test/csscss/parser/outline_test.rb
86
+ - test/csscss/parser/padding_test.rb
69
87
  - test/csscss/redundancy_analyzer_test.rb
70
88
  - test/csscss/reporter_test.rb
89
+ - test/csscss/types_test.rb
90
+ - test/just_parse.rb
71
91
  - test/test_helper.rb
72
- homepage: ''
92
+ homepage: http://zmoazeni.github.com/csscss/
73
93
  licenses: []
74
94
  post_install_message:
75
95
  rdoc_options: []
@@ -83,7 +103,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
83
103
  version: '0'
84
104
  segments:
85
105
  - 0
86
- hash: 4262444302933628003
106
+ hash: -4598443269162371706
87
107
  required_rubygems_version: !ruby/object:Gem::Requirement
88
108
  none: false
89
109
  requirements:
@@ -92,14 +112,32 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
112
  version: '0'
93
113
  segments:
94
114
  - 0
95
- hash: 4262444302933628003
115
+ hash: -4598443269162371706
96
116
  requirements: []
97
117
  rubyforge_project:
98
118
  rubygems_version: 1.8.25
99
119
  signing_key:
100
120
  specification_version: 3
101
- summary: A CSS redundancy analyzer that analyzes redundancy.
121
+ summary: csscss will parse any CSS files you give it and let you know which rulesets
122
+ have duplicated declarations.
102
123
  test_files:
124
+ - test/csscss/json_reporter_test.rb
125
+ - test/csscss/parser/background_test.rb
126
+ - test/csscss/parser/border_color_test.rb
127
+ - test/csscss/parser/border_side_test.rb
128
+ - test/csscss/parser/border_style_test.rb
129
+ - test/csscss/parser/border_test.rb
130
+ - test/csscss/parser/border_width_test.rb
131
+ - test/csscss/parser/color_test.rb
132
+ - test/csscss/parser/common_test.rb
133
+ - test/csscss/parser/css_test.rb
134
+ - test/csscss/parser/font_test.rb
135
+ - test/csscss/parser/list_style_test.rb
136
+ - test/csscss/parser/margin_test.rb
137
+ - test/csscss/parser/outline_test.rb
138
+ - test/csscss/parser/padding_test.rb
103
139
  - test/csscss/redundancy_analyzer_test.rb
104
140
  - test/csscss/reporter_test.rb
141
+ - test/csscss/types_test.rb
142
+ - test/just_parse.rb
105
143
  - test/test_helper.rb
data/.rspec.default DELETED
@@ -1 +0,0 @@
1
- --debug