Sha256: 1f5532babc20dbad9e6a353b9b22a6e72f4a657067cc1da753fae2d6215c9823

Contents?: true

Size: 1.31 KB

Versions: 19

Compression:

Stored size: 1.31 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

19 entries across 19 versions & 1 rubygems

Version Path
bridge_cache-0.3.19 lib/bridge_cache.rb
bridge_cache-0.3.17 lib/bridge_cache.rb
bridge_cache-0.3.16 lib/bridge_cache.rb
bridge_cache-0.3.15 lib/bridge_cache.rb
bridge_cache-0.3.14 lib/bridge_cache.rb
bridge_cache-0.3.13 lib/bridge_cache.rb
bridge_cache-0.3.12 lib/bridge_cache.rb
bridge_cache-0.3.11 lib/bridge_cache.rb
bridge_cache-0.3.10 lib/bridge_cache.rb
bridge_cache-0.3.9 lib/bridge_cache.rb
bridge_cache-0.3.8 lib/bridge_cache.rb
bridge_cache-0.3.7 lib/bridge_cache.rb
bridge_cache-0.3.6 lib/bridge_cache.rb
bridge_cache-0.3.5 lib/bridge_cache.rb
bridge_cache-0.3.4 lib/bridge_cache.rb
bridge_cache-0.3.3 lib/bridge_cache.rb
bridge_cache-0.3.2 lib/bridge_cache.rb
bridge_cache-0.3.01 lib/bridge_cache.rb
bridge_cache-0.3.0 lib/bridge_cache.rb