lib/recite_csv/header/definition.rb in recite_csv-0.1.1 vs lib/recite_csv/header/definition.rb in recite_csv-0.1.2

- old
+ new

@@ -18,22 +18,23 @@ {}.freeze end def self.new(*) if self == Base - raise ::NotImplementedError, "#{self} is an abstract class and cannot be instantiated." + raise ::NotImplementedError, + "#{self} is an abstract class and cannot be instantiated." end super end end class Hash < Base DEFAULT_CSV_OPTIONS = { headers: :first_row }.freeze class ColumnMethodsBuilder < ::Module def initialize(raw_definition) - raw_definition.each do |method_name, header_name| + raw_definition.each_pair do |method_name, header_name| define_method method_name do self[header_name] end end end @@ -63,11 +64,15 @@ }.freeze module_function def dispatch(header_definition) - _, definition_class = DEFINITIONS.find { |klass, _| header_definition.is_a? klass } - raise ::ArgumentError, "Unexpected header definition type" unless definition_class + _, definition_class = DEFINITIONS.find do |klass, _| + header_definition.is_a? klass + end + unless definition_class + raise ::ArgumentError, "Unexpected header definition type" + end definition_class.new(header_definition) end end end end