Module: RSpec::AdvancedSubject::ClassMethodExampleGroup
Class Method Summary
collapse
Instance Method Summary
collapse
descriptee
#metadata, #subject_args, #subject_class_proc
Class Method Details
.class_regex ⇒ Object
36
37
38
|
# File 'lib/rspec-advanced_subject/class_method_example_group.rb', line 36
def self.class_regex
/^\./
end
|
.included(base) ⇒ Object
12
13
14
15
16
17
18
19
20
|
# File 'lib/rspec-advanced_subject/class_method_example_group.rb', line 12
def self.included(base)
set_subject_proc(base.metadata)
set_subject_method_name(base.metadata)
base.subject do
raise NotImplementedError if metadata[:with_args].nil?
instance_eval &subject_proc
end
end
|
.set_subject_method_name(metadata) ⇒ Object
31
32
33
34
|
# File 'lib/rspec-advanced_subject/class_method_example_group.rb', line 31
def self.set_subject_method_name(metadata)
d = metadata[:description_args].first
metadata[:subject_method_name] = d.gsub class_regex, ""
end
|
.set_subject_proc(metadata) ⇒ Object
22
23
24
25
26
27
28
29
|
# File 'lib/rspec-advanced_subject/class_method_example_group.rb', line 22
def self.set_subject_proc(metadata)
metadata[:subject_proc] = proc do |x|
described_class.send(
subject_method_name,
*subject_args
)
end
end
|
Instance Method Details
#subject_method_name ⇒ Object
44
45
46
|
# File 'lib/rspec-advanced_subject/class_method_example_group.rb', line 44
def subject_method_name
metadata[:subject_method_name]
end
|
#subject_proc ⇒ Object
40
41
42
|
# File 'lib/rspec-advanced_subject/class_method_example_group.rb', line 40
def subject_proc
metadata[:subject_proc]
end
|