Module: WorkflowTemplate::Definer::HasValidations

Included in:
Workflow::ModuleMethods
Defined in:
lib/workflow_template/definer/has_validations.rb,
lib/workflow_template/definer/has_validations/action.rb,
lib/workflow_template/definer/has_validations/description.rb,
lib/workflow_template/definer/has_validations/validations.rb

Defined Under Namespace

Modules: Description, Validations Classes: Action

Instance Method Summary collapse

Instance Method Details

#declare_validation(name = nil, using: default_validation_adapter) ⇒ Object



25
26
27
28
29
30
# File 'lib/workflow_template/definer/has_validations.rb', line 25

def declare_validation(name = nil, using: default_validation_adapter)
  adapter = Validation::Adapter.fetch(using)

  Validation::Builder::Proxy
    .instance(adapter, own_validations, name: name)
end

#default_validation_adapter(*args) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/workflow_template/definer/has_validations.rb', line 11

def default_validation_adapter(*args)
  case args.length
  when 0
    return @default_validation_adapter if defined? @default_validation_adapter
    if defined?(superclass) && superclass.respond_to?(:default_validation_adapter)
      return superclass.default_validation_adapter
    end

    :default
  when 1 then @default_validation_adapter = args[0]
  else raise Error, "Unexpected arguments for default validation adapter: '#{args}'"
  end
end

#freezeObject



40
41
42
43
44
45
46
47
48
# File 'lib/workflow_template/definer/has_validations.rb', line 40

def freeze
  unless frozen?
    @default_validation_adapter = default_validation_adapter
    @validations = validations.resolved
    @own_validations = nil
  end

  super
end

#validate_input(keys) ⇒ Object



32
33
34
# File 'lib/workflow_template/definer/has_validations.rb', line 32

def validate_input(keys)
  own_validations.validate_input(keys)
end

#validate_output(keys) ⇒ Object



36
37
38
# File 'lib/workflow_template/definer/has_validations.rb', line 36

def validate_output(keys)
  own_validations.validate_output(keys)
end