module Elastics::AutoRefresh

Constants

METHODS
SKIP_IDS

Public Class Methods

disable!(&block) click to toggle source
# File lib/elastics/auto_refresh.rb, line 29
def disable!(&block)
  use(false, &block)
end
enable!(&block) click to toggle source
# File lib/elastics/auto_refresh.rb, line 25
def enable!(&block)
  use(true, &block)
end
enabled=(value) click to toggle source
# File lib/elastics/auto_refresh.rb, line 11
def enabled=(value)
  value = !!value
  Client.send(:include, self) if value && !Client.include?(self)
  Thread.current[:elastics_test_mode] = value
end
enabled?() click to toggle source
# File lib/elastics/auto_refresh.rb, line 7
def enabled?
  Thread.current[:elastics_test_mode]
end
included(base) click to toggle source
# File lib/elastics/auto_refresh.rb, line 33
def included(base)
  base.send :alias_method, :request_without_auto_refresh, :request
  base.send :alias_method, :request, :request_with_auto_refresh
end
use(value) { |: value| ... } click to toggle source
# File lib/elastics/auto_refresh.rb, line 17
def use(value)
  old_value = enabled?
  self.enabled = value
  block_given? ? yield : value
ensure
  self.enabled = old_value if block_given?
end

Public Instance Methods

request_with_auto_refresh(params) click to toggle source
# File lib/elastics/auto_refresh.rb, line 39
def request_with_auto_refresh(params)
  request_without_auto_refresh(params).tap do
    next unless AutoRefresh.enabled?
    next if SKIP_IDS.include?(params[:id].to_s.downcase)
    next unless METHODS.include?(params[:method].to_s.downcase)
    refresh(params[:index])
  end
end