Module: Mimic
- Defined in:
- lib/mimic/void.rb,
lib/mimic/build.rb,
lib/mimic/class.rb,
lib/mimic/mimic.rb,
lib/mimic/recorder.rb,
lib/mimic/controls/mimic.rb,
lib/mimic/define_methods.rb,
lib/mimic/remove_methods.rb,
lib/mimic/subject_methods.rb,
lib/mimic/controls/subject.rb,
lib/mimic/controls/recorder.rb,
lib/mimic/preserved_methods.rb,
lib/mimic/controls/invocation.rb,
lib/mimic/predicates/method/parameters.rb,
lib/mimic/controls/subject/no_parameters.rb,
lib/mimic/controls/subject/block_parameter.rb,
lib/mimic/controls/subject/mixed_parameters.rb,
lib/mimic/controls/subject/keyword_parameters.rb,
lib/mimic/controls/subject/delegated_parameters.rb,
lib/mimic/controls/subject/positional_parameters.rb,
lib/mimic/controls/subject/optional_keyword_parameters.rb,
lib/mimic/controls/subject/multiple_assignment_parameter.rb,
lib/mimic/controls/subject/optional_positional_parameters.rb,
lib/mimic/controls/subject/multiple_assignment_named_parameter.rb
Defined Under Namespace
Modules: Build, Class, Controls, DefineMethods, Predicates, Recorder, RemoveMethods
Classes: Void
Class Method Summary
collapse
Class Method Details
.call(subject_class, record: nil, &blk) ⇒ Object
2
3
4
5
|
# File 'lib/mimic/mimic.rb', line 2
def self.call(subject_class, record: nil, &blk)
cls = Build.(subject_class, record: record, &blk)
cls.allocate
end
|
.preserved_methods ⇒ Object
2
3
4
|
# File 'lib/mimic/preserved_methods.rb', line 2
def self.preserved_methods
@preserved ||= (Object.instance_methods << :method_missing).sort
end
|
.subject_methods(cls) ⇒ Object
2
3
4
5
6
7
8
9
10
11
|
# File 'lib/mimic/subject_methods.rb', line 2
def self.subject_methods(cls)
instance_method_names = cls.instance_methods.sort
instance_method_names -= Mimic.preserved_methods
instance_methods = instance_method_names.map do |method_name|
cls.instance_method(method_name)
end
instance_methods
end
|