Sha256: 57a748f520759584ee23347cc3a8432d21dc8b882cdada553ca1c5ec1d7dab49

Contents?: true

Size: 770 Bytes

Versions: 6

Compression:

Stored size: 770 Bytes

Contents

module ActiveResource::Associations::Builder
  class Association #:nodoc:

    # providing a Class-Variable, which will have a different store of subclasses
    class_attribute :valid_options
    self.valid_options = [:class_name]

    # would identify subclasses of association
    class_attribute :macro

    attr_reader :model, :name, :options, :klass

    def self.build(model, name, options)
      new(model, name, options).build
    end

    def initialize(model, name, options)
      @model, @name, @options = model, name, options
    end

    def build
      validate_options
      model.create_reflection(self.class.macro, name, options)
    end

    private

    def validate_options
      options.assert_valid_keys(self.class.valid_options)
    end
  end
end

Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
activeresource-5.0.0 lib/active_resource/associations/builder/association.rb
activeresource-five-5.0.0 lib/active_resource/associations/builder/association.rb
activeresource-4.1.0 lib/active_resource/associations/builder/association.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/activeresource-4.0.0/lib/active_resource/associations/builder/association.rb
activeresource-4.0.0 lib/active_resource/associations/builder/association.rb
activeresource-4.0.0.beta1 lib/active_resource/associations/builder/association.rb