diff --git a/lib/csv.rb b/lib/csv.rb index 7f1b404b2a..3881ba24c2 100644 --- a/lib/csv.rb +++ b/lib/csv.rb @@ -2575,7 +2575,7 @@ class CSV def build_parser_fields_converter specific_options = { - builtin_converters: Converters, + builtin_converters_name: :Converters, } options = @base_fields_converter_options.merge(specific_options) build_fields_converter(@initial_converters, options) @@ -2587,7 +2587,7 @@ class CSV def build_header_fields_converter specific_options = { - builtin_converters: HeaderConverters, + builtin_converters_name: :HeaderConverters, accept_nil: true, } options = @base_fields_converter_options.merge(specific_options) diff --git a/lib/csv/fields_converter.rb b/lib/csv/fields_converter.rb index 178ffb37bc..b206118d99 100644 --- a/lib/csv/fields_converter.rb +++ b/lib/csv/fields_converter.rb @@ -16,7 +16,7 @@ class CSV @empty_value = options[:empty_value] @empty_value_is_empty_string = (@empty_value == "") @accept_nil = options[:accept_nil] - @builtin_converters = options[:builtin_converters] + @builtin_converters_name = options[:builtin_converters_name] @need_static_convert = need_static_convert? end @@ -24,7 +24,7 @@ class CSV if name.nil? # custom converter @converters << converter else # named converter - combo = @builtin_converters[name] + combo = builtin_converters[name] case combo when Array # combo converter combo.each do |sub_name| @@ -80,5 +80,9 @@ class CSV @need_static_convert or (not @converters.empty?) end + + def builtin_converters + @builtin_converters ||= ::CSV.const_get(@builtin_converters_name) + end end end