Module: Transpec::Syntax::Mixin::MonkeyPatch

Extended by:
ActiveSupport::Concern
Includes:
Send
Included in:
ExampleGroup, MonkeyPatchAnyInstance, Should
Defined in:
lib/transpec/syntax/mixin/monkey_patch.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 Send::TargetDetection

#conversion_target?, #dynamic_analysis_target?

Instance Method Details

#register_syntax_availability_analysis_request(rewriter, key, methods) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/transpec/syntax/mixin/monkey_patch.rb', line 13

def register_syntax_availability_analysis_request(rewriter, key, methods)
  code = "self.class.ancestors.any? { |a| a.name.start_with?('RSpec::') }"

  methods.each do |method|
    code << " && respond_to?(#{method.inspect})"
  end

  rewriter.register_request(node, key, code, :context)
end

#subject_nodeObject



31
32
33
# File 'lib/transpec/syntax/mixin/monkey_patch.rb', line 31

def subject_node
  receiver_node
end

#subject_rangeObject



35
36
37
# File 'lib/transpec/syntax/mixin/monkey_patch.rb', line 35

def subject_range
  receiver_range
end

#syntax_available?(key) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
# File 'lib/transpec/syntax/mixin/monkey_patch.rb', line 23

def syntax_available?(key)
  if runtime_data.present?(node, key)
    runtime_data[node, key]
  else
    static_context_inspector.send(key)
  end
end