Module: RSchema
- Defined in:
- lib/rschema.rb,
lib/rschema/dsl.rb,
lib/rschema/error.rb,
lib/rschema/result.rb,
lib/rschema/options.rb,
lib/rschema/version.rb,
lib/rschema/schemas/set.rb,
lib/rschema/schemas/sum.rb,
lib/rschema/coercers/any.rb,
lib/rschema/schemas/enum.rb,
lib/rschema/schemas/type.rb,
lib/rschema/coercers/date.rb,
lib/rschema/coercers/time.rb,
lib/rschema/schemas/maybe.rb,
lib/rschema/coercers/chain.rb,
lib/rschema/coercers/float.rb,
lib/rschema/coercers/symbol.rb,
lib/rschema/schemas/boolean.rb,
lib/rschema/schemas/coercer.rb,
lib/rschema/coercers/boolean.rb,
lib/rschema/coercers/integer.rb,
lib/rschema/coercion_wrapper.rb,
lib/rschema/schemas/anything.rb,
lib/rschema/schemas/pipeline.rb,
lib/rschema/schemas/predicate.rb,
lib/rschema/schemas/fixed_hash.rb,
lib/rschema/schemas/convenience.rb,
lib/rschema/schemas/variable_hash.rb,
lib/rschema/coercers/nil_empty_strings.rb,
lib/rschema/schemas/fixed_length_array.rb,
lib/rschema/coercion_wrapper/rack_params.rb,
lib/rschema/schemas/variable_length_array.rb,
lib/rschema/coercers/fixed_hash/symbolize_keys.rb,
lib/rschema/coercers/fixed_hash/default_arrays_to_empty.rb,
lib/rschema/coercers/fixed_hash/default_booleans_to_false.rb,
lib/rschema/coercers/fixed_hash/remove_extraneous_attributes.rb
Overview
Schema-based validation and coercion
Defined Under Namespace
Modules: Coercers, DSL, Schemas Classes: CoercionWrapper, DefaultDSL, Error, Invalid, Options, Result
Constant Summary collapse
- VERSION =
'3.1.1'
Class Method Summary collapse
-
.default_dsl ⇒ Object
The default DSL object.
-
.define(dsl = nil) { ... } ⇒ Schemas::Convenience
Creates a schema object using a DSL.
-
.define_hash { ... } ⇒ Schemas::Convenience
A convenience method for creating Schemas::FixedHash schemas.
-
.define_predicate(name = nil) { ... } ⇒ Schemas::Convenience
A convenience method for creating Schemas::Predicate schemas.
-
.dsl_eval(dsl = nil) { ... } ⇒ Object
Runs a block using a DSL.
Class Method Details
.default_dsl ⇒ Object
Returns The default DSL object.
114 115 116 |
# File 'lib/rschema.rb', line 114 def self.default_dsl @default_dsl ||= DefaultDSL.new end |
.define(dsl = nil) { ... } ⇒ Schemas::Convenience
Creates a schema object using a DSL
26 27 28 29 |
# File 'lib/rschema.rb', line 26 def self.define(dsl = nil, &block) schema = dsl_eval(dsl, &block) Schemas::Convenience.wrap(schema) end |
.define_hash { ... } ⇒ Schemas::Convenience
A convenience method for creating RSchema::Schemas::FixedHash schemas
This method is a shorter way to write:
RSchema.define do
fixed_hash(...)
end
76 77 78 79 80 |
# File 'lib/rschema.rb', line 76 def self.define_hash(&block) Schemas::Convenience.wrap( default_dsl.fixed_hash(dsl_eval(&block)) ) end |
.define_predicate(name = nil) { ... } ⇒ Schemas::Convenience
A convenience method for creating RSchema::Schemas::Predicate schemas.
This method is a shorter way to write:
RSchema.define do
predicate(name) { ... }
end
104 105 106 107 108 |
# File 'lib/rschema.rb', line 104 def self.define_predicate(name = nil, &block) Schemas::Convenience.wrap( default_dsl.predicate(name, &block) ) end |
.dsl_eval(dsl = nil) { ... } ⇒ Object
Runs a block using a DSL.
48 49 50 51 52 53 54 |
# File 'lib/rschema.rb', line 48 def self.dsl_eval(dsl = nil, &block) Docile::Execution.exec_in_proxy_context( dsl || default_dsl, Docile::FallbackContextProxy, &block ) end |