Class: RailsBestPractices::Core::ModelAssociations
- Inherits:
-
Object
- Object
- RailsBestPractices::Core::ModelAssociations
- Defined in:
- lib/rails_best_practices/core/model_associations.rb
Overview
Model associations container.
Instance Method Summary collapse
- #add_association(model_name, association_name, association_meta, association_class = nil) ⇒ Object
-
#each ⇒ Object
delegate each to @associations.
-
#get_association(model_name, association_name) ⇒ Hash
Get a model association.
-
#get_association_class_name(table_name, association_name) ⇒ String
Get association’s class name.
-
#initialize ⇒ ModelAssociations
constructor
A new instance of ModelAssociations.
-
#is_association?(model_name, association_name) ⇒ Boolean
If it is a model’s association.
Constructor Details
#initialize ⇒ ModelAssociations
Returns a new instance of ModelAssociations.
7 8 9 |
# File 'lib/rails_best_practices/core/model_associations.rb', line 7 def initialize @associations = {} end |
Instance Method Details
#add_association(model_name, association_name, association_meta, association_class = nil) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/rails_best_practices/core/model_associations.rb', line 16 def add_association(model_name, association_name, , association_class = nil) @associations[model_name] ||= {} @associations[model_name][association_name] = { 'meta' => , 'class_name' => association_class || association_name.classify } end |
#each ⇒ Object
delegate each to @associations.
44 45 46 |
# File 'lib/rails_best_practices/core/model_associations.rb', line 44 def each @associations.each { |model, model_associations| yield model, model_associations } end |
#get_association(model_name, association_name) ⇒ Hash
Get a model association.
28 29 30 31 |
# File 'lib/rails_best_practices/core/model_associations.rb', line 28 def get_association(model_name, association_name) associations = @associations[model_name] associations && associations[association_name] end |
#get_association_class_name(table_name, association_name) ⇒ String
Get association’s class name
53 54 55 56 57 58 59 60 |
# File 'lib/rails_best_practices/core/model_associations.rb', line 53 def get_association_class_name(table_name, association_name) ( associations = @associations.select { |model, _model_associations| model.gsub('::', '').tableize == table_name }.values .first ) && ( = associations.select { |name, | name == association_name }.values.first) && ['class_name'] end |
#is_association?(model_name, association_name) ⇒ Boolean
If it is a model’s association.
38 39 40 41 |
# File 'lib/rails_best_practices/core/model_associations.rb', line 38 def is_association?(model_name, association_name) associations = @associations[model_name] !!(associations && associations[association_name]) end |