module RSpec::AdvancedSubject::ClassExampleGroup
Public Class Methods
included(base)
click to toggle source
# File lib/rspec-advanced_subject/class_example_group.rb, line 16 def self.included(base) set_subject_class_proc(base.metadata) set_initialization_args(base.metadata) base.subject do instance_eval &subject_class_proc end end
set_initialization_args(metadata)
click to toggle source
# File lib/rspec-advanced_subject/class_example_group.rb, line 31 def self.set_initialization_args(metadata) metadata[:initialization_args] = metadata.fetch(:with_args,[]) end
set_subject_class_proc(metadata)
click to toggle source
# File lib/rspec-advanced_subject/class_example_group.rb, line 25 def self.set_subject_class_proc(metadata) metadata[:subject_class_proc] ||= proc do |x| described_class.new(*initialization_args) end end
Public Instance Methods
initialization_args()
click to toggle source
# File lib/rspec-advanced_subject/class_example_group.rb, line 39 def initialization_args metadata.fetch(:initialization_args, Array.new) end
subject_class_proc()
click to toggle source
# File lib/rspec-advanced_subject/class_example_group.rb, line 35 def subject_class_proc metadata[:subject_class_proc] end