module Moneta::Adapters::Sequel::MySQL
@api private
Public Instance Methods
each_key() { |row| ... }
click to toggle source
Calls superclass method
# File lib/moneta/adapters/sequel/mysql.rb, line 29 def each_key return super unless block_given? && config.each_key_server && @table.respond_to?(:stream) # Order is not required when streaming @table.server(config.each_key_server).select(config.key_column).paged_each do |row| yield row[config.key_column] end self end
increment(key, amount = 1, options = {})
click to toggle source
# File lib/moneta/adapters/sequel/mysql.rb, line 11 def increment(key, amount = 1, options = {}) @backend.transaction(retry_on: [::Sequel::SerializationFailure]) do @increment.call(key: key, amount: amount) Integer(load(key)) end end
merge!(pairs, options = {}, &block)
click to toggle source
# File lib/moneta/adapters/sequel/mysql.rb, line 18 def merge!(pairs, options = {}, &block) @backend.transaction do pairs = yield_merge_pairs(pairs, &block) if block_given? @table .on_duplicate_key_update .import([config.key_column, config.value_column], blob_pairs(pairs).to_a) end self end
store(key, value, options = {})
click to toggle source
# File lib/moneta/adapters/sequel/mysql.rb, line 6 def store(key, value, options = {}) @store.call(key: key, value: blob(value)) value end
Protected Instance Methods
prepare_increment()
click to toggle source
# File lib/moneta/adapters/sequel/mysql.rb, line 46 def prepare_increment @increment = @table .on_duplicate_key_update(config.value_column => ::Sequel.cast(config.value_column, Integer) + :$amount) .prepare(:insert, statement_id(:increment_insert), config.key_column => :$key, config.value_column => :$amount) end
prepare_store()
click to toggle source
# File lib/moneta/adapters/sequel/mysql.rb, line 40 def prepare_store @store = @table .on_duplicate_key_update .prepare(:insert, statement_id(:store), config.key_column => :$key, config.value_column => :$value) end