Class: Brick::Config
Overview
Global configuration affecting all threads. Some thread-specific configuration can be found in ‘brick.rb`, others in `controller.rb`.
Instance Attribute Summary collapse
-
#association_reify_error_behaviour ⇒ Object
Returns the value of attribute association_reify_error_behaviour.
-
#object_changes_adapter ⇒ Object
Returns the value of attribute object_changes_adapter.
-
#root_model ⇒ Object
Returns the value of attribute root_model.
-
#serializer ⇒ Object
Returns the value of attribute serializer.
-
#version_limit ⇒ Object
Returns the value of attribute version_limit.
Instance Method Summary collapse
-
#add_orphans ⇒ Object
Add a special page to show references to non-existent records (“orphans”).
-
#add_status ⇒ Object
Add status page showing all resources and what files have been built out for them.
-
#additional_references ⇒ Object
Additional table associations to use (Think of these as virtual foreign keys perhaps).
- #additional_references=(references) ⇒ Object
- #default_route_fallback ⇒ Object
- #default_route_fallback=(resource_name) ⇒ Object
-
#enable_controllers ⇒ Object
Indicates whether Brick controllers are on or off.
- #enable_controllers=(enable) ⇒ Object
-
#enable_models ⇒ Object
Indicates whether Brick models are on or off.
- #enable_models=(enable) ⇒ Object
-
#enable_routes ⇒ Object
Indicates whether Brick routes are on or off.
- #enable_routes=(enable) ⇒ Object
-
#enable_views ⇒ Object
Indicates whether Brick views are on or off.
- #enable_views=(enable) ⇒ Object
-
#exclude_hms ⇒ Object
Skip creating a has_many association for these.
- #exclude_hms=(skips) ⇒ Object
- #exclude_tables ⇒ Object
- #exclude_tables=(value) ⇒ Object
-
#has_ones ⇒ Object
Associations to treat as a has_one.
- #has_ones=(hos) ⇒ Object
-
#initialize ⇒ Config
constructor
A new instance of Config.
- #metadata_columns ⇒ Object
- #metadata_columns=(columns) ⇒ Object
- #model_descrips ⇒ Object
- #model_descrips=(descrips) ⇒ Object
- #models_inherit_from ⇒ Object
- #models_inherit_from=(value) ⇒ Object
- #not_nullables ⇒ Object
- #not_nullables=(columns) ⇒ Object
- #order ⇒ Object
-
#order=(orders) ⇒ Object
Get something like: Override how code sorts with: { ‘on_call_list’ => { code: “ORDER BY STRING_TO_ARRAY(code, ‘.’)::int[]” } } Specify default thing to order_by with: { ‘on_call_list’ => { _brick_default: [:last_name, :first_name] } } { ‘on_call_list’ => { _brick_default: :sequence } }.
-
#polymorphics ⇒ Object
Polymorphic associations.
- #polymorphics=(polys) ⇒ Object
- #schema_behavior ⇒ Object
- #schema_behavior=(schema) ⇒ Object
- #skip_database_views ⇒ Object
- #skip_database_views=(disable) ⇒ Object
-
#skip_index_hms ⇒ Object
Skip showing counts for these specific has_many associations when building auto-generated #index views.
- #skip_index_hms=(skips) ⇒ Object
- #sti_namespace_prefixes ⇒ Object
- #sti_namespace_prefixes=(prefixes) ⇒ Object
- #sti_type_column ⇒ Object
- #sti_type_column=(type_col) ⇒ Object
- #table_name_prefixes ⇒ Object
- #table_name_prefixes=(value) ⇒ Object
Constructor Details
#initialize ⇒ Config
Returns a new instance of Config.
14 15 16 17 18 19 20 21 |
# File 'lib/brick/config.rb', line 14 def initialize # Variables which affect all threads, whose access is synchronized. @mutex = Mutex.new @enabled = true # Variables which affect all threads, whose access is *not* synchronized. @serializer = Brick::Serializers::YAML end |
Instance Attribute Details
#association_reify_error_behaviour ⇒ Object
Returns the value of attribute association_reify_error_behaviour.
11 12 13 |
# File 'lib/brick/config.rb', line 11 def association_reify_error_behaviour @association_reify_error_behaviour end |
#object_changes_adapter ⇒ Object
Returns the value of attribute object_changes_adapter.
11 12 13 |
# File 'lib/brick/config.rb', line 11 def object_changes_adapter @object_changes_adapter end |
#root_model ⇒ Object
Returns the value of attribute root_model.
11 12 13 |
# File 'lib/brick/config.rb', line 11 def root_model @root_model end |
#serializer ⇒ Object
Returns the value of attribute serializer.
11 12 13 |
# File 'lib/brick/config.rb', line 11 def serializer @serializer end |
#version_limit ⇒ Object
Returns the value of attribute version_limit.
11 12 13 |
# File 'lib/brick/config.rb', line 11 def version_limit @version_limit end |
Instance Method Details
#add_orphans ⇒ Object
Add a special page to show references to non-existent records (“orphans”)
239 240 241 |
# File 'lib/brick/config.rb', line 239 def add_orphans true end |
#add_status ⇒ Object
Add status page showing all resources and what files have been built out for them
234 235 236 |
# File 'lib/brick/config.rb', line 234 def add_status true end |
#additional_references ⇒ Object
Additional table associations to use (Think of these as virtual foreign keys perhaps)
60 61 62 |
# File 'lib/brick/config.rb', line 60 def additional_references @mutex.synchronize { @additional_references } end |
#additional_references=(references) ⇒ Object
64 65 66 |
# File 'lib/brick/config.rb', line 64 def additional_references=(references) @mutex.synchronize { @additional_references = references } end |
#default_route_fallback ⇒ Object
153 154 155 |
# File 'lib/brick/config.rb', line 153 def default_route_fallback @mutex.synchronize { @default_route_fallback } end |
#default_route_fallback=(resource_name) ⇒ Object
157 158 159 |
# File 'lib/brick/config.rb', line 157 def default_route_fallback=(resource_name) @mutex.synchronize { @default_route_fallback = resource_name } end |
#enable_controllers ⇒ Object
Indicates whether Brick controllers are on or off. Default: true.
33 34 35 |
# File 'lib/brick/config.rb', line 33 def enable_controllers @mutex.synchronize { !!@enable_controllers } end |
#enable_controllers=(enable) ⇒ Object
37 38 39 |
# File 'lib/brick/config.rb', line 37 def enable_controllers=(enable) @mutex.synchronize { @enable_controllers = enable } end |
#enable_models ⇒ Object
Indicates whether Brick models are on or off. Default: true.
24 25 26 |
# File 'lib/brick/config.rb', line 24 def enable_models @mutex.synchronize { !!@enable_models } end |
#enable_models=(enable) ⇒ Object
28 29 30 |
# File 'lib/brick/config.rb', line 28 def enable_models=(enable) @mutex.synchronize { @enable_models = enable } end |
#enable_routes ⇒ Object
Indicates whether Brick routes are on or off. Default: true.
51 52 53 |
# File 'lib/brick/config.rb', line 51 def enable_routes @mutex.synchronize { !!@enable_routes } end |
#enable_routes=(enable) ⇒ Object
55 56 57 |
# File 'lib/brick/config.rb', line 55 def enable_routes=(enable) @mutex.synchronize { @enable_routes = enable } end |
#enable_views ⇒ Object
Indicates whether Brick views are on or off. Default: true.
42 43 44 |
# File 'lib/brick/config.rb', line 42 def enable_views @mutex.synchronize { !!@enable_views } end |
#enable_views=(enable) ⇒ Object
46 47 48 |
# File 'lib/brick/config.rb', line 46 def enable_views=(enable) @mutex.synchronize { @enable_views = enable } end |
#exclude_hms ⇒ Object
Skip creating a has_many association for these
69 70 71 |
# File 'lib/brick/config.rb', line 69 def exclude_hms @mutex.synchronize { @exclude_hms } end |
#exclude_hms=(skips) ⇒ Object
73 74 75 |
# File 'lib/brick/config.rb', line 73 def exclude_hms=(skips) @mutex.synchronize { @exclude_hms = skips } end |
#exclude_tables ⇒ Object
169 170 171 |
# File 'lib/brick/config.rb', line 169 def exclude_tables @mutex.synchronize { @exclude_tables || [] } end |
#exclude_tables=(value) ⇒ Object
173 174 175 |
# File 'lib/brick/config.rb', line 173 def exclude_tables=(value) @mutex.synchronize { @exclude_tables = value } end |
#has_ones ⇒ Object
Associations to treat as a has_one
92 93 94 |
# File 'lib/brick/config.rb', line 92 def has_ones @mutex.synchronize { @has_ones } end |
#has_ones=(hos) ⇒ Object
96 97 98 |
# File 'lib/brick/config.rb', line 96 def has_ones=(hos) @mutex.synchronize { @has_ones = hos } end |
#metadata_columns ⇒ Object
217 218 219 |
# File 'lib/brick/config.rb', line 217 def @mutex.synchronize { @metadata_columns } end |
#metadata_columns=(columns) ⇒ Object
221 222 223 |
# File 'lib/brick/config.rb', line 221 def (columns) @mutex.synchronize { @metadata_columns = columns } end |
#model_descrips ⇒ Object
109 110 111 |
# File 'lib/brick/config.rb', line 109 def model_descrips @mutex.synchronize { @model_descrips ||= {} } end |
#model_descrips=(descrips) ⇒ Object
113 114 115 |
# File 'lib/brick/config.rb', line 113 def model_descrips=(descrips) @mutex.synchronize { @model_descrips = descrips } end |
#models_inherit_from ⇒ Object
177 178 179 |
# File 'lib/brick/config.rb', line 177 def models_inherit_from @mutex.synchronize { @models_inherit_from } end |
#models_inherit_from=(value) ⇒ Object
181 182 183 |
# File 'lib/brick/config.rb', line 181 def models_inherit_from=(value) @mutex.synchronize { @models_inherit_from = value } end |
#not_nullables ⇒ Object
225 226 227 |
# File 'lib/brick/config.rb', line 225 def not_nullables @mutex.synchronize { @not_nullables } end |
#not_nullables=(columns) ⇒ Object
229 230 231 |
# File 'lib/brick/config.rb', line 229 def not_nullables=(columns) @mutex.synchronize { @not_nullables = columns } end |
#order ⇒ Object
193 194 195 |
# File 'lib/brick/config.rb', line 193 def order @mutex.synchronize { @order || {} } end |
#order=(orders) ⇒ Object
Get something like: Override how code sorts with:
{ 'on_call_list' => { code: "ORDER BY STRING_TO_ARRAY(code, '.')::int[]" } }
Specify default thing to order_by with:
{ 'on_call_list' => { _brick_default: [:last_name, :first_name] } }
{ 'on_call_list' => { _brick_default: :sequence } }
203 204 205 206 207 208 209 210 211 212 213 214 215 |
# File 'lib/brick/config.rb', line 203 def order=(orders) @mutex.synchronize do case (brick_default = orders.fetch(:_brick_default, nil)) when NilClass orders[:_brick_default] = orders.keys.reject { |k| k == :_brick_default }.first when String orders[:_brick_default] = [brick_default.to_sym] when Symbol orders[:_brick_default] = [brick_default] end @order = orders end end |
#polymorphics ⇒ Object
Polymorphic associations
101 102 103 |
# File 'lib/brick/config.rb', line 101 def polymorphics @mutex.synchronize { @polymorphics } end |
#polymorphics=(polys) ⇒ Object
105 106 107 |
# File 'lib/brick/config.rb', line 105 def polymorphics=(polys) @mutex.synchronize { @polymorphics = polys } end |
#schema_behavior ⇒ Object
125 126 127 |
# File 'lib/brick/config.rb', line 125 def schema_behavior @mutex.synchronize { @schema_behavior ||= {} } end |
#schema_behavior=(schema) ⇒ Object
129 130 131 |
# File 'lib/brick/config.rb', line 129 def schema_behavior=(schema) @mutex.synchronize { @schema_behavior = schema } end |
#skip_database_views ⇒ Object
161 162 163 |
# File 'lib/brick/config.rb', line 161 def skip_database_views @mutex.synchronize { @skip_database_views } end |
#skip_database_views=(disable) ⇒ Object
165 166 167 |
# File 'lib/brick/config.rb', line 165 def skip_database_views=(disable) @mutex.synchronize { @skip_database_views = disable } end |
#skip_index_hms ⇒ Object
Skip showing counts for these specific has_many associations when building auto-generated #index views
78 79 80 |
# File 'lib/brick/config.rb', line 78 def skip_index_hms @mutex.synchronize { @skip_index_hms || {} } end |
#skip_index_hms=(skips) ⇒ Object
82 83 84 85 86 87 88 89 |
# File 'lib/brick/config.rb', line 82 def skip_index_hms=(skips) @mutex.synchronize do @skip_index_hms ||= skips.each_with_object({}) do |v, s| class_name, assoc_name = v.split('.') (s[class_name] ||= {})[assoc_name.to_sym] = nil end end end |
#sti_namespace_prefixes ⇒ Object
117 118 119 |
# File 'lib/brick/config.rb', line 117 def sti_namespace_prefixes @mutex.synchronize { @sti_namespace_prefixes ||= {} } end |
#sti_namespace_prefixes=(prefixes) ⇒ Object
121 122 123 |
# File 'lib/brick/config.rb', line 121 def sti_namespace_prefixes=(prefixes) @mutex.synchronize { @sti_namespace_prefixes = prefixes } end |
#sti_type_column ⇒ Object
133 134 135 |
# File 'lib/brick/config.rb', line 133 def sti_type_column @mutex.synchronize { @sti_type_column ||= {} } end |
#sti_type_column=(type_col) ⇒ Object
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/brick/config.rb', line 137 def sti_type_column=(type_col) @mutex.synchronize do (@sti_type_column = type_col).each_with_object({}) do |v, s| if v.last.nil? # Set an STI type column generally ActiveRecord::Base.inheritance_column = v.first else # Custom STI type columns for models built from specific tables (v.last.is_a?(Array) ? v.last : [v.last]).each do |table| ::Brick.relations[table][:sti_col] = v.first end end end end end |
#table_name_prefixes ⇒ Object
185 186 187 |
# File 'lib/brick/config.rb', line 185 def table_name_prefixes @mutex.synchronize { @table_name_prefixes } end |
#table_name_prefixes=(value) ⇒ Object
189 190 191 |
# File 'lib/brick/config.rb', line 189 def table_name_prefixes=(value) @mutex.synchronize { @table_name_prefixes = value } end |