Sha256: 7f7244d1ca25a2bf6f81ea3fba99a187a58c927574ca24b0e94d7e2c869091d1

Contents?: true

Size: 825 Bytes

Versions: 1

Compression:

Stored size: 825 Bytes

Contents

module RSLT
  class ElementWrapper

    attr_reader :element, :builder, :stylesheet

    def initialize(stylesheet, element, builder)
      @stylesheet = stylesheet
      @element = element
      @builder = builder
    end

    def child_content(selector=nil)
      elements = selector ? @element.css(selector) : @element.children
      elements.each do |child|
        stylesheet.generate_element(child)
      end
    end

    def method_missing(sym, *args)
      begin
        @element.send(sym, *args)
      rescue Exception => e
        raise e.exception("Error delegating method '#{sym}' to #{@element.class.name}: #{e.message}\n\n#{e.backtrace.join("\n")}")
      end
    end

    def add(*content)
      @builder << content.join('')
    end

    def error(string)
      stylesheet.errors << string
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rslt-1.1.8 lib/rslt/element_wrapper.rb