ccp 0.2.3 → 0.2.4
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/lib/ccp/persistent/base.rb +1 -1
- data/lib/ccp/persistent/dir.rb +9 -1
- data/lib/ccp/persistent/file.rb +1 -1
- data/lib/ccp/version.rb +1 -1
- data/spec/persistent/dir_spec.rb +37 -0
- data/spec/persistent/file_spec.rb +35 -0
- metadata +4 -4
data/lib/ccp/persistent/base.rb
CHANGED
data/lib/ccp/persistent/dir.rb
CHANGED
@@ -29,7 +29,7 @@ class Ccp::Persistent::Dir < Ccp::Persistent::Base
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def keys
|
32
|
-
Dir["#{path}/*.#{ext}"].map{|i| File.basename(i, ".*")}.sort
|
32
|
+
Dir["#{path!}/*.#{ext}"].map{|i| File.basename(i, ".*")}.sort
|
33
33
|
end
|
34
34
|
|
35
35
|
def truncate
|
@@ -41,6 +41,14 @@ class Ccp::Persistent::Dir < Ccp::Persistent::Base
|
|
41
41
|
end
|
42
42
|
|
43
43
|
private
|
44
|
+
def path!
|
45
|
+
if path.exist?
|
46
|
+
path
|
47
|
+
else
|
48
|
+
raise Ccp::Persistent::NotFound, path.to_s
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
44
52
|
def path_for(key, mkdir = true)
|
45
53
|
path.mkpath if mkdir
|
46
54
|
path + "#{key}.#{ext}"
|
data/lib/ccp/persistent/file.rb
CHANGED
data/lib/ccp/version.rb
CHANGED
data/spec/persistent/dir_spec.rb
CHANGED
@@ -76,6 +76,36 @@ describe Ccp::Persistent::Dir do
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
+
describe "#read" do
|
80
|
+
it "should fetch all data if exists" do
|
81
|
+
(root + "foo.json").open("w+"){|f| f.print "1"}
|
82
|
+
(root + "bar.json").open("w+"){|f| f.print "2"}
|
83
|
+
kvs = Ccp::Persistent::Dir.new(root, :json)
|
84
|
+
kvs.read.should == {"foo"=>1, "bar"=>2}
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should return {} if the path doesn't exist" do
|
88
|
+
kvs = Ccp::Persistent::Dir.new(root + "no-such-path", :json)
|
89
|
+
kvs.read.should == {}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe "#read!" do
|
94
|
+
it "should fetch all data if exists" do
|
95
|
+
(root + "foo.json").open("w+"){|f| f.print "1"}
|
96
|
+
(root + "bar.json").open("w+"){|f| f.print "2"}
|
97
|
+
kvs = Ccp::Persistent::Dir.new(root, :json)
|
98
|
+
kvs.read!.should == {"foo"=>1, "bar"=>2}
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should raise NotFound if the path doesn't exist" do
|
102
|
+
kvs = Ccp::Persistent::Dir.new(root + "no-such-path", :json)
|
103
|
+
lambda {
|
104
|
+
kvs.read!
|
105
|
+
}.should raise_error(Ccp::Persistent::NotFound)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
79
109
|
describe "#keys" do
|
80
110
|
it "should return a sorted array of key names filtered by given ext" do
|
81
111
|
["1.json", "2.yaml", "3.json"].each do |i|
|
@@ -85,6 +115,13 @@ describe Ccp::Persistent::Dir do
|
|
85
115
|
kvs = Ccp::Persistent::Dir.new(root, :json)
|
86
116
|
kvs.keys.should == ["1","3"]
|
87
117
|
end
|
118
|
+
|
119
|
+
it "should raise NotFound if the path doesn't exist" do
|
120
|
+
kvs = Ccp::Persistent::Dir.new(root + "no-such-path", :json)
|
121
|
+
lambda {
|
122
|
+
kvs.keys
|
123
|
+
}.should raise_error(Ccp::Persistent::NotFound)
|
124
|
+
end
|
88
125
|
end
|
89
126
|
|
90
127
|
describe "#truncate" do
|
@@ -103,12 +103,47 @@ describe Ccp::Persistent::File do
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
|
+
describe "#read" do
|
107
|
+
it "should fetch all data if exists" do
|
108
|
+
db.open("w+"){|f| f.print(JSON.dump({"foo" => 1, "bar" => 2}))}
|
109
|
+
kvs = Ccp::Persistent::File.new(db, :json)
|
110
|
+
kvs.read.should == {"foo" =>1, "bar" =>2}
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should raise NotFound if the path doesn't exist" do
|
114
|
+
kvs = Ccp::Persistent::File.new(db + "no-such-file", :json)
|
115
|
+
kvs.read.should == {}
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe "#read!" do
|
120
|
+
it "should fetch all data if exists" do
|
121
|
+
db.open("w+"){|f| f.print(JSON.dump({"foo" => 1, "bar" => 2}))}
|
122
|
+
kvs = Ccp::Persistent::File.new(db, :json)
|
123
|
+
kvs.read!.should == {"foo" =>1, "bar" =>2}
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should raise NotFound if the path doesn't exist" do
|
127
|
+
kvs = Ccp::Persistent::File.new(db + "no-such-file", :json)
|
128
|
+
lambda {
|
129
|
+
kvs.read!
|
130
|
+
}.should raise_error(Ccp::Persistent::NotFound)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
106
134
|
describe "#keys" do
|
107
135
|
it "should return a sorted array of key names filtered by given ext" do
|
108
136
|
db.open("w+"){|f| f.print(JSON.dump({"foo" => 1, "bar" => "xxx"}))}
|
109
137
|
kvs = Ccp::Persistent::File.new(db, :json)
|
110
138
|
kvs.keys.should == ["bar", "foo"]
|
111
139
|
end
|
140
|
+
|
141
|
+
it "should raise NotFound if the path doesn't exist" do
|
142
|
+
kvs = Ccp::Persistent::File.new(db + "no-such-file", :json)
|
143
|
+
lambda {
|
144
|
+
kvs.keys
|
145
|
+
}.should raise_error(Ccp::Persistent::NotFound)
|
146
|
+
end
|
112
147
|
end
|
113
148
|
|
114
149
|
describe "#truncate" do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ccp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 4
|
10
|
+
version: 0.2.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- maiha
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-05-
|
18
|
+
date: 2012-05-11 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|