Sha256: 06e8613160032343f520266247d28a4ee02e53be5beb39d5a48c46fed9744e2f

Contents?: true

Size: 829 Bytes

Versions: 2

Compression:

Stored size: 829 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.map do |child|
        stylesheet.generate_element(child)
      end.join
    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

2 entries across 2 versions & 1 rubygems

Version Path
rslt-1.1.10 lib/rslt/element_wrapper.rb
rslt-1.1.9 lib/rslt/element_wrapper.rb