Class: ReciteCSV::Reader::Builder

Inherits:
Module
  • Object
show all
Defined in:
lib/recite_csv/reader/builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(header_definition, &block) ⇒ Builder

Returns a new instance of Builder.



11
12
13
14
15
16
17
18
# File 'lib/recite_csv/reader/builder.rb', line 11

def initialize(header_definition, &block)
  definition = Header::Definition.dispatch(header_definition)
  @definition = definition
  @row_class = ::Class.new(Row::Base) do |klass|
    klass.include definition.build_column_methods_module
    klass.class_exec(&block) if block_given?
  end
end

Instance Method Details

#included(class_or_module) ⇒ Object



20
21
22
23
24
25
# File 'lib/recite_csv/reader/builder.rb', line 20

def included(class_or_module)
  class_or_module.include Core
  class_or_module.const_set(:Row, @row_class)
  class_or_module.const_set(:DEFAULT_CSV_OPTIONS, @definition.default_csv_options)
  class_or_module.extend DSL
end