lib/alephant/sequencer.rb in alephant-sequencer-2.0.1 vs lib/alephant/sequencer.rb in alephant-sequencer-3.0.0

- old
+ new

@@ -1,15 +1,31 @@ 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, ident, jsonpath = nil, keep_all = true) + 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], ident, jsonpath, keep_all) + Sequencer.new(@@sequence_tables[table_name], opts) end + private + + def self.cache(config) + @cache ||= SequenceCache.new(config) + end end end