cubbyhole 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ rvm:
2
+ - 1.8.7 # (current default)
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - rbx-2.0
6
+ #- jruby
7
+ #- ruby-head
8
+ #- ree
9
+
data/Gemfile CHANGED
@@ -5,5 +5,5 @@ gemspec
5
5
 
6
6
  group :test do
7
7
  gem 'rspec'
8
- gem 'ruby-debug'
8
+ gem 'rake'
9
9
  end
data/Rakefile CHANGED
@@ -1 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ desc "Run all specs"
5
+ RSpec::Core::RakeTask.new('spec') do |t|
6
+ end
7
+
8
+ task :default => :spec
@@ -3,20 +3,35 @@ require 'sdbm'
3
3
  module Cubbyhole
4
4
  class SDBM
5
5
  extend Forwardable
6
- def_delegators :@sdbm, :keys, :delete, :clear
6
+ def_delegators :@sdbm, :clear
7
7
 
8
8
  def initialize(name)
9
- @sdbm = ::SDBM.new("cubbyhole.#{name}.sdbm")
9
+ @name = name
10
+ @sdbm = ::SDBM.new("cubbyhole.sdbm")
10
11
  end
11
12
 
12
13
  def [](key)
13
- if str = @sdbm[key]
14
+ if str = @sdbm[munge_key(key)]
14
15
  Marshal.load(str)
15
16
  end
16
17
  end
17
18
 
18
19
  def []=(key, val)
19
- @sdbm[key] = Marshal.dump(val)
20
+ @sdbm[munge_key(key)] = Marshal.dump(val)
21
+ end
22
+
23
+ def keys
24
+ @sdbm.keys.grep(/^#{@name}:/).map do |key|
25
+ key.sub(/^#{@name}:/, "")
26
+ end
27
+ end
28
+
29
+ def delete(key)
30
+ @sdbm.delete(munge_key(key))
31
+ end
32
+
33
+ def munge_key(key)
34
+ "#{@name}:#{key}"
20
35
  end
21
36
 
22
37
  end
@@ -1,3 +1,3 @@
1
1
  module Cubbyhole
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,35 +1,26 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cubbyhole
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.1
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 0
10
- version: 0.2.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Andy Delcambre
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-05 00:00:00 -07:00
19
- default_executable:
12
+ date: 2011-12-01 00:00:00.000000000 Z
20
13
  dependencies: []
21
-
22
- description: This project will be a zero configuation datastore that aims to be ActiveModel compliant
23
- email:
14
+ description: This project will be a zero configuation datastore that aims to be ActiveModel
15
+ compliant
16
+ email:
24
17
  - adelcambre@engineyard.com
25
18
  executables: []
26
-
27
19
  extensions: []
28
-
29
20
  extra_rdoc_files: []
30
-
31
- files:
21
+ files:
32
22
  - .gitignore
23
+ - .travis.yml
33
24
  - Gemfile
34
25
  - README.md
35
26
  - Rakefile
@@ -48,41 +39,31 @@ files:
48
39
  - spec/collections_spec.rb
49
40
  - spec/cubbyhole_spec.rb
50
41
  - spec/hash_backend_spec.rb
51
- has_rdoc: true
52
- homepage: ""
42
+ homepage: ''
53
43
  licenses: []
54
-
55
44
  post_install_message:
56
45
  rdoc_options: []
57
-
58
- require_paths:
46
+ require_paths:
59
47
  - lib
60
- required_ruby_version: !ruby/object:Gem::Requirement
48
+ required_ruby_version: !ruby/object:Gem::Requirement
61
49
  none: false
62
- requirements:
63
- - - ">="
64
- - !ruby/object:Gem::Version
65
- hash: 3
66
- segments:
67
- - 0
68
- version: "0"
69
- required_rubygems_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
55
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
78
60
  requirements: []
79
-
80
61
  rubyforge_project: cubbyhole
81
- rubygems_version: 1.6.2
62
+ rubygems_version: 1.8.10
82
63
  signing_key:
83
64
  specification_version: 3
84
65
  summary: A zero config data store
85
- test_files:
66
+ test_files:
86
67
  - spec/collections_spec.rb
87
68
  - spec/cubbyhole_spec.rb
88
69
  - spec/hash_backend_spec.rb