class Moderation

Constants

DEFAULT_LIMIT
VERSION

Attributes

construct_with[R]
constructor[R]
limit[R]
storage[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/moderation.rb, line 9
def initialize(options = {})
  @constructor = options[:constructor]
  @construct_with = options[:construct_with]
  @limit = options.fetch(:limit, DEFAULT_LIMIT)
  @storage = options.fetch(:storage, Storage::InMemory.new)
  @storage.limit = @limit
end

Public Instance Methods

all(options = {}) click to toggle source
# File lib/moderation.rb, line 21
def all(options = {})
  fetch_limit = options.fetch(:limit, limit)
  storage.all(limit: fetch_limit).map do |stored_item|
    if using_custom_constructor?
      constructor.send(construct_with, stored_item)
    elsif using_constructor?
      data = MultiJson.load(stored_item, :symbolize_keys => true)
      constructor.new(data)
    else
      MultiJson.load(stored_item, :symbolize_keys => true)
    end
  end
end
insert(item) click to toggle source
# File lib/moderation.rb, line 17
def insert(item)
  storage.insert(MultiJson.dump(item))
end

Private Instance Methods

using_constructor?() click to toggle source
# File lib/moderation.rb, line 37
def using_constructor?
  ! constructor.nil?
end
using_custom_constructor?() click to toggle source
# File lib/moderation.rb, line 41
def using_custom_constructor?
  using_constructor? && ! construct_with.nil? 
end