Module: SimpleCrud::RSpec::Helpers::Models
- Included in:
- SimpleCrud::RSpec::Helpers
- Defined in:
- lib/simple_crud/rspec/helpers/models.rb
Overview
Building the record under test and the params used to persist it.
Instance Method Summary collapse
- #create_record(klass, attributes) ⇒ Object
- #create_records(klass, count, attributes) ⇒ Object
- #model ⇒ Object
- #model_attributes ⇒ Object
- #model_class ⇒ Object
- #model_class_object ⇒ Object
- #model_params ⇒ Object
- #model_serializer ⇒ Object
- #params_for(klass) ⇒ Object
- #rendered_record ⇒ Object
- #rendered_records ⇒ Object
- #validate_owner_association! ⇒ Object
Instance Method Details
#create_record(klass, attributes) ⇒ Object
40 41 42 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 40 def create_record(klass, attributes) instance_exec(klass, attributes, &setting(:create_record)) end |
#create_records(klass, count, attributes) ⇒ Object
44 45 46 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 44 def create_records(klass, count, attributes) instance_exec(klass, count, attributes, &setting(:create_records)) end |
#model ⇒ Object
17 18 19 20 21 22 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 17 def model @model ||= begin validate_owner_association! create_record(model_class, model_attributes) end end |
#model_attributes ⇒ Object
36 37 38 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 36 def model_attributes resolve(setting(:model_attributes)) end |
#model_class ⇒ Object
8 9 10 11 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 8 def model_class described_class.to_s.split('::') .last.sub('Controller', '').singularize.underscore end |
#model_class_object ⇒ Object
13 14 15 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 13 def model_class_object model_class.classify.constantize end |
#model_params ⇒ Object
52 53 54 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 52 def model_params @model_params ||= params_for(model_class) end |
#model_serializer ⇒ Object
56 57 58 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 56 def model_serializer defined?(serializer) ? serializer : instance_exec(model, &setting(:serializer_class)) end |
#params_for(klass) ⇒ Object
48 49 50 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 48 def params_for(klass) instance_exec(klass, &setting(:params_for)) end |
#rendered_record ⇒ Object
60 61 62 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 60 def rendered_record controller.instance_variable_get(:@record) end |
#rendered_records ⇒ Object
64 65 66 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 64 def rendered_records controller.instance_variable_get(:@records) end |
#validate_owner_association! ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/simple_crud/rspec/helpers/models.rb', line 24 def validate_owner_association! assoc = owner_association return unless assoc klass = model_class_object return if klass.method_defined?("#{assoc}=") || klass.column_names.include?(assoc.to_s) raise "simple_crud: owner_association is :#{assoc} but #{klass} has no #{assoc}= setter. " \ 'Set `simple_crud: { owner_association: nil }` in your describe block or ' \ 'override model_attributes directly.' end |