Sha256: edfa716ea58d57ec4e7b24099c89309035be918ac8a97620117edf49c5191c0c
Contents?: true
Size: 1.64 KB
Versions: 2
Compression:
Stored size: 1.64 KB
Contents
require_relative 'datacaster/result' require_relative 'datacaster/version' require_relative 'datacaster/absent' require_relative 'datacaster/base' require_relative 'datacaster/predefined' require_relative 'datacaster/definition_context' require_relative 'datacaster/terminator' require_relative 'datacaster/config' require_relative 'datacaster/array_schema' require_relative 'datacaster/caster' require_relative 'datacaster/checker' require_relative 'datacaster/comparator' require_relative 'datacaster/hash_mapper' require_relative 'datacaster/hash_schema' require_relative 'datacaster/message_keys_merger' require_relative 'datacaster/transformer' require_relative 'datacaster/trier' require_relative 'datacaster/and_node' require_relative 'datacaster/and_with_error_aggregation_node' require_relative 'datacaster/or_node' require_relative 'datacaster/then_node' module Datacaster extend self def schema(&block) build_schema(Terminator::Raising.instance, &block) end def choosy_schema(&block) build_schema(Terminator::Sweeping.instance, &block) end def partial_schema(&block) build_schema(nil, &block) end def absent Datacaster::Absent.instance end private def build_schema(terminator, &block) raise "Expected block" unless block definition_context = DefinitionContext.new datacaster = definition_context.instance_exec(&block) unless datacaster.is_a?(Base) raise "Datacaster instance should be returned from a block (e.g. result of 'hash_schema(...)' call)" end datacaster = (datacaster & terminator) if terminator datacaster.set_definition_context(definition_context) datacaster end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
datacaster-2.0.2 | lib/datacaster.rb |
datacaster-2.0.1 | lib/datacaster.rb |