Module: Otoroshi::Sanctuary::ClassMethods
- Defined in:
- lib/otoroshi/sanctuary.rb
Overview
Class methods extended for the base class
Instance Method Summary collapse
-
#properties ⇒ Hash
Class properties.
-
#property(name, type = Object, one_of: nil, assert: ->(_) { true }, allow_nil: false, default: nil) ⇒ void
Adds a new “property” to the class.
Instance Method Details
#properties ⇒ Hash
Class properties
68 69 70 |
# File 'lib/otoroshi/sanctuary.rb', line 68 def properties {} end |
#property(name, type = Object, one_of: nil, assert: ->(_) { true }, allow_nil: false, default: nil) ⇒ void
This method returns an undefined value.
Adds a new “property” to the class
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/otoroshi/sanctuary.rb', line 46 def property(name, type = Object, one_of: nil, assert: ->(_) { true }, allow_nil: false, default: nil) add_to_properties(name, type, allow_nil, default) expected_type = type.is_a?(Array) ? type.first || Object : type collection = expected_type == Array || type.is_a?(Array) define_validate_type(name, expected_type, collection, allow_nil) define_validate_one_of(name, collection, one_of, allow_nil) define_validate_assertion(name, collection, assert, allow_nil) define_validate(name) define_getter(name) define_setter(name) class_eval Initializer.draw(properties), __FILE__, __LINE__ + 1 end |