class Stylesheet::CssRuleList
Public Class Methods
new(rules, parent = nil)
click to toggle source
# File lib/stylesheet/css_rule_list.rb, line 7 def initialize(rules, parent = nil) @rules = parse(rules, parent) end
Public Instance Methods
item(index)
click to toggle source
# File lib/stylesheet/css_rule_list.rb, line 11 def item(index) @rules[index] end
Private Instance Methods
parse(rules, parent)
click to toggle source
# File lib/stylesheet/css_rule_list.rb, line 17 def parse(rules, parent) # clean out comments rules = rules.gsub(/\/\*[\s\S]*?\*\//, '').gsub("/*", "").gsub("*/", "") # clean extraneous whitespace rules = rules.to_s.gsub(/\s+/m, " ").gsub(/([\};])\s/, '\1') directive_re = "@.+?;" rules_re = ".+?\{.*?\}" split_rules = rules.scan(/(#{directive_re}|#{rules_re})/im).map {|r| r[0] } split_rules.map do |css_text| CssRule.factory(:css_text => css_text, :parent_style_sheet => parent) end end