Sha256: 1182bbf1cdb9cf494cfc9a7ef4e21580ba2ae75aa2721d34bddfeb39b3e05983

Contents?: true

Size: 1.75 KB

Versions: 20

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true

require 'global_registry_bindings/options/entity_instance_options'
require 'global_registry_bindings/options/entity_class_options'
require 'global_registry_bindings/options/relationship_instance_options'
require 'global_registry_bindings/options/relationship_class_options'

module GlobalRegistry #:nodoc:
  module Bindings #:nodoc:
    module Options
      extend ActiveSupport::Concern

      included do
        # Entity Class Options
        class_attribute :_global_registry_bindings_class_options
        self._global_registry_bindings_class_options ||=
          GlobalRegistry::Bindings::Options::EntityClassOptions.new(self)
        # Relationship Class Options
        class_attribute :_global_registry_bindings_class_relationships
        self._global_registry_bindings_class_relationships = {}
      end

      def global_registry_entity
        @_global_registry_bindings_instance_options ||=
          GlobalRegistry::Bindings::Options::EntityInstanceOptions.new(self)
      end

      def global_registry_relationship(type)
        @_global_registry_bindings_instance_relationships ||= {}
        @_global_registry_bindings_instance_relationships[type] ||=
          GlobalRegistry::Bindings::Options::RelationshipInstanceOptions.new(type, self)
      end

      module ClassMethods
        def global_registry_entity
          _global_registry_bindings_class_options
        end

        def global_registry_relationship(type)
          _global_registry_bindings_class_relationships[type] ||=
            GlobalRegistry::Bindings::Options::RelationshipClassOptions.new(type, self)
        end

        def global_registry_relationship_types
          _global_registry_bindings_options[:relationships].keys
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
global-registry-bindings-0.6.2 lib/global_registry_bindings/options.rb
global-registry-bindings-0.6.1 lib/global_registry_bindings/options.rb
global-registry-bindings-0.6.0 lib/global_registry_bindings/options.rb
global-registry-bindings-0.5.0 lib/global_registry_bindings/options.rb
global-registry-bindings-0.4.0 lib/global_registry_bindings/options.rb
global-registry-bindings-0.3.3 lib/global_registry_bindings/options.rb
global-registry-bindings-0.3.2 lib/global_registry_bindings/options.rb
global-registry-bindings-0.3.1 lib/global_registry_bindings/options.rb
global-registry-bindings-0.3.0 lib/global_registry_bindings/options.rb
global-registry-bindings-0.2.0 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.9 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.8 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.7 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.6 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.5 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.4 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.3 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.2 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.1 lib/global_registry_bindings/options.rb
global-registry-bindings-0.1.0 lib/global_registry_bindings/options.rb