Sha256: 1c36e03724e67bcacf328e419ebe12bbc6917ba9ba2785c2848ff133a11f4235

Contents?: true

Size: 740 Bytes

Versions: 7

Compression:

Stored size: 740 Bytes

Contents

require 'osheet/partial'

module Osheet
  class Template < Partial

    # this class is a partial that is associated with an osheet element
    #  if an element is initialized from a template, the template
    #  block will be instance_eval'd for the element being initialized

    include Instance

    ELEMENTS = ['worksheet', 'column', 'row', 'cell']

    def initialize(element, name)
      unless element.respond_to?(:to_s) && ELEMENTS.include?(element.to_s)
        raise ArgumentError, "you can only define a template for #{ELEMENTS.join(', ')} elements."
      end

      set_ivar(:element, element.to_s)
      super(name)
    end

    def element; get_ivar(:element); end
    def element=(v); set_ivar(:element, v); end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
osheet-0.10.0 lib/osheet/template.rb
osheet-0.9.2 lib/osheet/template.rb
osheet-0.9.1 lib/osheet/template.rb
osheet-0.9.0 lib/osheet/template.rb
osheet-0.8.0 lib/osheet/template.rb
osheet-0.7.0 lib/osheet/template.rb
osheet-0.6.0 lib/osheet/template.rb