Sha256: 49bf1e91bd7d2700c2cf21e3028782d0aab3d4062a8934a7591b53dd1c98117b
Contents?: true
Size: 1.93 KB
Versions: 1
Compression:
Stored size: 1.93 KB
Contents
# frozen_string_literal: true require "forwardable" require_relative "configuration" require_relative "conversions" require_relative "conversion_target" module Necromancer # A class used by Necromancer to provide user interace # # @api public class Context extend Forwardable def_delegators :"@conversions", :register # Create a context. # # @api private def initialize(&block) block.(configuration) if block_given? @conversions = Conversions.new(configuration) @conversions.load end # The configuration object. # # @example # converter = Necromancer.new # converter.configuration.strict = true # # @return [Necromancer::Configuration] # # @api public def configuration @configuration ||= Configuration.new end # Yields global configuration to a block. # # @yield [Necromancer::Configuration] # # @example # converter = Necromancer.new # converter.configure do |config| # config.strict true # end # # @api public def configure yield configuration if block_given? end # Converts the object # @param [Object] object # any object to be converted # # @api public def convert(object = ConversionTarget::UndefinedValue, &block) ConversionTarget.for(conversions, object, block) end # 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 def can?(source, target) !conversions[source, target].nil? rescue NoTypeConversionAvailableError false end # Inspect this context # # @api public def inspect %(#<#{self.class}@#{object_id} @config=#{configuration}>) end protected attr_reader :conversions end # Context end # Necromancer
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
necromancer-0.7.0 | lib/necromancer/context.rb |