module Mimic

Public Class Methods

call(subject_class, record: nil, &blk) click to toggle source
# 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() click to toggle source
# File lib/mimic/preserved_methods.rb, line 2
def self.preserved_methods
  @preserved ||= (Object.instance_methods << :method_missing).sort
end
subject_methods(cls) click to toggle source
# 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