csscss 0.0.1 → 0.1.0

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.
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