Class: SequelDM::MappingsDSL

Inherits:
Object
  • Object
show all
Defined in:
lib/sequel_dm/mappings_dsl.rb

Defined Under Namespace

Classes: Mapping

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&dsl_block) ⇒ MappingsDSL

Returns a new instance of MappingsDSL.



3
4
5
6
# File 'lib/sequel_dm/mappings_dsl.rb', line 3

def initialize(&dsl_block)
  @mappings = {}
  instance_exec(&dsl_block)
end

Instance Attribute Details

#mappingsObject (readonly)

Returns the value of attribute mappings.



2
3
4
# File 'lib/sequel_dm/mappings_dsl.rb', line 2

def mappings
  @mappings
end

Instance Method Details

#column(column_name, options = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/sequel_dm/mappings_dsl.rb', line 8

def column(column_name, options = {})
  SequelDM::ArgsValidator.is_symbol!(column_name, :column_name)
  SequelDM::ArgsValidator.is_hash!(options, :column_options)
  SequelDM::ArgsValidator.is_symbol!(options[:to], :to) if options[:to]
  SequelDM::ArgsValidator.is_proc!(options[:load], :load) if options[:load]
  SequelDM::ArgsValidator.is_proc!(options[:dump], :dump) if options[:dump]

  set_field  = options[:set_field] == false ? false : true
  set_column = options[:set_column] == false ? false : true
  mappings[column_name] = Mapping.new(
    column_name,
    options[:to] || column_name,
    options[:load],
    options[:dump],
    set_field,
    set_column,
  )
end

#columns(*column_names) ⇒ Object



27
28
29
30
# File 'lib/sequel_dm/mappings_dsl.rb', line 27

def columns(*column_names)
  SequelDM::ArgsValidator.is_array!(column_names, :column_names)
  column_names.each { |column_name| column(column_name) }
end