Sha256: 77c32d9c61e148216998a04ffe918e4a815ba971757667af90ce576a2f6d347e
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
require 'zeitwerk' loader = Zeitwerk::Loader.for_gem loader.inflector.inflect('definition_dsl' => 'DefinitionDSL') loader.setup require_relative 'datacaster/result' module Datacaster extend self def schema(i18n_scope: nil, &block) ContextNodes::StructureCleaner.new(build_schema(i18n_scope: i18n_scope, &block), :fail) end def choosy_schema(i18n_scope: nil, &block) ContextNodes::StructureCleaner.new(build_schema(i18n_scope: i18n_scope, &block), :remove) end def partial_schema(i18n_scope: nil, &block) ContextNodes::StructureCleaner.new(build_schema(i18n_scope: i18n_scope, &block), :pass) end def absent Datacaster::Absent.instance end private def build_schema(i18n_scope: nil, &block) raise "Expected block" unless block datacaster = DefinitionDSL.eval(&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.i18n_scope(i18n_scope) if i18n_scope datacaster end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
datacaster-3.1.1 | lib/datacaster.rb |
datacaster-3.1.0 | lib/datacaster.rb |
datacaster-3.0.0 | lib/datacaster.rb |