rails_kvs_driver 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rails_kvs_driver/version.rb +1 -1
- data/lib/rails_kvs_driver.rb +3 -3
- data/spec/common_example.rb +132 -0
- data/spec/rails_kvs_driver_spec.rb +17 -12
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9c2d6bc0f0efa423e900af03e85f7f483a1c130
|
4
|
+
data.tar.gz: eef288a528f469bbb1b9d8a13ab6738ad6a1657a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a8ac3db947ca01228bd56851dbafc146feb00f4e3a9f8d6c6e41107b7dec4c306a099aba15a52b2dc6840d1e57e4b79a0ca801212d6d564e8b1e5687578e732
|
7
|
+
data.tar.gz: 2b710cfc50e54ba49492be948f85797a04d7789fcca0600626b9e1e695dfbe5954a28184982f09f96a0256de3928116b3dc3850c7705e71dca640486a71cbb5b
|
data/lib/rails_kvs_driver.rb
CHANGED
@@ -75,7 +75,7 @@ module RailsKvsDriver
|
|
75
75
|
# delete all keys from kvs.
|
76
76
|
# @return [Boolean] result.
|
77
77
|
# @abstract delete all keys from kvs.
|
78
|
-
def delete_all
|
78
|
+
def delete_all
|
79
79
|
raise NoMethodError
|
80
80
|
end
|
81
81
|
|
@@ -123,7 +123,7 @@ module RailsKvsDriver
|
|
123
123
|
# @param member [String] member of sorted set.
|
124
124
|
# @return [Float] score of member.
|
125
125
|
# @abstract get the score of member.
|
126
|
-
def
|
126
|
+
def sorted_set_score(key, member)
|
127
127
|
raise NoMethodError
|
128
128
|
end
|
129
129
|
|
@@ -136,7 +136,7 @@ module RailsKvsDriver
|
|
136
136
|
# @param reverse [Boolean] order by desc
|
137
137
|
# @return [Array<String, Float>>] array of the member and score.
|
138
138
|
# @abstract get array of sorted set.
|
139
|
-
def
|
139
|
+
def sorted_set(key, start=0, stop=-1, reverse=false)
|
140
140
|
raise NoMethodError
|
141
141
|
end
|
142
142
|
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# How to use
|
2
|
+
# copying #{ProjectRoot}/spec
|
3
|
+
#
|
4
|
+
# require "common_example"
|
5
|
+
#
|
6
|
+
# it_should_behave_like 'RailsKvsDriver example', driver_class, driver_config
|
7
|
+
#
|
8
|
+
|
9
|
+
shared_examples_for 'RailsKvsDriver example' do |driver_class, driver_config|
|
10
|
+
|
11
|
+
it 'inheritance RailsKvsDriver::Base' do
|
12
|
+
expect(driver_class.ancestors.include?(RailsKvsDriver::Base)).to be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'connect kvs' do
|
16
|
+
before(:each) do
|
17
|
+
driver_class::session(driver_config) do |kvs|
|
18
|
+
kvs.delete_all
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
after(:each) do
|
23
|
+
driver_class::session(driver_config) do |kvs|
|
24
|
+
kvs.delete_all
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'call set value' do
|
29
|
+
driver_class::session(driver_config) do |kvs|
|
30
|
+
expect{ kvs['example'] = 'nico-nico' }.to change{ kvs.all_keys.length }.by(1)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'call get value' do
|
35
|
+
driver_class::session(driver_config) do |kvs|
|
36
|
+
expect{ kvs['example'] = 'nico-nico' }.to change{ kvs.all_keys.length }.by(1)
|
37
|
+
expect(kvs['example']).to eq('nico-nico')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'call all keys' do
|
42
|
+
driver_class::session(driver_config) do |kvs|
|
43
|
+
expect{ kvs['example'] = 'nico-nico' }.to change{ kvs.all_keys.length }.by(1)
|
44
|
+
expect(kvs.all_keys.length).to eq(1)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'call delete value' do
|
49
|
+
driver_class::session(driver_config) do |kvs|
|
50
|
+
kvs['example'] = 'nico-nico'
|
51
|
+
kvs['example2'] = 'movie'
|
52
|
+
|
53
|
+
expect{ kvs.delete('example') }.to change{ kvs.all_keys.length }.by(-1)
|
54
|
+
|
55
|
+
expect(kvs['example']).to eq(nil)
|
56
|
+
expect(kvs['example2']).to eq('movie')
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'call delete_all' do
|
61
|
+
driver_class::session(driver_config) do |kvs|
|
62
|
+
kvs['example'] = 'nico-nico'
|
63
|
+
kvs['example2'] = 'movie'
|
64
|
+
|
65
|
+
expect{ kvs.delete_all }.to change{ kvs.all_keys.length }.by(-2)
|
66
|
+
|
67
|
+
expect(kvs['example']).to eq(nil)
|
68
|
+
expect(kvs['example2']).to eq(nil)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'call add_sorted_set' do
|
73
|
+
driver_class::session(driver_config) do |kvs|
|
74
|
+
expect{
|
75
|
+
kvs.add_sorted_set('example', 'element', 1)
|
76
|
+
}.to change{ kvs.all_keys.length }.by(1)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'call remove_sorted_set' do
|
81
|
+
driver_class::session(driver_config) do |kvs|
|
82
|
+
kvs.add_sorted_set('example', 'element', 1)
|
83
|
+
kvs.add_sorted_set('example', 'element2', 1)
|
84
|
+
|
85
|
+
expect{
|
86
|
+
kvs.remove_sorted_set('example', 'element')
|
87
|
+
}.to change{ kvs.count_sorted_set_member('example') }.by(-1)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'call increment_sorted_set' do
|
92
|
+
driver_class::session(driver_config) do |kvs|
|
93
|
+
kvs.add_sorted_set('example', 'element', 1)
|
94
|
+
|
95
|
+
expect{
|
96
|
+
kvs.increment_sorted_set('example', 'element', 10)
|
97
|
+
}.to change{ kvs.sorted_set_score('example', 'element') }.by(10)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'call sorted_set' do
|
102
|
+
driver_class::session(driver_config) do |kvs|
|
103
|
+
kvs.add_sorted_set('example', 'element1', 1)
|
104
|
+
kvs.add_sorted_set('example', 'element5', 5)
|
105
|
+
kvs.add_sorted_set('example', 'element2', 2)
|
106
|
+
|
107
|
+
sorted_set = kvs.sorted_set('example')
|
108
|
+
|
109
|
+
expect(sorted_set[0][0]).to eq('element1')
|
110
|
+
expect(sorted_set[1][0]).to eq('element2')
|
111
|
+
expect(sorted_set[2][0]).to eq('element5')
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'call sorted_set_score' do
|
116
|
+
driver_class::session(driver_config) do |kvs|
|
117
|
+
kvs.add_sorted_set('example', 'element5', 5)
|
118
|
+
expect(kvs.sorted_set('example')[0][1]).to eq(5)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'call count_sorted_set_member' do
|
123
|
+
driver_class::session(driver_config) do |kvs|
|
124
|
+
kvs.add_sorted_set('example', 'element1', 5)
|
125
|
+
kvs.add_sorted_set('example', 'element2', 5)
|
126
|
+
kvs.add_sorted_set('example', 'element3', 5)
|
127
|
+
expect(kvs.count_sorted_set_member('example')).to eq(3)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
@@ -25,52 +25,57 @@ describe RailsKvsDriver do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'raise NoMethodError when does not override []' do
|
28
|
-
expect
|
28
|
+
expect(MockDriver.method_defined?('[]')).to be_true
|
29
29
|
expect{MockDriver.new['a']}.to raise_error
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'raise NoMethodError when does not override []=' do
|
33
|
-
expect
|
33
|
+
expect(MockDriver.method_defined?('[]=')).to be_true
|
34
34
|
expect{MockDriver.new['a']='b'}.to raise_error
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'raise NoMethodError when does not override all_keys' do
|
38
|
-
expect
|
38
|
+
expect(MockDriver.method_defined?(:all_keys)).to be_true
|
39
39
|
expect{MockDriver.new.all_keys}.to raise_error
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'raise NoMethodError when does not override delete' do
|
43
|
-
expect
|
43
|
+
expect(MockDriver.method_defined?(:delete)).to be_true
|
44
44
|
expect{MockDriver.new.delete}.to raise_error
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'raise NoMethodError when does not override delete_all' do
|
48
|
-
expect
|
48
|
+
expect(MockDriver.method_defined?(:delete_all)).to be_true
|
49
49
|
expect{MockDriver.new.delete_all}.to raise_error
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'raise NoMethodError when does not override add_sorted_set' do
|
53
|
-
expect
|
53
|
+
expect(MockDriver.method_defined?(:add_sorted_set)).to be_true
|
54
54
|
expect{MockDriver.new.add_sorted_set}.to raise_error
|
55
55
|
end
|
56
56
|
|
57
57
|
it 'raise NoMethodError when does not override remove_sorted_set' do
|
58
|
-
expect
|
58
|
+
expect(MockDriver.method_defined?(:remove_sorted_set)).to be_true
|
59
59
|
expect{MockDriver.new.remove_sorted_set}.to raise_error
|
60
60
|
end
|
61
61
|
|
62
62
|
it 'raise NoMethodError when does not override increment_sorted_set' do
|
63
|
-
expect
|
63
|
+
expect(MockDriver.method_defined?(:increment_sorted_set)).to be_true
|
64
64
|
expect{MockDriver.new.increment_sorted_set}.to raise_error
|
65
65
|
end
|
66
66
|
|
67
|
-
it 'raise NoMethodError when does not override
|
68
|
-
expect
|
69
|
-
expect{MockDriver.new.
|
67
|
+
it 'raise NoMethodError when does not override sorted_set_score' do
|
68
|
+
expect(MockDriver.method_defined?(:sorted_set_score)).to be_true
|
69
|
+
expect{MockDriver.new.sorted_set_score}.to raise_error
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'raise NoMethodError when does not override sorted_set' do
|
73
|
+
expect(MockDriver.method_defined?(:sorted_set)).to be_true
|
74
|
+
expect{MockDriver.new.sorted_set}.to raise_error
|
70
75
|
end
|
71
76
|
|
72
77
|
it 'raise NoMethodError when does not override count_sorted_set_member' do
|
73
|
-
expect
|
78
|
+
expect(MockDriver.method_defined?(:count_sorted_set_member)).to be_true
|
74
79
|
expect{MockDriver.new.count_sorted_set_member}.to raise_error
|
75
80
|
end
|
76
81
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_kvs_driver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alfa-jpn
|
@@ -95,6 +95,7 @@ files:
|
|
95
95
|
- lib/rails_kvs_driver.rb
|
96
96
|
- lib/rails_kvs_driver/version.rb
|
97
97
|
- rails_kvs_driver.gemspec
|
98
|
+
- spec/common_example.rb
|
98
99
|
- spec/rails_kvs_driver_spec.rb
|
99
100
|
- spec/spec_helper.rb
|
100
101
|
homepage: https://github.com/alfa-jpn/rails-kvs-driver
|
@@ -122,6 +123,7 @@ signing_key:
|
|
122
123
|
specification_version: 4
|
123
124
|
summary: rails kvs driver wrap access key-value store.
|
124
125
|
test_files:
|
126
|
+
- spec/common_example.rb
|
125
127
|
- spec/rails_kvs_driver_spec.rb
|
126
128
|
- spec/spec_helper.rb
|
127
129
|
has_rdoc:
|