Skip to content

Commit

Permalink
Simplify default behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
wycats committed May 9, 2009
1 parent f65e168 commit 0f9597e
Show file tree
Hide file tree
Showing 10 changed files with 20 additions and 62 deletions.
6 changes: 5 additions & 1 deletion lib/moneta.rb
Expand Up @@ -67,6 +67,10 @@ module Defaults
def fetch(key, value = nil)
value ||= block_given? ? yield(key) : default
self[key] || value
end
end

def store(key, value, options = {})
self[key] = value
end
end
end
4 changes: 0 additions & 4 deletions lib/moneta/berkeley.rb
Expand Up @@ -31,10 +31,6 @@ def []=(key,value)
@db[key] = value
end

def store(key, value, options={})
@db[key] = value
end

def [](key)
@db[key]
end
Expand Down
4 changes: 0 additions & 4 deletions lib/moneta/couch.rb
Expand Up @@ -45,10 +45,6 @@ def delete(key)
nil
end

def store(key, value, options = {})
self[key] = value
end

def update_key(key, options = {})
val = self[key]
self.store(key, val, options)
Expand Down
8 changes: 2 additions & 6 deletions lib/moneta/file.rb
Expand Up @@ -72,11 +72,7 @@ def delete(key)
value
rescue Errno::ENOENT
end

def store(key, value, options = {})
self[key] = value
end


def clear
FileUtils.rm_rf(@directory)
FileUtils.mkdir(@directory)
Expand All @@ -88,8 +84,8 @@ def path(key)
end
end
include Implementation
include Expires
include Defaults
include Expires

end
end
9 changes: 3 additions & 6 deletions lib/moneta/memcache.rb
Expand Up @@ -7,6 +7,8 @@

module Moneta
class Memcache
include Defaults

def initialize(options = {})
@cache = MemCache.new(options.delete(:server), options)
end
Expand All @@ -24,12 +26,7 @@ def [](key)
def []=(key, value)
store(key, value)
end

def fetch(key, value = nil)
value ||= block_given? ? yield(key) : default
self[key] || value
end


def delete(key)
value = self[key]
@cache.delete(key) if value
Expand Down
15 changes: 4 additions & 11 deletions lib/moneta/rufus.rb
Expand Up @@ -6,7 +6,9 @@
end

module Moneta
class BasicRufus < ::Rufus::Tokyo::Cabinet
class BasicRufus < ::Rufus::Tokyo::Cabinet
include Defaults

def initialize(options = {})
file = options[:file]
super("#{file}.tch")
Expand All @@ -24,16 +26,7 @@ def [](key)

def []=(key, value)
super(key, Marshal.dump(value))
end

def fetch(key, value = nil)
value ||= block_given? ? yield(key) : default
self[key] || value
end

def store(key, value, options = {})
self[key] = value
end
end
end

class Rufus < BasicRufus
Expand Down
7 changes: 1 addition & 6 deletions lib/moneta/s3.rb
Expand Up @@ -55,12 +55,7 @@ def [](key)
def []=(key, value)
store(key, value)
end

def fetch(key, value = nil)
value ||= block_given? ? yield(key) : default
self[key] || value
end


def delete(key)
k = s3_key(key)
if k
Expand Down
5 changes: 0 additions & 5 deletions lib/moneta/sdbm.rb
Expand Up @@ -2,7 +2,6 @@

module Moneta
class BasicSDBM < ::SDBM

include Defaults

def [](key)
Expand All @@ -15,10 +14,6 @@ def []=(key, value)
super(key, Marshal.dump(value))
end

def store(key, value, options = {})
self[key] = value
end

def delete(key)
if val = super
Marshal.load(val)
Expand Down
14 changes: 4 additions & 10 deletions lib/moneta/tyrant.rb
Expand Up @@ -7,6 +7,8 @@

module Moneta
class Tyrant < ::Rufus::Tokyo::Tyrant
include Defaults

module Implementation
def initialize(options = {})
host = options[:host]
Expand All @@ -26,17 +28,9 @@ def [](key)

def []=(key, value)
super(key, Marshal.dump(value))
end

def fetch(key, value = nil)
value ||= block_given? ? yield(key) : default
self[key] || value
end

def store(key, value, options = {})
self[key] = value
end
end
end

include Implementation
include Expires

Expand Down
10 changes: 1 addition & 9 deletions lib/moneta/xattr.rb
Expand Up @@ -8,6 +8,7 @@

module Moneta
class Xattr
include Defaults

def initialize(options = {})
file = options[:file]
Expand Down Expand Up @@ -37,22 +38,13 @@ def []=(key, value)
@hash.set(key, Marshal.dump(value))
end

def fetch(key, value = nil)
value ||= block_given? ? yield(key) : default
self[key] || value
end

def delete(key)
return nil unless key?(key)
value = self[key]
@hash.remove(key)
value
end

def store(key, value, options = {})
self[key] = value
end

def clear
@hash.list.each do |item|
@hash.remove(item)
Expand Down

0 comments on commit 0f9597e

Please sign in to comment.