Module: FactoryBot::Preload
- Defined in:
- lib/factory_bot/preload.rb,
lib/factory_bot/preload/helpers.rb,
lib/factory_bot/preload/version.rb,
lib/factory_bot/preload/minitest.rb
Defined Under Namespace
Modules: Helpers, MinitestSetup, Version
Class Attribute Summary collapse
-
.clean_with ⇒ Object
Returns the value of attribute clean_with.
-
.default_helper_name ⇒ Object
Returns the value of attribute default_helper_name.
-
.factories ⇒ Object
Returns the value of attribute factories.
-
.helper_name ⇒ Object
Returns the value of attribute helper_name.
-
.preloaders ⇒ Object
Returns the value of attribute preloaders.
-
.record_ids ⇒ Object
Returns the value of attribute record_ids.
-
.reserved_tables ⇒ Object
Returns the value of attribute reserved_tables.
Class Method Summary collapse
- .active_record ⇒ Object
- .active_record_names ⇒ Object
- .clean(*names) ⇒ Object
- .connection ⇒ Object
- .minitest ⇒ Object
- .reload_factories ⇒ Object
- .run ⇒ Object
- .try_truncation_query ⇒ Object
Class Attribute Details
.clean_with ⇒ Object
Returns the value of attribute clean_with.
9 10 11 |
# File 'lib/factory_bot/preload.rb', line 9 def clean_with @clean_with end |
.default_helper_name ⇒ Object
Returns the value of attribute default_helper_name.
9 10 11 |
# File 'lib/factory_bot/preload.rb', line 9 def default_helper_name @default_helper_name end |
.factories ⇒ Object
Returns the value of attribute factories.
9 10 11 |
# File 'lib/factory_bot/preload.rb', line 9 def factories @factories end |
.helper_name ⇒ Object
Returns the value of attribute helper_name.
9 10 11 |
# File 'lib/factory_bot/preload.rb', line 9 def helper_name @helper_name end |
.preloaders ⇒ Object
Returns the value of attribute preloaders.
9 10 11 |
# File 'lib/factory_bot/preload.rb', line 9 def preloaders @preloaders end |
.record_ids ⇒ Object
Returns the value of attribute record_ids.
9 10 11 |
# File 'lib/factory_bot/preload.rb', line 9 def record_ids @record_ids end |
.reserved_tables ⇒ Object
Returns the value of attribute reserved_tables.
9 10 11 |
# File 'lib/factory_bot/preload.rb', line 9 def reserved_tables @reserved_tables end |
Class Method Details
.active_record ⇒ Object
35 36 37 |
# File 'lib/factory_bot/preload.rb', line 35 def self.active_record ActiveRecord::Base end |
.active_record_names ⇒ Object
72 73 74 |
# File 'lib/factory_bot/preload.rb', line 72 def self.active_record_names connection.tables.reject {|name| reserved_tables.include?(name) } end |
.clean(*names) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/factory_bot/preload.rb', line 53 def self.clean(*names) query = case clean_with when :truncation try_truncation_query when :deletion "DELETE FROM %s" else raise "Couldn't find #{clean_with} clean type" end names = active_record_names if names.empty? connection.disable_referential_integrity do names.each do |table| connection.execute(query % connection.quote_table_name(table)) end end end |
.connection ⇒ Object
39 40 41 |
# File 'lib/factory_bot/preload.rb', line 39 def self.connection active_record.connection end |
.minitest ⇒ Object
8 9 10 11 12 |
# File 'lib/factory_bot/preload/minitest.rb', line 8 def self.minitest FactoryBot::Preload::Helpers.load_models FactoryBot::Preload.clean FactoryBot::Preload.run end |
.reload_factories ⇒ Object
76 77 78 79 80 81 82 |
# File 'lib/factory_bot/preload.rb', line 76 def self.reload_factories factories.each do |class_name, group| group.each do |name, _factory| factories[class_name][name] = nil end end end |
.run ⇒ Object
43 44 45 46 47 48 49 50 51 |
# File 'lib/factory_bot/preload.rb', line 43 def self.run helper = Object.new.extend(Helpers) connection.transaction requires_new: true do preloaders.each do |block| helper.instance_eval(&block) end end end |
.try_truncation_query ⇒ Object
84 85 86 87 88 89 90 91 92 93 |
# File 'lib/factory_bot/preload.rb', line 84 def self.try_truncation_query case connection.adapter_name when "SQLite" "DELETE FROM %s" when "PostgreSQL" "TRUNCATE TABLE %s RESTART IDENTITY CASCADE" else "TRUNCATE TABLE %s" end end |