Class: ConvenientService::Service::Plugins::CanHaveConnectedSteps::Entities::Expressions::Or

Inherits:
Base
  • Object
show all
Defined in:
lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#and?, #empty?, #group?, #not?, #scalar?, #steps

Methods included from ConvenientService::Support::Copyable

#copy

Methods included from ConvenientService::Support::Concern

included

Constructor Details

#initialize(left_expression, right_expression) ⇒ void

Parameters:



27
28
29
30
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 27

def initialize(left_expression, right_expression)
  @left_expression = left_expression
  @right_expression = right_expression
end

Instance Attribute Details

#left_expressionObject (readonly)

Returns the value of attribute left_expression.



14
15
16
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 14

def left_expression
  @left_expression
end

#right_expressionObject (readonly)

Returns the value of attribute right_expression.



20
21
22
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 20

def right_expression
  @right_expression
end

Instance Method Details

#==(other) ⇒ Boolean

Parameters:

  • other (Object)

    Can be any type.

Returns:

  • (Boolean)


124
125
126
127
128
129
130
131
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 124

def ==(other)
  return unless other.instance_of?(self.class)

  return false if left_expression != other.left_expression
  return false if right_expression != other.right_expression

  true
end

#each_evaluated_step(&block) ⇒ ConvenientService::Service::Plugins::CanHaveConnectedSteps::Entities::Expressions::Base



87
88
89
90
91
92
93
94
95
96
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 87

def each_evaluated_step(&block)
  left_expression.each_evaluated_step(&block)

  return self if left_expression.success?
  return self if left_expression.error?

  right_expression.each_evaluated_step(&block)

  self
end

#each_step(&block) ⇒ ConvenientService::Service::Plugins::CanHaveConnectedSteps::Entities::Expressions::Base



76
77
78
79
80
81
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 76

def each_step(&block)
  left_expression.each_step(&block)
  right_expression.each_step(&block)

  self
end

#error?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 68

def error?
  left_expression.error? || right_expression.error?
end

#failure?Boolean

Returns:

  • (Boolean)


58
59
60
61
62
63
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 58

def failure?
  return false if left_expression.success?
  return false if left_expression.error?

  right_expression.failure?
end

#inspectString

Returns:

  • (String)


109
110
111
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 109

def inspect
  "#{left_expression.inspect} || #{right_expression.inspect}"
end

#or?Boolean

Returns:

  • (Boolean)


116
117
118
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 116

def or?
  true
end

#resultConvenientService::Service::Plugins::HasJSendResult::Entities::Result



35
36
37
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 35

def result
  left_expression.success? ? left_expression.result : right_expression.result
end

#success?Boolean

Returns:

  • (Boolean)


45
46
47
48
49
50
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 45

def success?
  return true if left_expression.success?
  return false if left_expression.error?

  right_expression.success?
end

#to_argumentsConvenientService::Support::Arguments



136
137
138
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 136

def to_arguments
  Support::Arguments.new(left_expression, right_expression)
end

#with_organizer(organizer) ⇒ ConvenientService::Service::Plugins::CanHaveConnectedSteps::Entities::Expressions::Not



102
103
104
# File 'lib/convenient_service/service/plugins/can_have_connected_steps/entities/expressions/or.rb', line 102

def with_organizer(organizer)
  copy(overrides: {args: {0 => left_expression.with_organizer(organizer), 1 => right_expression.with_organizer(organizer)}})
end