Class: Dry::Logic::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/dry/logic/result.rb

Direct Known Subclasses

Multi, Value

Defined Under Namespace

Classes: Each, Multi, Named, Set, Value

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response, rule, input) ⇒ Result

Returns a new instance of Result.



21
22
23
24
25
26
# File 'lib/dry/logic/result.rb', line 21

def initialize(response, rule, input)
  @response = response
  @success = response.respond_to?(:success?) ? response.success? : response
  @rule = rule
  @input = input
end

Instance Attribute Details

#inputObject (readonly)

Returns the value of attribute input.



10
11
12
# File 'lib/dry/logic/result.rb', line 10

def input
  @input
end

#responseObject (readonly)

Returns the value of attribute response.



10
11
12
# File 'lib/dry/logic/result.rb', line 10

def response
  @response
end

#ruleObject (readonly)

Returns the value of attribute rule.



10
11
12
# File 'lib/dry/logic/result.rb', line 10

def rule
  @rule
end

#successObject (readonly)

Returns the value of attribute success.



10
11
12
# File 'lib/dry/logic/result.rb', line 10

def success
  @success
end

Class Method Details

.[](type) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/dry/logic/result.rb', line 12

def self.[](type)
  case type
  when Rule::Each then Result::Each
  when Rule::Set then Result::Set
  when Rule::Key, Rule::Attr, Rule::Check then Result::Named
  else Result::Value
  end
end

Instance Method Details

#[](name) ⇒ Object



28
29
30
# File 'lib/dry/logic/result.rb', line 28

def [](name)
  response[name] if response.respond_to?(:[])
end

#failure?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/dry/logic/result.rb', line 44

def failure?
  !success?
end

#nameObject



32
33
34
# File 'lib/dry/logic/result.rb', line 32

def name
  nil
end

#negatedObject



36
37
38
# File 'lib/dry/logic/result.rb', line 36

def negated
  self.class.new(!success, rule, input)
end

#success?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/dry/logic/result.rb', line 40

def success?
  @success
end