Sha256: 8d81c36736fd72ce5509c5f368d20d76af3cd512eeb796329f934b6f34c67a92

Contents?: true

Size: 806 Bytes

Versions: 18

Compression:

Stored size: 806 Bytes

Contents

# frozen_string_literal: true

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

18 entries across 18 versions & 2 rubygems

Version Path
active_cached_resource-0.1.10 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.9 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.8 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.7 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.6 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.5 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.4 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.3 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.2 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.1 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.1.0 lib/activeresource/lib/active_resource/associations/builder/association.rb
active_cached_resource-0.0.1.pre lib/activeresource/lib/active_resource/associations/builder/association.rb
activeresource-6.1.4 lib/active_resource/associations/builder/association.rb
activeresource-6.1.3 lib/active_resource/associations/builder/association.rb
activeresource-6.1.2 lib/active_resource/associations/builder/association.rb
activeresource-6.1.1 lib/active_resource/associations/builder/association.rb
activeresource-6.1.0 lib/active_resource/associations/builder/association.rb
activeresource-6.0.0 lib/active_resource/associations/builder/association.rb