Class: Operandi::RSpec::Matchers::DefineStepsMatcher

Inherits:
Object
  • Object
show all
Defined in:
lib/operandi/rspec/matchers/define_step.rb

Instance Method Summary collapse

Constructor Details

#initialize(names, ordered:) ⇒ DefineStepsMatcher

Returns a new instance of DefineStepsMatcher.



142
143
144
145
# File 'lib/operandi/rspec/matchers/define_step.rb', line 142

def initialize(names, ordered:)
  @names = names
  @ordered = ordered
end

Instance Method Details

#descriptionObject



174
175
176
177
178
179
180
# File 'lib/operandi/rspec/matchers/define_step.rb', line 174

def description
  if @ordered
    "define steps #{@names.inspect} in order"
  else
    "define steps #{@names.inspect}"
  end
end

#failure_messageObject



159
160
161
162
163
164
# File 'lib/operandi/rspec/matchers/define_step.rb', line 159

def failure_message
  return missing_steps_failure_message unless all_steps_defined?
  return order_failure_message unless order_matches?

  ""
end

#failure_message_when_negatedObject



166
167
168
169
170
171
172
# File 'lib/operandi/rspec/matchers/define_step.rb', line 166

def failure_message_when_negated
  if @ordered
    "expected #{@actual_class} not to define steps #{@names.inspect} in that order"
  else
    "expected #{@actual_class} not to define steps #{@names.inspect}"
  end
end

#matches?(service_class) ⇒ Boolean

Returns:

  • (Boolean)


147
148
149
150
151
152
153
154
155
156
157
# File 'lib/operandi/rspec/matchers/define_step.rb', line 147

def matches?(service_class)
  @service_class = service_class
  @actual_class = service_class.is_a?(Class) ? service_class : service_class.class
  @missing_steps = []
  @actual_order = []

  return false unless all_steps_defined?
  return false unless order_matches?

  true
end