Sha256: b41c46f382ebcbf202112f6f6219d1214b9ca25c0ad10b5317a822bb54aa12be
Contents?: true
Size: 1.9 KB
Versions: 5
Compression:
Stored size: 1.9 KB
Contents
module Csscss class Declaration < Struct.new(:property, :value, :parents) def self.from_csspool(dec) new(dec.property.to_s.downcase, dec.expressions.join(" ").downcase) end def self.from_parser(property, value, clean = true) value = value.to_s property = property.to_s if clean value = value.downcase property = property.downcase end new(property, value.strip) end def derivative? !parents.nil? end def without_parents if derivative? dup.tap do |duped| duped.parents = nil end else self end end def ==(other) if other.respond_to?(:property) && other.respond_to?(:value) # using eql? tanks performance property == other.property && normalize_value(value) == normalize_value(other.value) else false end end def hash [property, normalize_value(value)].hash end def eql?(other) hash == other.hash end def <=>(other) property <=> other.property end def >(other) other.derivative? && other.parents.include?(self) end def <(other) other > self end def to_s "#{property}: #{value}" end def inspect if parents "<#{self.class} #{to_s} (parents: #{parents})>" else "<#{self.class} #{to_s}>" end end private def normalize_value(value) if value =~ /^0(#{Csscss::Parser::Common::UNITS.join("|")}|%)$/ "0" else value end end end class Selector < Struct.new(:selectors) def self.from_parser(selectors) new(selectors.to_s.strip) end def <=>(other) selectors <=> other.selectors end def to_s selectors end def inspect "<#{self.class} #{selectors}>" end end class Ruleset < Struct.new(:selectors, :declarations) end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
csscss-1.3.3 | lib/csscss/types.rb |
csscss-1.3.2 | lib/csscss/types.rb |
csscss-1.3.1 | lib/csscss/types.rb |
csscss-1.3.0 | lib/csscss/types.rb |
csscss-1.2.0 | lib/csscss/types.rb |