Sha256: 0bc2323ceb766d23a53ceaeeaed50d13ec6e9c91eb151bf241d0798f59f5cf47

Contents?: true

Size: 866 Bytes

Versions: 49

Compression:

Stored size: 866 Bytes

Contents

module Fog
  module Associations
    # = Fog Default Association
    #
    # This class has the shared behavior between all association models.
    class Default
      attr_reader :model, :name, :aliases, :as, :association_class

      def initialize(model, name, collection_name, options)
        @model = model
        @name = name
        model.associations[name] = collection_name
        @aliases = options.fetch(:aliases, [])
        @as = options.fetch(:as, name)
        @association_class = options.fetch(:association_class, Fog::Association)
        create_setter
        create_getter
        create_aliases
        create_mask
      end

      def create_aliases
        Array(aliases).each do |alias_name|
          model.aliases[alias_name] = name
        end
      end

      def create_mask
        model.masks[name] = as
      end
    end
  end
end

Version data entries

49 entries across 46 versions & 3 rubygems

Version Path
fog-core-2.6.0 lib/fog/core/associations/default.rb
fog-core-2.5.0 lib/fog/core/associations/default.rb
fog-core-2.4.0 lib/fog/core/associations/default.rb
fog-core-2.3.0 lib/fog/core/associations/default.rb
fog-core-2.2.4 lib/fog/core/associations/default.rb
fog-core-2.2.3 lib/fog/core/associations/default.rb
fog-core-2.2.2 lib/fog/core/associations/default.rb
fog-core-2.2.1 lib/fog/core/associations/default.rb
fog-core-2.2.0 lib/fog/core/associations/default.rb
fog-core-2.1.2 lib/fog/core/associations/default.rb
fog-core-2.1.1 lib/fog/core/associations/default.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-core-1.45.0/lib/fog/core/associations/default.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-core-1.45.0/lib/fog/core/associations/default.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-core-2.1.0/lib/fog/core/associations/default.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-core-1.45.0/lib/fog/core/associations/default.rb
fog-core-2.1.0 lib/fog/core/associations/default.rb
fog-core-2.0.0 lib/fog/core/associations/default.rb
fog-core-1.45.0 lib/fog/core/associations/default.rb
fog-core-1.44.3 lib/fog/core/associations/default.rb
fog-core-1.44.2 lib/fog/core/associations/default.rb