class Yasd::Converter
Public Class Methods
new(filename)
click to toggle source
# File lib/yasd/converter.rb, line 5 def initialize(filename) @converters = {} if filename contents = File.read(filename) instance_eval(contents) end end
Public Instance Methods
call(data)
click to toggle source
# File lib/yasd/converter.rb, line 13 def call(data) data.headers.each_with_object({}) do |field, new_object| new_object[field] = convert_field(field, data[field]) new_object end end
Private Instance Methods
convert(header, &block)
click to toggle source
for DSL
# File lib/yasd/converter.rb, line 23 def convert(header, &block) @converters[header] ||= [] @converters[header] << block end
convert_field(header, value)
click to toggle source
# File lib/yasd/converter.rb, line 28 def convert_field(header, value) (@converters[header] || []).reduce(value) do |_result, proc| proc.call(value) end end