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