Class: Hatemile::Util::Css::Rcp::RCPParser

Inherits:
StyleSheetParser show all
Includes:
CssParser
Defined in:
lib/hatemile/util/css/rcp/rcp_parser.rb

Overview

The RCPParser class is official implementation of Hatemile::Util::Css::StyleSheetParser for Ruby CSS Parser.

Instance Method Summary collapse

Constructor Details

#initialize(css_or_hp, current_url = nil) ⇒ RCPParser

Initializes a new object that encapsulate the Ruby CSS Parser.

Parameters:



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/hatemile/util/css/rcp/rcp_parser.rb', line 73

def initialize(css_or_hp, current_url = nil)
  Hatemile::Helper.require_not_nil(css_or_hp)
  Hatemile::Helper.require_valid_type(
    css_or_hp,
    Hatemile::Util::Html::HTMLDOMParser,
    String
  )
  Hatemile::Helper.require_valid_type(current_url, String)

  @css_parser = CssParser::Parser.new
  if css_or_hp.is_a?(String)
    @css_parser.load_string!(css_or_hp)
  else
    load_stylesheets(css_or_hp, current_url)
  end
end

Instance Method Details

#get_rules(properties = nil) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/hatemile/util/css/rcp/rcp_parser.rb', line 92

def get_rules(properties = nil)
  rules = []
  @css_parser.each_rule_set do |rule|
    auxiliar_rule = RCPRule.new(rule)

    if properties.nil?
      rules.push(auxiliar_rule)
      next
    end

    properties.each do |property_name|
      if auxiliar_rule.has_property?(property_name)
        rules.push(auxiliar_rule)
        break
      end
    end
  end
  rules
end