module ActiveMocker::MockCreator::Scopes
Constants
- Method
Public Instance Methods
ast_scopes()
click to toggle source
# File lib/active_mocker/mock_creator/scopes.rb, line 32 def ast_scopes @ast_scopes ||= class_introspector .parsed_source .class_begin .children .select { |n| n.try(:type) == :send && n.try { children[1] == :scope } } end
find_scope_body_from_ast(name)
click to toggle source
# File lib/active_mocker/mock_creator/scopes.rb, line 40 def find_scope_body_from_ast(name) scope = ast_scopes.detect { |n| n.children[2].children.first == name } DissociatedIntrospection::RubyCode.build_from_ast(scope.children[3].children[2]).source end
scope_body(_arguments, name)
click to toggle source
# File lib/active_mocker/mock_creator/scopes.rb, line 18 def scope_body(_arguments, name) if safe_method?(:scope, name) find_scope_body_from_ast(name) else <<-METHOD __am_raise_not_mocked_error( method: "#{name}", caller: Kernel.caller, type: "::" ) METHOD end end
scope_methods()
click to toggle source
# File lib/active_mocker/mock_creator/scopes.rb, line 9 def scope_methods class_introspector.class_macros.select { |h| h.keys.first == :scope }.map do |h| name, args = h.values.first.first arguments = ReverseParameters.new(args) body = scope_body(arguments, name) Method.new(name, arguments, body) end end