Module: SimpleCrud::RSpec::Helpers::Settings
- Included in:
- SimpleCrud::RSpec::Helpers
- Defined in:
- lib/simple_crud/rspec/helpers/settings.rb
Overview
Settings resolution: simple_crud: example-group metadata first,
falling back to the app-wide SimpleCrud::RSpec::Config singleton.
Instance Method Summary collapse
- #config ⇒ Object
- #created_record_check ⇒ Object
- #resolve(value) ⇒ Object
- #setting(name) ⇒ Object
- #simple_crud_settings ⇒ Object
-
#with_config_override(setting, value) ⇒ Object
Runs the block with a config setting temporarily overridden, restoring the original value afterwards (even if the block raises).
Instance Method Details
#config ⇒ Object
9 10 11 |
# File 'lib/simple_crud/rspec/helpers/settings.rb', line 9 def config SimpleCrud::RSpec::Config.instance end |
#created_record_check ⇒ Object
31 32 33 |
# File 'lib/simple_crud/rspec/helpers/settings.rb', line 31 def created_record_check setting(:created_record_check) end |
#resolve(value) ⇒ Object
22 23 24 |
# File 'lib/simple_crud/rspec/helpers/settings.rb', line 22 def resolve(value) value.is_a?(Proc) ? instance_exec(&value) : value end |
#setting(name) ⇒ Object
18 19 20 |
# File 'lib/simple_crud/rspec/helpers/settings.rb', line 18 def setting(name) simple_crud_settings.fetch(name) { config.public_send(name) } end |
#simple_crud_settings ⇒ Object
13 14 15 16 |
# File 'lib/simple_crud/rspec/helpers/settings.rb', line 13 def simple_crud_settings source = ::RSpec.current_example ? ::RSpec.current_example. : source[:simple_crud] || {} end |
#with_config_override(setting, value) ⇒ Object
Runs the block with a config setting temporarily overridden, restoring the original value afterwards (even if the block raises). Useful when a controller's spec needs a different setting than the app-wide default.
38 39 40 41 42 43 44 45 |
# File 'lib/simple_crud/rspec/helpers/settings.rb', line 38 def with_config_override(setting, value) config_instance = SimpleCrud::RSpec::Config.instance original = config_instance.public_send(setting) SimpleCrud::RSpec.configure { |c| c.public_send("#{setting}=", value) } yield ensure SimpleCrud::RSpec.configure { |c| c.public_send("#{setting}=", original) } end |