Module: Structish::Validations::ClassMethods

Defined in:
lib/structish/validations.rb

Instance Method Summary collapse

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_keysObject



183
184
185
# File 'lib/structish/validations.rb', line 183

def attribute_keys
  attributes.map { |attribute| attribute[:key] }
end

#attributesObject



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

#delegationsObject



239
240
241
# File 'lib/structish/validations.rb', line 239

def delegations
  @delegations ||= []
end

#global_validationsObject



223
224
225
# File 'lib/structish/validations.rb', line 223

def global_validations
  @global_validations ||= []
end

#optional_attributesObject



231
232
233
# File 'lib/structish/validations.rb', line 231

def optional_attributes
  @optional_attributes ||= []
end

#required_attributesObject



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_attributesObject



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