Class: Definition

Inherits:
Object
  • Object
show all
Defined in:
lib/csv2hash/definition.rb

Direct Known Subclasses

Mapping

Defined Under Namespace

Classes: Mapping

Constant Summary collapse

MAPPING =
'mapping'
COLLECTION =
'collection'
TYPES =
[Definition::MAPPING, Definition::COLLECTION]

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#rulesObject

Returns the value of attribute rules.



8
9
10
# File 'lib/csv2hash/definition.rb', line 8

def rules
  @rules
end

#typeObject

Returns the value of attribute type.



8
9
10
# File 'lib/csv2hash/definition.rb', line 8

def type
  @type
end

Instance Method Details

#default!Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/csv2hash/definition.rb', line 17

def default!
  rules.each do |rule|
    default_position rule
    rule.merge! message:     'undefined :key on :position' unless rule.has_key? :message
    rule.merge! mappable:    true                          unless rule.has_key? :mappable
    rule.merge! type:       'string'                       unless rule.has_key? :type
    rule.merge! values:      nil                           unless rule.has_key? :values
    rule.merge! nested:      nil                           unless rule.has_key? :nested
    rule.merge! allow_blank: false                         unless rule.has_key? :allow_blank
    rule.merge! position:    nil                           unless rule.has_key? :position
    rule.merge! maptype:     'cell'                        unless rule.has_key? :maptype
  end
end

#validate!Object



10
11
12
13
14
15
# File 'lib/csv2hash/definition.rb', line 10

def validate!
  unless TYPES.include?(type)
    raise "not suitable type, please use '#{Definition::MAPPING}' or '#{Definition::COLLECTION}'"
  end
  raise 'rules must be an Array of rules' unless rules.class == Array
end