css_parser 1.2.4 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/css_parser.rb +5 -3
  2. data/test/test_merging.rb +6 -0
  3. metadata +28 -48
data/lib/css_parser.rb CHANGED
@@ -8,7 +8,7 @@ require 'stringio'
8
8
  require 'iconv'
9
9
 
10
10
  module CssParser
11
- VERSION = '1.2.4'
11
+ VERSION = '1.2.5'
12
12
 
13
13
  # Merge multiple CSS RuleSets by cascading according to the CSS 2.1 cascading rules
14
14
  # (http://www.w3.org/TR/REC-CSS2/cascade.html#cascading-order).
@@ -78,8 +78,10 @@ module CssParser
78
78
  # Add the property to the list to be folded per http://www.w3.org/TR/CSS21/cascade.html#cascading-order
79
79
  if not properties.has_key?(property)
80
80
  properties[property] = {:value => value, :specificity => specificity, :is_important => is_important}
81
- elsif is_important and not properties[property][:is_important]
82
- properties[property] = {:value => value, :specificity => specificity, :is_important => is_important}
81
+ elsif is_important
82
+ if not properties[property][:is_important] or properties[property][:specificity] <= specificity
83
+ properties[property] = {:value => value, :specificity => specificity, :is_important => is_important}
84
+ end
83
85
  elsif properties[property][:specificity] < specificity or properties[property][:specificity] == specificity
84
86
  unless properties[property][:is_important]
85
87
  properties[property] = {:value => value, :specificity => specificity, :is_important => is_important}
data/test/test_merging.rb CHANGED
@@ -98,6 +98,12 @@ class MergingTests < Test::Unit::TestCase
98
98
  rs2 = RuleSet.new(nil, 'color: red !important;', 1)
99
99
  merged = CssParser.merge(rs1, rs2)
100
100
  assert_equal 'black !important;', merged['color']
101
+
102
+ rs3 = RuleSet.new(nil, 'color: blue !important;', 1000)
103
+ merged = CssParser.merge(rs1, rs2, rs3)
104
+ assert_equal 'blue !important;', merged['color']
105
+
106
+
101
107
  end
102
108
 
103
109
  def test_merging_shorthand_important
metadata CHANGED
@@ -1,45 +1,33 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: css_parser
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.5
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 2
9
- - 4
10
- version: 1.2.4
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Alex Dunae
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-09-07 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-09-07 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: addressable
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2153617080 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: *2153617080
34
25
  description: A set of classes for parsing CSS in Ruby.
35
26
  email: code@dunae.ca
36
27
  executables: []
37
-
38
28
  extensions: []
39
-
40
29
  extra_rdoc_files: []
41
-
42
- files:
30
+ files:
43
31
  - lib/css_parser.rb
44
32
  - lib/css_parser/parser.rb
45
33
  - lib/css_parser/regexps.rb
@@ -61,42 +49,34 @@ files:
61
49
  - test/test_rule_set_expanding_shorthand.rb
62
50
  homepage: https://github.com/alexdunae/css_parser
63
51
  licenses: []
64
-
65
52
  post_install_message:
66
- rdoc_options:
53
+ rdoc_options:
67
54
  - --all
68
55
  - --inline-source
69
56
  - --line-numbers
70
57
  - --charset
71
58
  - utf-8
72
- require_paths:
59
+ require_paths:
73
60
  - lib
74
- required_ruby_version: !ruby/object:Gem::Requirement
61
+ required_ruby_version: !ruby/object:Gem::Requirement
75
62
  none: false
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- hash: 3
80
- segments:
81
- - 0
82
- version: "0"
83
- required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
68
  none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- hash: 3
89
- segments:
90
- - 0
91
- version: "0"
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
92
73
  requirements: []
93
-
94
74
  rubyforge_project:
95
75
  rubygems_version: 1.8.10
96
76
  signing_key:
97
77
  specification_version: 3
98
78
  summary: Ruby CSS parser.
99
- test_files:
79
+ test_files:
100
80
  - test/test_css_parser_basic.rb
101
81
  - test/test_css_parser_loading.rb
102
82
  - test/test_css_parser_media_types.rb