class ParsableHash::Strategy::ConverterLoader

Attributes

klass[RW]

Public Class Methods

from_class(klass) click to toggle source
# File lib/parsable_hash/strategy/converter_loader.rb, line 16
def self.from_class(klass)
  new(nil, :converter => klass)
end
from_name(name) click to toggle source
# File lib/parsable_hash/strategy/converter_loader.rb, line 12
def self.from_name(name)
  new(name)
end
from_value(value) click to toggle source
# File lib/parsable_hash/strategy/converter_loader.rb, line 4
def self.from_value(value)
  if value.is_a? Class
    from_class(value)
  else
    from_name(value)
  end
end
new(name, options = {}) click to toggle source
# File lib/parsable_hash/strategy/converter_loader.rb, line 22
def initialize(name, options = {})
  @name      = name.to_s
  self.klass = options.fetch(:converter) { load_from_name }
end

Public Instance Methods

call(val) click to toggle source
# File lib/parsable_hash/strategy/converter_loader.rb, line 27
def call(val)
  klass.new(val).call
end

Private Instance Methods

camelize(name) click to toggle source
# File lib/parsable_hash/strategy/converter_loader.rb, line 43
def camelize(name)
  name.split('_').map(&:capitalize).join
end
load_from_name() click to toggle source
# File lib/parsable_hash/strategy/converter_loader.rb, line 33
def load_from_name
  klass = camelize(@name)

  if ParsableHash::Converters.const_defined?(klass)
    ParsableHash::Converters.const_get(klass)
  else
    ParsableHash::Converters::Null
  end
end