Sha256: 5e48a9e47e8a12cc0f845130e8cc9e24830fb3da07a126cf4172c94c561bf21f
Contents?: true
Size: 1.76 KB
Versions: 3
Compression:
Stored size: 1.76 KB
Contents
module Microformats2 module Property class Foundation attr_reader :method_name def initialize(element, html_class, string_value=nil, base=nil) @element = element @method_name = to_method_name(html_class) @string_value = string_value @base = base end def parse to_s formats self end def to_s @to_s ||= string_value || value_class_pattern || element_value || text_value end def format formats.first end def formats @formats ||= format_classes.length >=1 ? FormatParser.parse(@element, @base) : [] end def to_hash if formats.empty? to_s else { value: to_s }.merge(formats.first.to_hash) end end def to_json to_hash.to_json end protected def value_class_pattern # TODO end def element_value @element.attribute(attribute).to_s if attribute && @element.attribute(attribute) end def text_value @element.inner_text.gsub(/\n+/, " ").gsub(/\s+/, " ").strip end def string_value @string_value end def attribute attr_map[@element.name] end def attr_map {} end private def to_method_name(html_class) # p-class-name -> class_name mn = html_class.downcase.split("-")[1..-1].join("_") # avoid overriding Object#class mn = "klass" if mn == "class" mn end def format_classes return [] unless @element @format_classes = @element.attribute("class").to_s.split.select do |html_class| html_class =~ Format::CLASS_REG_EXP end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
microformats2-2.1.0 | lib/microformats2/property/foundation.rb |
microformats2-2.0.3 | lib/microformats2/property/foundation.rb |
microformats2-2.0.2 | lib/microformats2/property/foundation.rb |