Sha256: fcda36adde36a25b0ed3668289668f72a8df97baf6523ac6ea784c9651928ae1

Contents?: true

Size: 766 Bytes

Versions: 7

Compression:

Stored size: 766 Bytes

Contents

require_relative 'resource_requester'

module Contentful
  module Management
    # Wrapper for Entry Association Methods
    # @private
    module EntryAssociationMethodsFactory
      attr_reader :entry

      def initialize(entry)
        @entry = entry
      end

      def all(_params = {})
        associated_class.all(entry.client, entry.sys[:space].id, entry.id)
      end

      def find(id)
        associated_class.find(entry.client, entry.sys[:space].id, entry.id, id)
      end

      def associated_class
        class_name = /\A(.+)Entry(.+)MethodsFactory\z/.match(self.class.name).captures.join
        class_name.split('::').reduce(Object) do |mod, actual_class_name|
          mod.const_get(actual_class_name)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
contentful-management-1.10.1 lib/contentful/management/entry_association_methods_factory.rb
contentful-management-1.10.0 lib/contentful/management/entry_association_methods_factory.rb
contentful-management-1.9.0 lib/contentful/management/entry_association_methods_factory.rb
contentful-management-1.8.1 lib/contentful/management/entry_association_methods_factory.rb
contentful-management-1.8.0 lib/contentful/management/entry_association_methods_factory.rb
contentful-management-1.7.0 lib/contentful/management/entry_association_methods_factory.rb
contentful-management-1.6.0 lib/contentful/management/entry_association_methods_factory.rb