module Ephemeron

Constants

VERSION

Public Instance Methods

add(model, as: nil) click to toggle source
# File lib/ephemeron.rb, line 45
def add(model, as: nil)
  Store.add model, as: as
end
after_save!(&block) click to toggle source
# File lib/ephemeron.rb, line 87
def after_save!(&block)
  Callbacks.add block
end
allow_fetch!(model_or_key) click to toggle source
# File lib/ephemeron.rb, line 70
def allow_fetch!(model_or_key)
  model = if model_or_key.is_a?(String)
            Ephemeron.get(model_or_key)
          else
            model_or_key
          end
  model.tap { |m| Logger.log m, :fetch_allowed }
end
allow_save!(model) click to toggle source
# File lib/ephemeron.rb, line 79
def allow_save!(model)
  model.tap { |m| Logger.log m, :save_allowed }
end
configure() { |config| ... } click to toggle source
# File lib/ephemeron.rb, line 30
def configure
  Ephemeron::Settings::CONFIG.new.tap do |config|
    yield config
    Ephemeron::Settings.configure config
  end
end
finish() click to toggle source
# File lib/ephemeron.rb, line 91
def finish
  if Store.aliases[nil] != :abort
    Store.validate
    Store.persist
    Callbacks.call
  end
  reset
end
get(key) click to toggle source
# File lib/ephemeron.rb, line 56
def get(key)
  Store.get key
end
logs() click to toggle source
# File lib/ephemeron.rb, line 41
def logs
  Logger.logs
end
proxy() { || ... } click to toggle source
# File lib/ephemeron.rb, line 49
def proxy
  Logger.log nil, :proxy_start
  res = yield
  Logger.log nil, :proxy_end
  res
end
reset() click to toggle source
# File lib/ephemeron.rb, line 104
def reset
  Store.reset
  Logger.reset
  Callbacks.reset
  true
end
skip_save!(model) click to toggle source
# File lib/ephemeron.rb, line 83
def skip_save!(model)
  Logger.log model, :skip_save
end
state() click to toggle source
# File lib/ephemeron.rb, line 37
def state
  Store.store
end
stop() click to toggle source
# File lib/ephemeron.rb, line 100
def stop
  Store.aliases[nil] = :abort
end
used(model_s) click to toggle source
# File lib/ephemeron.rb, line 60
def used(model_s)
  log_used = ->(model) { Logger.log model, :used }
  if model_s.is_a? ActiveRecord::Base
    log_used.call model_s
  else
    model_s.each(&log_used)
  end
  model_s
end