Module: ActsAsBelongable::Belonger

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/acts_as_belongable/belonger.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#add_belongable(belongable, options = {}) ⇒ Object



33
34
35
36
# File 'app/models/concerns/acts_as_belongable/belonger.rb', line 33

def add_belongable(belongable, options = {})
  options[:belongable] = belongable
  belonger_belongings.create(options)
end

#add_belongable!(belongable, options = {}) ⇒ Object



38
39
40
41
# File 'app/models/concerns/acts_as_belongable/belonger.rb', line 38

def add_belongable!(belongable, options = {})
  options[:belongable] = belongable
  belonger_belongings.create!(options)
end

#belongables_with_scope(scope, source_type: nil) ⇒ Object



57
58
59
60
61
# File 'app/models/concerns/acts_as_belongable/belonger.rb', line 57

def belongables_with_scope(scope, source_type: nil)
  return belonger_belongings.where(scope: scope) if source_type.nil?

  belonger_belongings.where(scope: scope, source_type: source_type)
end

#create_belongable(klass, options = {}) ⇒ Object



43
44
45
46
47
48
# File 'app/models/concerns/acts_as_belongable/belonger.rb', line 43

def create_belongable(klass, options = {})
  belonging_options = options.delete(:belonging) || {}
  object = klass.create(options)
  add_belongable(object, belonging_options)
  object
end

#create_belongable!(klass, options = {}) ⇒ Object



50
51
52
53
54
55
# File 'app/models/concerns/acts_as_belongable/belonger.rb', line 50

def create_belongable!(klass, options = {})
  belonging_options = options.delete(:belonging) || {}
  object = klass.create!(options)
  add_belongable!(object, belonging_options)
  object
end