Sha256: f482478c33d97ef3f4c26766be5aac5dacd5db40283f8da8bccb89bc3049e796

Contents?: true

Size: 1 KB

Versions: 4

Compression:

Stored size: 1 KB

Contents

module HentryConsumer
  class Element
    attr_accessor :element
    
    def initialize(microformat)
      @element = microformat
      parse_elements
    end
    
    def to_html
      @element.to_html
    end
    
    def to_xml
      @element.to_xml
    end

    def parse_elements
      FormatClass.each do |letter|
        @element.css(">*[class*=#{letter}-]").each do |a|
          assign_value(symbolize_class(a["class"]), a.text.gsub('\n', " ").strip)
        end
      end
    end

    def symbolize_class(klass)
      klass.to_s.downcase.split.first.gsub(/\w{1,2}-/, "").to_sym
    end

    def [](key)
      self.send(key)
    end

    def []=(key, value)
      self.send(key.to_s + "=", value)
    end

    def assign_value(symbolized_class, value)
      return unless self.respond_to?(symbolized_class)
      if FormatRules.can_have_many?(symbolized_class)
        self[symbolized_class] ||= []
        self[symbolized_class] << value
      else
        self[symbolized_class] = value
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hentry_consumer-0.4.0 lib/hentry_consumer/element.rb
hentry_consumer-0.3.2 lib/hentry_consumer/element.rb
hentry_consumer-0.3.1 lib/hentry_consumer/element.rb
hentry_consumer-0.3.0 lib/hentry_consumer/element.rb