kue 0.0.8 → 0.1.0
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/.gitignore +1 -0
- data/.travis.yml +1 -2
- data/kue.gemspec +1 -1
- data/lib/kue.rb +9 -9
- data/lib/kue/version.rb +1 -1
- data/spec/kue_spec.rb +21 -14
- metadata +33 -16
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/kue.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_path = 'lib'
|
20
20
|
|
21
|
-
s.add_dependency 'activerecord', '~> 3.
|
21
|
+
s.add_dependency 'activerecord', '~> 3.2.3'
|
22
22
|
s.add_development_dependency 'rspec'
|
23
23
|
s.add_development_dependency 'sqlite3'
|
24
24
|
s.add_development_dependency 'pry'
|
data/lib/kue.rb
CHANGED
@@ -5,35 +5,35 @@ module Kue
|
|
5
5
|
module Store
|
6
6
|
def self.included(base)
|
7
7
|
base.send :extend, ClassMethods
|
8
|
-
base.send :
|
9
|
-
base.send :
|
8
|
+
base.send :table_name=, :kue_settings
|
9
|
+
base.send :primary_key=, :key
|
10
10
|
end
|
11
|
-
|
12
|
-
module ClassMethods
|
11
|
+
|
12
|
+
module ClassMethods
|
13
13
|
def keys
|
14
14
|
KueStore.all.map(&:key).map(&:to_sym)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def [](key)
|
18
18
|
entry = KueStore.find_by_key(key)
|
19
19
|
entry ? YAML.load(entry.value) : nil
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
def []=(key, value)
|
23
23
|
raise KueNilKeyError if key.nil?
|
24
24
|
setting = KueStore.find_or_create_by_key(key)
|
25
25
|
setting.value = value.to_yaml
|
26
26
|
setting.save!
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
def delete!(key)
|
30
30
|
KueStore.delete_all(:key => key)
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
def exists?(key)
|
34
34
|
self[key].present?
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
def clear!
|
38
38
|
KueStore.destroy_all
|
39
39
|
end
|
data/lib/kue/version.rb
CHANGED
data/spec/kue_spec.rb
CHANGED
@@ -4,46 +4,53 @@ describe KueStore do
|
|
4
4
|
it 'should have the kue_settings table correctly setup' do
|
5
5
|
ActiveRecord::Base.connection.table_exists?(:kue_settings).should be_true
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
it 'should save a new key and value' do
|
9
9
|
proc { KueStore[:key_one] = "Key One"}.should_not raise_error
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
it 'should retrieve a keys value' do
|
13
13
|
KueStore[:key_two] = "Key Two"
|
14
14
|
KueStore[:key_two].should == "Key Two"
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
it 'should save and retrieve complex objects' do
|
18
|
-
|
19
|
-
|
18
|
+
# Build a new class to have something to store and retrieve.
|
19
|
+
class Foo
|
20
|
+
attr_accessor :bar
|
21
|
+
end
|
22
|
+
foo = Foo.new
|
23
|
+
foo.bar = 42
|
24
|
+
# Store and retrieve the instance.
|
25
|
+
proc { KueStore[:key_three] = foo }.should_not raise_error
|
26
|
+
KueStore[:key_three].bar.should == 42
|
20
27
|
end
|
21
|
-
|
28
|
+
|
22
29
|
it 'should check for existance' do
|
23
30
|
KueStore.exists?(:non_existant).should be_false
|
24
31
|
|
25
32
|
KueStore[:existant] = 109
|
26
33
|
KueStore.exists?(:existant).should be_true
|
27
34
|
end
|
28
|
-
|
35
|
+
|
29
36
|
it 'should delete a key and value' do
|
30
37
|
KueStore[:delete_me] = 1098
|
31
38
|
KueStore.exists?(:delete_me).should be_true
|
32
39
|
KueStore.delete!(:delete_me).should be_true
|
33
40
|
KueStore.exists?(:delete_me).should be_false
|
34
41
|
end
|
35
|
-
|
42
|
+
|
36
43
|
it 'should not throw an error when deleting a key that does not exist' do
|
37
44
|
proc { KueStore.delete!(:non_existant) }.should_not raise_error
|
38
45
|
end
|
39
|
-
|
46
|
+
|
40
47
|
it 'should list all keys' do
|
41
48
|
KueStore[:k1] = 1
|
42
49
|
KueStore[:k2] = 2
|
43
50
|
KueStore[:k3] = 3
|
44
51
|
KueStore.keys.should == [:k1, :k2, :k3]
|
45
52
|
end
|
46
|
-
|
53
|
+
|
47
54
|
it 'should clear the store' do
|
48
55
|
KueStore[:k1] = 1
|
49
56
|
KueStore[:k2] = 2
|
@@ -51,18 +58,18 @@ describe KueStore do
|
|
51
58
|
KueStore.clear!
|
52
59
|
KueStore.keys.should be_empty
|
53
60
|
end
|
54
|
-
|
61
|
+
|
55
62
|
it 'should count all items in the store' do
|
56
63
|
KueStore[:k1] = 1
|
57
64
|
KueStore[:k2] = 2
|
58
65
|
KueStore[:k3] = 3
|
59
66
|
KueStore.count.should == 3
|
60
67
|
end
|
61
|
-
|
68
|
+
|
62
69
|
it 'should fail hard if a nil key is passed to []=' do
|
63
70
|
proc { KueStore[nil] = 1 }.should raise_error(Kue::KueNilKeyError)
|
64
71
|
end
|
65
|
-
|
72
|
+
|
66
73
|
it 'should return nil if a nil key is passed to []' do
|
67
74
|
KueStore[nil].should be_nil
|
68
75
|
end
|
@@ -72,7 +79,7 @@ describe 'Using Kue::Store outside of the KueStore class - introducing BlueStore
|
|
72
79
|
class BlueStore < ActiveRecord::Base
|
73
80
|
include Kue::Store
|
74
81
|
end
|
75
|
-
|
82
|
+
|
76
83
|
it 'should be able to be used as a kue store' do
|
77
84
|
BlueStore[:ok] = "One"
|
78
85
|
BlueStore[:ok].should == "One"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,27 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-05-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 3.
|
21
|
+
version: 3.2.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.2.3
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rspec
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: sqlite3
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: pry
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,7 +69,12 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
description: Store arbitrary key value pairs for your application using kue's simple
|
59
79
|
api'
|
60
80
|
email:
|
@@ -98,11 +118,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
118
|
version: '0'
|
99
119
|
requirements: []
|
100
120
|
rubyforge_project: kue
|
101
|
-
rubygems_version: 1.8.
|
121
|
+
rubygems_version: 1.8.21
|
102
122
|
signing_key:
|
103
123
|
specification_version: 3
|
104
124
|
summary: Kue is a simple key value store that uses ActiveRecord.
|
105
|
-
test_files:
|
106
|
-
- spec/config/database.yml
|
107
|
-
- spec/kue_spec.rb
|
108
|
-
- spec/spec_helper.rb
|
125
|
+
test_files: []
|