class Naught::NullClassBuilder::Commands::Mimic
Constants
- NULL_SINGLETON_CLASS
Attributes
class_to_mimic[R]
include_super[R]
singleton_class[R]
Public Class Methods
new(builder, class_to_mimic_or_options, options = {})
click to toggle source
Calls superclass method
Naught::NullClassBuilder::Command.new
# File lib/naught/null_class_builder/commands/mimic.rb, line 12 def initialize(builder, class_to_mimic_or_options, options = {}) super(builder) if class_to_mimic_or_options.is_a?(Hash) options = class_to_mimic_or_options.merge(options) instance = options.fetch(:example) @singleton_class = (class << instance; self; end) @class_to_mimic = instance.class else @singleton_class = NULL_SINGLETON_CLASS @class_to_mimic = class_to_mimic_or_options end @include_super = options.fetch(:include_super) { true } builder.base_class = root_class_of(@class_to_mimic) class_to_mimic = @class_to_mimic builder.inspect_proc = lambda { "<null:#{class_to_mimic}>" } builder.interface_defined = true end
Public Instance Methods
call()
click to toggle source
# File lib/naught/null_class_builder/commands/mimic.rb, line 32 def call defer do |subject| methods_to_stub.each do |method_name| builder.stub_method(subject, method_name) end end end
Private Instance Methods
methods_to_stub()
click to toggle source
# File lib/naught/null_class_builder/commands/mimic.rb, line 46 def methods_to_stub methods_to_mimic = class_to_mimic.instance_methods(include_super) | singleton_class.instance_methods(false) methods_to_mimic - Object.instance_methods end
root_class_of(klass)
click to toggle source
# File lib/naught/null_class_builder/commands/mimic.rb, line 42 def root_class_of(klass) klass.ancestors.include?(Object) ? Object : Naught::BasicObject end