Module: Gitlab::CloudConnector::DataModel::Associations::ClassMethods
- Defined in:
- lib/gitlab/cloud_connector/data_model/associations.rb
Instance Method Summary collapse
- #association_cache_keys ⇒ Object
- #associations ⇒ Object
-
#has_and_belongs_to_many(name) ⇒ Object
rubocop:disable Naming/PredicateName.
Instance Method Details
#association_cache_keys ⇒ Object
12 13 14 |
# File 'lib/gitlab/cloud_connector/data_model/associations.rb', line 12 def association_cache_keys @association_cache_keys ||= associations.map { |a| :"#{a}_association" } end |
#associations ⇒ Object
8 9 10 |
# File 'lib/gitlab/cloud_connector/data_model/associations.rb', line 8 def associations @associations ||= [] end |
#has_and_belongs_to_many(name) ⇒ Object
rubocop:disable Naming/PredicateName
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/gitlab/cloud_connector/data_model/associations.rb', line 17 def has_and_belongs_to_many(name) associations << name.to_sym remove_instance_variable(:@association_cache_keys) if instance_variable_defined?(:@association_cache_keys) define_method(name) do instance_variable_get(:"@#{name}_association") || instance_variable_set(:"@#{name}_association", load_association_records(name)) end end |