class DomainModel::Validation
Public Class Methods
new(*args, &block)
click to toggle source
# File lib/domain_model.rb, line 260 def initialize(*args, &block) @field_name = args[0] if args[0].is_a?(Symbol) @options = args[0] if args[0].is_a?(Hash) @options = args[1] if args[1].is_a?(Hash) @options = {} if @options.nil? @block = block end
Public Instance Methods
always?()
click to toggle source
# File lib/domain_model.rb, line 290 def always? @options.fetch(:always, global?) end
execute(model, errors)
click to toggle source
# File lib/domain_model.rb, line 269 def execute(model, errors) if global? if always? or errors.empty? model.instance_exec(errors, &@block) end else field = model.class.fields.find { |f| f.name == @field_name} raise("No field called #{@field_name}") if field.nil? field_errors = FieldErrors.new(errors, field) if always? or field_errors.empty? model.instance_exec(field_errors, &@block) end end end
global?()
click to toggle source
# File lib/domain_model.rb, line 286 def global? @field_name.nil? end