module ZTK::DSL::Core::Relations::BelongsTo

@author Zachary Patten <zpatten AT jovelabs DOT io> @api private

Public Class Methods

included(base) click to toggle source
# File lib/ztk/dsl/core/relations/belongs_to.rb, line 7
def self.included(base)
  base.class_eval do
    base.add_relation(:belongs_to)
    base.send(:extend, ZTK::DSL::Core::Relations::BelongsTo::ClassMethods)
  end
end

Public Instance Methods

belongs_to_references() click to toggle source
# File lib/ztk/dsl/core/relations/belongs_to.rb, line 14
def belongs_to_references
  @belongs_to_references ||= {}
end
get_belongs_to_reference(key) click to toggle source
# File lib/ztk/dsl/core/relations/belongs_to.rb, line 18
def get_belongs_to_reference(key)
  if belongs_to_references.key?(key)
    belongs_to_references[key]
  else
    key_id = send("#{key}_id")
    item = key.to_s.classify.constantize.find(key_id).first
    belongs_to_references[key] = item
  end
end
save_belongs_to_references() click to toggle source
# File lib/ztk/dsl/core/relations/belongs_to.rb, line 39
def save_belongs_to_references
  belongs_to_references.each do |key, dataset|
    dataset.each do |data|
      # do something to store the data somewhere
    end
  end
end
set_belongs_to_reference(key, value) click to toggle source
# File lib/ztk/dsl/core/relations/belongs_to.rb, line 28
def set_belongs_to_reference(key, value)
  belongs_to_references[key] = value
  attributes.merge!("#{key}_id".to_sym => value.id)

  klass = self.class.to_s.demodulize.downcase.pluralize

  many = value.send(klass)
  many << self
  many.uniq!
end