Module: Transpec::Syntax::Mixin::ShouldBase

Extended by:
ActiveSupport::Concern
Includes:
HaveMatcherOwner, Send
Included in:
OnelinerShould, Should
Defined in:
lib/transpec/syntax/mixin/should_base.rb

Instance Method Summary collapse

Methods included from Send

#arg_node, #arg_nodes, #arg_range, #args_range, #method_name, #parentheses_range, #range_after_arg, #range_in_between_receiver_and_selector, #range_in_between_selector_and_arg, #receiver_node, #receiver_range, #selector_range

Methods included from HaveMatcherOwner

#have_matcher

Instance Method Details

#matcher_nodeObject



28
29
30
31
32
33
34
35
# File 'lib/transpec/syntax/mixin/should_base.rb', line 28

def matcher_node
  if arg_node
    Util.each_forward_chained_node(arg_node, :include_origin)
      .select(&:send_type?).to_a.last
  else
    parent_node
  end
end

#operator_matcherObject



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/transpec/syntax/mixin/should_base.rb', line 45

def operator_matcher
  return @operator_matcher if instance_variable_defined?(:@operator_matcher)

  @operator_matcher ||= begin
    if OperatorMatcher.conversion_target_node?(matcher_node, @runtime_data)
      create_operator_matcher
    else
      nil
    end
  end
end

#positive?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/transpec/syntax/mixin/should_base.rb', line 24

def positive?
  method_name == :should
end

#should_rangeObject



37
38
39
40
41
42
43
# File 'lib/transpec/syntax/mixin/should_base.rb', line 37

def should_range
  if arg_node
    selector_range
  else
    selector_range.join(expression_range.end)
  end
end