module RSpec::AdvancedSubject::InstanceMethodExampleGroup

Public Class Methods

included(base) click to toggle source
Calls superclass method
# File lib/rspec-advanced_subject/instance_method_example_group.rb, line 13
def self.included(base)
  set_subject_method_proc(base.metadata)
  set_subject_method_name(base.metadata)

  base.subject do
    if metadata[:with_args].nil?
      super()
    else
      callee
    end
  end
end
instance_regex() click to toggle source
# File lib/rspec-advanced_subject/instance_method_example_group.rb, line 39
def self.instance_regex
  /^#/
end
set_subject_method_name(metadata) click to toggle source
# File lib/rspec-advanced_subject/instance_method_example_group.rb, line 34
def self.set_subject_method_name(metadata)
  d = metadata[:description_args].first
  metadata[:subject_method_name] = d.gsub instance_regex, ""
end
set_subject_method_proc(metadata) click to toggle source
# File lib/rspec-advanced_subject/instance_method_example_group.rb, line 26
def self.set_subject_method_proc(metadata)
  metadata[:subject_method_proc] = Proc.new do |x|
    x.send(
      subject_method_name, *subject_args
    )
  end
end

Public Instance Methods

callee() click to toggle source
# File lib/rspec-advanced_subject/instance_method_example_group.rb, line 43
def callee
  instance_exec parent_callee, &subject_method_proc
end
parent_callee() click to toggle source
# File lib/rspec-advanced_subject/instance_method_example_group.rb, line 47
def parent_callee
  instance_eval &subject_class_proc
end
subject_method_name() click to toggle source
# File lib/rspec-advanced_subject/instance_method_example_group.rb, line 55
def subject_method_name
  metadata[:subject_method_name]
end
subject_method_proc() click to toggle source
# File lib/rspec-advanced_subject/instance_method_example_group.rb, line 51
def subject_method_proc
  metadata[:subject_method_proc]
end