class Necromancer::Context

A class used by Necromancer to provide user interace

@api public

Attributes

conversions[R]

Public Class Methods

new(&block) click to toggle source

Create a context.

@api private

# File lib/necromancer/context.rb, line 21
def initialize(&block)
  block.(configuration) if block_given?
  @conversions = Conversions.new(configuration)
  @conversions.load
end

Public Instance Methods

can?(source, target) click to toggle source

Check if this converter can convert source to target

@param [Object] source

the source class

@param [Object] target

the target class

@return [Boolean]

@api public

# File lib/necromancer/context.rb, line 74
def can?(source, target)
  !conversions[source, target].nil?
rescue NoTypeConversionAvailableError
  false
end
configuration() click to toggle source

The configuration object.

@example

converter = Necromancer.new
converter.configuration.strict = true

@return [Necromancer::Configuration]

@api public

# File lib/necromancer/context.rb, line 36
def configuration
  @configuration ||= Configuration.new
end
configure() { |configuration| ... } click to toggle source

Yields global configuration to a block.

@yield [Necromancer::Configuration]

@example

converter = Necromancer.new
converter.configure do |config|
  config.strict true
end

@api public

# File lib/necromancer/context.rb, line 51
def configure
  yield configuration if block_given?
end
convert(object = ConversionTarget::UndefinedValue, &block) click to toggle source

Converts the object @param [Object] object

any object to be converted

@api public

# File lib/necromancer/context.rb, line 60
def convert(object = ConversionTarget::UndefinedValue, &block)
  ConversionTarget.for(conversions, object, block)
end
inspect() click to toggle source

Inspect this context

@api public

# File lib/necromancer/context.rb, line 83
def inspect
  %(#<#{self.class}@#{object_id} @config=#{configuration}>)
end