Module: Sequencescape::Api::Associations::HasMany

Defined in:
lib/sequencescape-api/associations/has_many.rb

Defined Under Namespace

Modules: Json, Validation Classes: AssociationProxy, InlineAssociationProxy

Instance Method Summary collapse

Instance Method Details

#has_many(association, options = {}, &block) ⇒ Object



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/sequencescape-api/associations/has_many.rb', line 108

def has_many(association, options = {}, &block)
  association = association.to_sym

  proxy = Class.new(
    case options[:disposition].try(:to_sym)
    when :inline then InlineAssociationProxy
    else AssociationProxy
    end
  )
  proxy.association = association
  proxy.options     = options
  proxy.instance_eval(&block) if block_given?

  association_methods(association, :has_many, proxy)
end