Module: Sequencescape::Api::Associations::BelongsTo

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

Defined Under Namespace

Modules: CommonBehaviour Classes: AssociationProxy, InlineAssociationProxy

Instance Method Summary collapse

Instance Method Details

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

rubocop:todo Metrics/MethodLength



112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/sequencescape-api/associations/belongs_to.rb', line 112

def belongs_to(association, options = {}, &block) # rubocop:todo Metrics/MethodLength
  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, :belongs_to, proxy)
end