module Transpec::Syntax::Mixin::NoMessageAllowance
Public Instance Methods
allow_no_message?()
click to toggle source
# File lib/transpec/syntax/mixin/no_message_allowance.rb, line 15 def allow_no_message? any_number_of_times? || at_least_zero? end
any_number_of_times?()
click to toggle source
# File lib/transpec/syntax/mixin/no_message_allowance.rb, line 24 def any_number_of_times? any_number_of_times_node end
at_least_zero?()
click to toggle source
# File lib/transpec/syntax/mixin/no_message_allowance.rb, line 28 def at_least_zero? at_least_zero_node end
remove_no_message_allowance!()
click to toggle source
# File lib/transpec/syntax/mixin/no_message_allowance.rb, line 19 def remove_no_message_allowance! remove_any_number_of_times! remove_at_least_zero! end
Private Instance Methods
any_number_of_times_node()
click to toggle source
# File lib/transpec/syntax/mixin/no_message_allowance.rb, line 50 def any_number_of_times_node Util.each_backward_chained_node(node) do |chained_node| method_name = chained_node.children[1] return chained_node if method_name == :any_number_of_times end end
at_least_zero_node()
click to toggle source
# File lib/transpec/syntax/mixin/no_message_allowance.rb, line 57 def at_least_zero_node Util.each_backward_chained_node(node) do |chained_node| _, method_name, arg_node = *chained_node next unless method_name == :at_least return chained_node if arg_node == s(:int, 0) end end
remove_any_number_of_times!()
click to toggle source
# File lib/transpec/syntax/mixin/no_message_allowance.rb, line 34 def remove_any_number_of_times! return unless any_number_of_times? remove_dot_and_method!(any_number_of_times_node) end
remove_at_least_zero!()
click to toggle source
# File lib/transpec/syntax/mixin/no_message_allowance.rb, line 39 def remove_at_least_zero! return unless at_least_zero? remove_dot_and_method!(at_least_zero_node) end
remove_dot_and_method!(send_node)
click to toggle source
# File lib/transpec/syntax/mixin/no_message_allowance.rb, line 44 def remove_dot_and_method!(send_node) map = send_node.loc dot_and_method_range = map.dot.join(map.expression.end) remove(dot_and_method_range) end