Module: Structish::Validations::ClassMethods
- Defined in:
- lib/structish/validations.rb
Instance Method Summary collapse
- #assign(key) ⇒ Object
- #attribute_hash(key, klass = nil, kwargs = {}, block) ⇒ Object
- #attribute_keys ⇒ Object
- #attributes ⇒ Object
- #delegate(function, object) ⇒ Object
- #delegations ⇒ Object
- #global_validations ⇒ Object
- #optional_attributes ⇒ Object
- #required_attributes ⇒ Object
- #restrict? ⇒ Boolean
- #restrict_attributes ⇒ Object
- #structish? ⇒ Boolean
- #validate(key, klass = nil, kwargs = {}, &block) ⇒ Object
- #validate_all(klass = nil, kwargs = {}, &block) ⇒ Object
Instance Method Details
#assign(key) ⇒ Object
195 196 197 |
# File 'lib/structish/validations.rb', line 195 def assign(key) [:other_attribute, key] end |
#attribute_hash(key, klass = nil, kwargs = {}, block) ⇒ Object
215 216 217 218 219 220 221 |
# File 'lib/structish/validations.rb', line 215 def attribute_hash(key, klass = nil, kwargs = {}, block) { key: key, klass: klass, proc: block, }.merge(kwargs.except(:key, :klass, :proc)) end |
#attribute_keys ⇒ Object
183 184 185 |
# File 'lib/structish/validations.rb', line 183 def attribute_keys attributes.map { |attribute| attribute[:key] } end |
#attributes ⇒ Object
235 236 237 |
# File 'lib/structish/validations.rb', line 235 def attributes required_attributes + optional_attributes end |
#delegate(function, object) ⇒ Object
191 192 193 |
# File 'lib/structish/validations.rb', line 191 def delegate(function, object) delegations << [function, object] end |
#delegations ⇒ Object
239 240 241 |
# File 'lib/structish/validations.rb', line 239 def delegations @delegations ||= [] end |
#global_validations ⇒ Object
223 224 225 |
# File 'lib/structish/validations.rb', line 223 def global_validations @global_validations ||= [] end |
#optional_attributes ⇒ Object
231 232 233 |
# File 'lib/structish/validations.rb', line 231 def optional_attributes @optional_attributes ||= [] end |
#required_attributes ⇒ Object
227 228 229 |
# File 'lib/structish/validations.rb', line 227 def required_attributes @required_attributes ||= [] end |
#restrict? ⇒ Boolean
243 244 245 |
# File 'lib/structish/validations.rb', line 243 def restrict? @restrict_attributes end |
#restrict_attributes ⇒ Object
199 200 201 |
# File 'lib/structish/validations.rb', line 199 def restrict_attributes @restrict_attributes = true end |
#structish? ⇒ Boolean
187 188 189 |
# File 'lib/structish/validations.rb', line 187 def structish? true end |
#validate(key, klass = nil, kwargs = {}, &block) ⇒ Object
203 204 205 206 207 208 209 |
# File 'lib/structish/validations.rb', line 203 def validate(key, klass = nil, kwargs = {}, &block) accessor_name = kwargs[:alias_to] ? kwargs[:alias_to] : key accessor = accessor_name.to_s if (accessor_name.is_a?(String) || accessor_name.is_a?(Symbol)) attr_reader(accessor) if accessor attribute_array = kwargs[:optional] ? optional_attributes : required_attributes attribute_array << attribute_hash(key, klass, kwargs.merge(accessor: accessor), block) end |
#validate_all(klass = nil, kwargs = {}, &block) ⇒ Object
211 212 213 |
# File 'lib/structish/validations.rb', line 211 def validate_all(klass = nil, kwargs = {}, &block) global_validations << attribute_hash(nil, klass, kwargs, block) end |