cubbyhole 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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