css 0.0.2 → 0.0.3

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/lib/css.rb CHANGED
@@ -8,5 +8,5 @@ require "css/rule"
8
8
  require "css/rule_set"
9
9
 
10
10
  module CSS
11
- VERSION = "0.0.2"
11
+ VERSION = "0.0.3"
12
12
  end
@@ -33,6 +33,10 @@ module CSS
33
33
  klass.new(:p, name, value)
34
34
  end
35
35
 
36
+ def has_property?(property_name)
37
+ @properties.keys.include?(normalize_property_name(property_name))
38
+ end
39
+
36
40
  def to_s
37
41
  @value
38
42
  end
@@ -43,6 +43,27 @@ module CSS
43
43
  "#{selector}{#{to_s}}"
44
44
  end
45
45
 
46
+ def has_one_property?(*property_names)
47
+ property_names.any?{ |property_name| has_property?(property_name) }
48
+ end
49
+
50
+ def has_property?(property_name)
51
+ property_name = normalize_property_name(property_name)
52
+ if property_name =~ /-/
53
+ property_name_parts = property_name.split('-')
54
+ pname = property_name_parts.shift
55
+ property = nil
56
+ while property_name_parts.size > 0
57
+ property = get(pname)
58
+ break unless property.nil?
59
+ pname = [pname, property_name_parts.shift].join('-')
60
+ end
61
+ property.has_property?(property_name_parts.shift)
62
+ else
63
+ properties.include?(property_name)
64
+ end
65
+ end
66
+
46
67
  def method_missing(method_name, *args)
47
68
  property_name = normalize_property_name(method_name)
48
69
  if property_name =~ /-/
@@ -1,7 +1,9 @@
1
+ require 'set'
2
+
1
3
  module CSS
2
4
  class RuleSet
3
5
  def initialize
4
- @selectors = []
6
+ @selectors = Set.new
5
7
  @rules = {}
6
8
  end
7
9
 
@@ -22,6 +24,10 @@ module CSS
22
24
  @selectors
23
25
  end
24
26
 
27
+ def rules
28
+ selectors.map { |selector| @rules[selector] }
29
+ end
30
+
25
31
  def to_style
26
32
  rules = []
27
33
  selectors.each do |selector|
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: css
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andrew Timberlake