Class: Definition
- Inherits:
-
Object
- Object
- Definition
- Defined in:
- lib/csv2hash/definition.rb
Direct Known Subclasses
Defined Under Namespace
Classes: Mapping
Constant Summary collapse
- MAPPING =
'mapping'- COLLECTION =
'collection'- TYPES =
[Definition::MAPPING, Definition::COLLECTION]
Instance Attribute Summary collapse
-
#rules ⇒ Object
Returns the value of attribute rules.
-
#type ⇒ Object
Returns the value of attribute type.
Instance Method Summary collapse
Instance Attribute Details
#rules ⇒ Object
Returns the value of attribute rules.
8 9 10 |
# File 'lib/csv2hash/definition.rb', line 8 def rules @rules end |
#type ⇒ Object
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 |