module EsSearchable::Configurable

Public Class Methods

extended(base) click to toggle source
# File lib/es_searchable/configurable.rb, line 5
def self.extended(base)
        base.const_set :SearchMethods,
                [:where, :like, :limit, :offset, :or, :not, :select, :and]
        
        base.const_set :DEFAULTS, { 
                log: true,
                retry_on_failure: 5, 
                async_callback: true,
                queue: 'elasticsearch',
                reload_on_failure: true, 
                hosts: ['localhost:9200'],
                logger: Logger.new($stdout)
        }
                
        base.class_eval do
                DEFAULTS.each do |k, v|
                        self.define_singleton_method "#{k}=" do |value|
                                self.options.merge!(k => value)
                        end

                        self.define_singleton_method k do
                                self.options[k]
                        end
                end
        end
end

Public Instance Methods

configure() { |self| ... } click to toggle source
# File lib/es_searchable/configurable.rb, line 32
def configure
        yield self
end
options() click to toggle source
# File lib/es_searchable/configurable.rb, line 36
def options
        @options ||= DEFAULTS.dup
end
options=(opts) click to toggle source
# File lib/es_searchable/configurable.rb, line 40
def options=(opts)
        @options = opts
end