Module: RSpec::AdvancedSubject::InstanceMethodExampleGroup
Class Method Summary
collapse
Instance Method Summary
collapse
descriptee
#metadata, #subject_args, #subject_class_proc
Class Method Details
.included(base) ⇒ Object
13
14
15
16
17
18
19
20
21
|
# 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
raise NotImplementedError if metadata[:with_args].nil?
callee
end
end
|
.instance_regex ⇒ Object
40
41
42
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 40
def self.instance_regex
/^#/
end
|
.set_subject_method_name(metadata) ⇒ Object
31
32
33
34
35
36
37
38
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 31
def self.set_subject_method_name(metadata)
case d = metadata[:example_group][:description_args].first
when is_a?(Class)
metadata[:subject_method_name] = d
when instance_regex
metadata[:subject_method_name] = d.gsub instance_regex, ""
end
end
|
.set_subject_method_proc(metadata) ⇒ Object
23
24
25
26
27
28
29
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 23
def self.set_subject_method_proc(metadata)
metadata[:subject_method_proc] = Proc.new do |x|
x.send(
subject_method_name, *subject_args
)
end
end
|
Instance Method Details
#callee ⇒ Object
44
45
46
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 44
def callee
instance_exec parent_callee, &subject_method_proc
end
|
#parent_callee ⇒ Object
48
49
50
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 48
def parent_callee
instance_eval &subject_class_proc
end
|
#subject_method_name ⇒ Object
56
57
58
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 56
def subject_method_name
metadata[:subject_method_name]
end
|
#subject_method_proc ⇒ Object
52
53
54
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 52
def subject_method_proc
metadata[:subject_method_proc]
end
|