Module: DynamicActiveModel::Setup::ClassMethods
- Defined in:
- lib/dynamic-active-model/setup.rb
Overview
ClassMethods various class methods for configuring a module
Instance Method Summary collapse
- #connection_options(options = nil) ⇒ Object
- #create_models! ⇒ Object
- #database ⇒ Object
- #dynamic_active_model_config ⇒ Object
- #extensions_path(path = nil) ⇒ Object
- #extensions_suffix(suffix = nil) ⇒ Object
- #foreign_key(table_name, foreign_key, relationship_name) ⇒ Object
- #relationships(all_relationships = nil) ⇒ Object
- #skip_table(table) ⇒ Object
- #skip_tables(tables = nil) ⇒ Object
Instance Method Details
#connection_options(options = nil) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/dynamic-active-model/setup.rb', line 29 def ( = nil) if .is_a?(String) name = = ActiveRecord::Base .configurations .configs_for( env_name: Rails.env, name: name ) .configuration_hash end if config = dynamic_active_model_config config[:connection_options] = redefine_class_method(:dynamic_active_model_config, config) end dynamic_active_model_config[:connection_options] end |
#create_models! ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/dynamic-active-model/setup.rb', line 100 def create_models! redefine_class_method( :database, DynamicActiveModel::Explorer.explore( self, , skip_tables, relationships ) ) database.update_all_models(extensions_path, extensions_suffix) if extensions_path database end |
#database ⇒ Object
15 16 17 |
# File 'lib/dynamic-active-model/setup.rb', line 15 def database nil end |
#dynamic_active_model_config ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/dynamic-active-model/setup.rb', line 19 def dynamic_active_model_config { connection_options: nil, skip_tables: [], relationships: {}, extensions_path: nil, extensions_suffix: '.ext.rb' } end |
#extensions_path(path = nil) ⇒ Object
82 83 84 85 86 87 88 89 |
# File 'lib/dynamic-active-model/setup.rb', line 82 def extensions_path(path = nil) if path config = dynamic_active_model_config config[:extensions_path] = path redefine_class_method(:dynamic_active_model_config, config) end dynamic_active_model_config[:extensions_path] end |
#extensions_suffix(suffix = nil) ⇒ Object
91 92 93 94 95 96 97 98 |
# File 'lib/dynamic-active-model/setup.rb', line 91 def extensions_suffix(suffix = nil) if suffix config = dynamic_active_model_config config[:extensions_suffix] = suffix redefine_class_method(:dynamic_active_model_config, config) end dynamic_active_model_config[:extensions_suffix] end |
#foreign_key(table_name, foreign_key, relationship_name) ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/dynamic-active-model/setup.rb', line 74 def foreign_key(table_name, foreign_key, relationship_name) config = dynamic_active_model_config current_relationships = config[:relationships] current_relationships[table_name] ||= {} current_relationships[table_name][foreign_key] = relationship_name redefine_class_method(:dynamic_active_model_config, config) end |
#relationships(all_relationships = nil) ⇒ Object
65 66 67 68 69 70 71 72 |
# File 'lib/dynamic-active-model/setup.rb', line 65 def relationships(all_relationships = nil) if all_relationships config = dynamic_active_model_config config[:relationships] = all_relationships redefine_class_method(:dynamic_active_model_config, config) end dynamic_active_model_config[:relationships] end |
#skip_table(table) ⇒ Object
59 60 61 62 63 |
# File 'lib/dynamic-active-model/setup.rb', line 59 def skip_table(table) config = dynamic_active_model_config config[:skip_tables] << table redefine_class_method(:dynamic_active_model_config, config) end |
#skip_tables(tables = nil) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/dynamic-active-model/setup.rb', line 50 def skip_tables(tables = nil) if tables config = dynamic_active_model_config config[:skip_tables] = tables redefine_class_method(:dynamic_active_model_config, config) end dynamic_active_model_config[:skip_tables] end |