class Spread2RDF::Schema::Sheet::DSL

Public Class Methods

new(spreadsheet_dsl, worksheet, filename, &block) click to toggle source
# File lib/spread2rdf/schema/sheet_dsl.rb, line 5
def initialize(spreadsheet_dsl, worksheet, filename, &block)
  @spreadsheet_dsl = spreadsheet_dsl
  @worksheet = worksheet
  @filename = filename
  instance_exec(&block) if block_given?
end

Public Instance Methods

cell(coord, options = {}, &block) click to toggle source
# File lib/spread2rdf/schema/sheet_dsl.rb, line 26
def cell(coord, options = {}, &block)
  content = ROO.cell(coord, @worksheet.source_name)
  content = block.call(content) if block_given?
  content
end
column(name, options={}, &block) click to toggle source
# File lib/spread2rdf/schema/sheet_dsl.rb, line 12
def column(name, options={}, &block)
  name = name.to_sym
  column = @worksheet.column[name] ||= Column.new(@worksheet, &block)
  column.update_attributes options.merge(name: name)
  column # TODO: chaining logic ...?
end
column_block(name, options={}, &block) click to toggle source
# File lib/spread2rdf/schema/sheet_dsl.rb, line 19
def column_block(name, options={}, &block)
  name = name.to_sym
  sub_sheet = @worksheet.column[name] ||= ColumnBlock.new(@worksheet)
  sub_sheet.update_attributes options.merge(name: name)
  DSL.new(@spreadsheet_dsl, sub_sheet, @filename, &block)
end
include(template, *args) click to toggle source
# File lib/spread2rdf/schema/sheet_dsl.rb, line 32
def include(template, *args)
  instance_exec(*args, &__template__(template))
end
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/spread2rdf/schema/sheet_dsl.rb, line 47
def method_missing(name, *args)
  __template__(name) or __cell_mapping__(name) or super
end

Private Instance Methods

__cell_mapping__(name) click to toggle source
# File lib/spread2rdf/schema/sheet_dsl.rb, line 41
def __cell_mapping__(name)
  @spreadsheet_dsl.instance_variable_get(:@cell_mappings)[name] or
      Mapping::Cell::Default.method(name).to_proc
end
__template__(name) click to toggle source
# File lib/spread2rdf/schema/sheet_dsl.rb, line 36
def __template__(name)
  @spreadsheet_dsl.instance_variable_get(:@templates)[name]
end