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
22
23
24
|
# 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 ⇒ Object
39
40
41
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 39
def self.instance_regex
/^#/
end
|
.set_subject_method_name(metadata) ⇒ Object
34
35
36
37
|
# 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) ⇒ Object
26
27
28
29
30
31
32
|
# 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
|
Instance Method Details
#callee ⇒ Object
43
44
45
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 43
def callee
instance_exec parent_callee, &subject_method_proc
end
|
#parent_callee ⇒ Object
47
48
49
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 47
def parent_callee
instance_eval &subject_class_proc
end
|
#subject_method_name ⇒ Object
55
56
57
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 55
def subject_method_name
metadata[:subject_method_name]
end
|
#subject_method_proc ⇒ Object
51
52
53
|
# File 'lib/rspec-advanced_subject/instance_method_example_group.rb', line 51
def subject_method_proc
metadata[:subject_method_proc]
end
|