require "alephant/sequencer/version" require "alephant/sequencer/sequencer" require "alephant/sequencer/sequence_table" require "alephant/sequencer/sequence_cache" module Alephant module Sequencer @@sequence_tables = {} def self.create(table_name, opts = {}) defaults = { :jsonpath => nil, :keep_all => true, :config => {} } opts = defaults.merge(opts).tap do |opts| opts[:cache] = self.cache(opts[:config]) end @@sequence_tables[table_name] ||= SequenceTable.new(table_name) Sequencer.new(@@sequence_tables[table_name], opts) end private def self.cache(config) @cache ||= SequenceCache.new(config) end end end