module Deimos::SharedConfig::ClassMethods

need to use this instead of class_methods to be backwards-compatible with Rails 3

Public Instance Methods

config() click to toggle source

@return [Hash]

# File lib/deimos/shared_config.rb, line 14
def config
  return @config if @config

  # default to none: true
  @config = {
    key_configured: false,
    encode_key: false,
    no_keys: true
  }
  klass = self.superclass
  while klass.respond_to?(:config)
    klass_config = klass.config
    if klass_config
      # default is true for this so don't include it in the merge
      klass_config.delete(:encode_key) if klass_config[:encode_key]
      @config.merge!(klass_config) if klass.config
    end
    klass = klass.superclass
  end
  @config
end
key_config(plain: nil, field: nil, schema: nil, none: nil) click to toggle source

Set key configuration. @param field [Symbol] the name of a field to use in the value schema as

a generated key schema

@param schema [String|Symbol] the name of a schema to use for the key @param plain [Boolean] if true, do not encode keys at all @param none [Boolean] if true, do not use keys at all

# File lib/deimos/shared_config.rb, line 54
def key_config(plain: nil, field: nil, schema: nil, none: nil)
  config[:key_configured] = true
  config[:no_keys] = none
  config[:encode_key] = !plain && !none
  config[:key_field] = field&.to_s
  config[:key_schema] = schema
end
namespace(namespace) click to toggle source

Set the namespace. @param namespace [String]

# File lib/deimos/shared_config.rb, line 44
def namespace(namespace)
  config[:namespace] = namespace
end
schema(schema) click to toggle source

Set the schema. @param schema [String]

# File lib/deimos/shared_config.rb, line 38
def schema(schema)
  config[:schema] = schema
end