Sha256: efef520e0c75659b791138e5a799695c121595e0c0ceecbc11fdfbc1fecd97d3

Contents?: true

Size: 1.32 KB

Versions: 15

Compression:

Stored size: 1.32 KB

Contents

require 'bridge_cache/engine'
require 'bridge_blueprint'
require 'active_record'
require 'activerecord-import'
require 'rein'

module BridgeCache
  class << self
    WRITER_METHODS = %w[use_internal_database batch_size is_subaccount].freeze
    READ_METHODS = %w[models].freeze
    READ_WRITE_METHODS = %w[].freeze
    DEFAULT_BATCH_SIZE = 10_000
    DEFAULT_MODELS = %(domain affiliated_sub_account).freeze

    attr_writer(*WRITER_METHODS)
    attr_accessor(*READ_WRITE_METHODS)
    attr_reader(*READ_METHODS)

    def configure
      yield self if block_given?
    end

    def use_internal_database
      return @use_internal_database if defined?(@use_internal_database)

      @use_internal_database = true
    end

    def batch_size
      @batch_size || DEFAULT_BATCH_SIZE
    end

    def models=(models)
      @models = merged_required_models(models)
    end

    def models
      return @models if defined?(@models)

      @models = merged_required_models([])
    end

    def primary_key
      @use_internal_database ? :bridge_id : :id
    end

    def resolved_models(remove_root_models)
      return @models unless remove_root_models

      @models.reject { |model| DEFAULT_MODELS.include?(model) }
    end

    private

    def merged_required_models(models)
      (%w[domain affiliated_sub_account] + models).uniq
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
bridge_cache-0.5.0 lib/bridge_cache.rb
bridge_cache-0.4.9 lib/bridge_cache.rb
bridge_cache-0.4.8 lib/bridge_cache.rb
bridge_cache-0.4.7 lib/bridge_cache.rb
bridge_cache-0.4.6 lib/bridge_cache.rb
bridge_cache-0.4.5 lib/bridge_cache.rb
bridge_cache-0.4.4 lib/bridge_cache.rb
bridge_cache-0.4.3 lib/bridge_cache.rb
bridge_cache-0.4.2 lib/bridge_cache.rb
bridge_cache-0.4.1 lib/bridge_cache.rb
bridge_cache-0.3.24 lib/bridge_cache.rb
bridge_cache-0.3.23 lib/bridge_cache.rb
bridge_cache-0.3.22 lib/bridge_cache.rb
bridge_cache-0.3.21 lib/bridge_cache.rb
bridge_cache-0.3.20 lib/bridge_cache.rb