Sha256: db8b23a0cb073025831247eddb05ece2d6d9dd809b4737d4dce8863d1e6a1cc4
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
require 'ae_easy/core/mock/fake_db' require 'ae_easy/core/mock/fake_executor' require 'ae_easy/core/mock/fake_parser' require 'ae_easy/core/mock/fake_seeder' require 'ae_easy/core/mock/fake_finisher' module AeEasy module Core module Mock # Generate a context and message queue from a list of exposed methods. # # @param [Array] exposed_methods List of exposed methods. # # @example # exposed_methods = [:boo, :bar] # context, message_queue = AeEasy::Core::Mock.context_vars exposed_methods # context.boo 1, 2 # context.bar 'A', 'B' # context.bar '111', '222' # message_queue # # => [ # # [:boo, [1, 2]], # # [:bar, ['A', 'B']], # # [:bar, ['111', '222']] # # ] # # @return [Array] `[context, message_queue]` being: # * `context`: Object implementing exposed methods. # * `[Array] message_queue`: Array to store messages. def self.context_vars exposed_methods context = Object.new metaclass = class << context; self; end message_queue = [] # Beat reference bug exposed_methods = exposed_methods exposed_methods.each do |key| metaclass.send(:define_method, key) do |*args| # Record all method calls into message queue for easy access message_queue << [key, args] end end [context, message_queue] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ae_easy-core-0.2.0 | lib/ae_easy/core/mock.rb |