Class: FixtureBuilder::Configuration
- Inherits:
-
Object
- Object
- FixtureBuilder::Configuration
- Includes:
- Delegations::Namer
- Defined in:
- lib/fixture_builder/configuration.rb
Constant Summary collapse
- ACCESSIBLE_ATTRIBUTES =
[:select_sql, :delete_sql, :skip_tables, :files_to_check, :record_name_fields, :fixture_builder_file, :fixture_directory, :after_build, :legacy_fixtures, :model_name_procs]
- SCHEMA_FILES =
['db/schema.rb', 'db/development_structure.sql', 'db/test_structure.sql', 'db/production_structure.sql']
Instance Method Summary collapse
- #delete_sql ⇒ Object
- #factory(&block) ⇒ Object
- #files_to_check ⇒ Object
- #files_to_check=(files) ⇒ Object
- #fixture_builder_file ⇒ Object
- #fixture_directory ⇒ Object
- #fixtures_dir(path = '') ⇒ Object
- #include(*args) ⇒ Object
-
#initialize(opts = {}) ⇒ Configuration
constructor
A new instance of Configuration.
- #name_model_with(model_class, &block) ⇒ Object
- #record_name_fields ⇒ Object
- #schema_definition_files ⇒ Object
- #select_sql ⇒ Object
- #skip_tables ⇒ Object
- #tables ⇒ Object
Methods included from Delegations::Namer
Constructor Details
#initialize(opts = {}) ⇒ Configuration
Returns a new instance of Configuration.
16 17 18 19 |
# File 'lib/fixture_builder/configuration.rb', line 16 def initialize(opts={}) @namer = Namer.new(self) @file_hashes = file_hashes end |
Instance Method Details
#delete_sql ⇒ Object
40 41 42 |
# File 'lib/fixture_builder/configuration.rb', line 40 def delete_sql @delete_sql ||= "DELETE FROM %s" end |
#factory(&block) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/fixture_builder/configuration.rb', line 29 def factory(&block) self.files_to_check += @legacy_fixtures.to_a return unless rebuild_fixtures? @builder = Builder.new(self, @namer, block).generate! write_config end |
#files_to_check ⇒ Object
48 49 50 |
# File 'lib/fixture_builder/configuration.rb', line 48 def files_to_check @files_to_check ||= schema_definition_files end |
#files_to_check=(files) ⇒ Object
59 60 61 62 63 |
# File 'lib/fixture_builder/configuration.rb', line 59 def files_to_check=(files) @files_to_check = files @file_hashes = file_hashes @files_to_check end |
#fixture_builder_file ⇒ Object
69 70 71 |
# File 'lib/fixture_builder/configuration.rb', line 69 def fixture_builder_file @fixture_builder_file ||= ::Rails.root.join('tmp', 'fixture_builder.yml') end |
#fixture_directory ⇒ Object
81 82 83 |
# File 'lib/fixture_builder/configuration.rb', line 81 def fixture_directory @fixture_directory ||= File.(File.join(::Rails.root, spec_or_test_dir, 'fixtures')) end |
#fixtures_dir(path = '') ⇒ Object
85 86 87 |
# File 'lib/fixture_builder/configuration.rb', line 85 def fixtures_dir(path = '') File.(File.join(fixture_directory, path)) end |
#include(*args) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/fixture_builder/configuration.rb', line 21 def include(*args) class_eval do args.each do |arg| include arg end end end |
#name_model_with(model_class, &block) ⇒ Object
73 74 75 |
# File 'lib/fixture_builder/configuration.rb', line 73 def name_model_with(model_class, &block) @namer.name_model_with(model_class, &block) end |
#record_name_fields ⇒ Object
65 66 67 |
# File 'lib/fixture_builder/configuration.rb', line 65 def record_name_fields @record_name_fields ||= %w{ unique_name display_name name title username login } end |
#schema_definition_files ⇒ Object
52 53 54 55 56 57 |
# File 'lib/fixture_builder/configuration.rb', line 52 def schema_definition_files Dir['db/*'].inject([]) do |result, file| result << file if SCHEMA_FILES.include?(file) result end end |
#select_sql ⇒ Object
36 37 38 |
# File 'lib/fixture_builder/configuration.rb', line 36 def select_sql @select_sql ||= "SELECT * FROM %s" end |
#skip_tables ⇒ Object
44 45 46 |
# File 'lib/fixture_builder/configuration.rb', line 44 def skip_tables @skip_tables ||= %w{ schema_migrations } end |
#tables ⇒ Object
77 78 79 |
# File 'lib/fixture_builder/configuration.rb', line 77 def tables ActiveRecord::Base.connection.tables - skip_tables end |