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