class SpreadsheetBuilder::CssRule
Public Class Methods
new(rule)
click to toggle source
# File lib/spreadsheet_builder/css_rule.rb, line 3 def initialize(rule) @rule = rule end
Public Instance Methods
declarations()
click to toggle source
# File lib/spreadsheet_builder/css_rule.rb, line 7 def declarations @rule.instance_variable_get(:@declarations) end
find_selector(tree)
click to toggle source
# File lib/spreadsheet_builder/css_rule.rb, line 22 def find_selector(tree) selectors.find { |s| next unless tree.last & s.last == s.last s[0..-2].reverse.inject(tree.length - 2) do |i, s_node| break false unless i tree[0..i].index { |kt_node| kt_node & s_node == s_node } end } end
selectors()
click to toggle source
# File lib/spreadsheet_builder/css_rule.rb, line 11 def selectors @rule.selectors.map { |s| s = s.split(/[\s>]/).map { |node| node.split('.') } s.each do |node| n = node.length node[1...n] = node[1...n].map { |k| '.' + k } node.delete_if { |k| k.empty? || k == "." } end }.sort_by(&:length) end
Private Instance Methods
method_missing(method, *attrs, &block)
click to toggle source
Calls superclass method
# File lib/spreadsheet_builder/css_rule.rb, line 34 def method_missing(method, *attrs, &block) if @rule.respond_to?(method) @rule.__send__(method, *attrs, &block) else super end end