Module: Philiprehberger::TypedHash

Defined in:
lib/philiprehberger/typed_hash.rb,
lib/philiprehberger/typed_hash/schema.rb,
lib/philiprehberger/typed_hash/version.rb,
lib/philiprehberger/typed_hash/instance.rb

Defined Under Namespace

Classes: Error, FrozenError, Instance, Schema

Constant Summary collapse

VERSION =
'0.3.0'

Class Method Summary collapse

Class Method Details

.define(strict: false) {|schema| ... } ⇒ Schema

Define a typed hash schema using a block DSL

Parameters:

  • strict (Boolean) (defaults to: false)

    when true, reject unknown keys

Yields:

  • (schema)

    the schema definition block

Returns:

  • (Schema)

    the defined schema



18
19
20
21
22
# File 'lib/philiprehberger/typed_hash.rb', line 18

def self.define(strict: false, &block)
  schema = Schema.new(strict: strict)
  schema.instance_eval(&block)
  schema
end