css 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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