nsisam 0.1.1 → 0.2.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/Gemfile +1 -0
- data/VERSION +1 -1
- data/lib/fake_server.rb +62 -0
- data/lib/nsisam.rb +2 -0
- data/nsisam.gemspec +6 -2
- data/spec/nsisam_spec.rb +12 -17
- metadata +29 -17
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/fake_server.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
require "logger"
|
2
|
+
require "sinatra"
|
3
|
+
require "json"
|
4
|
+
require "thread"
|
5
|
+
require "errors"
|
6
|
+
|
7
|
+
module FakeServer
|
8
|
+
|
9
|
+
class Server < Sinatra::Application
|
10
|
+
|
11
|
+
configure :development do
|
12
|
+
Dir.mkdir('logs') unless File.exist?('logs')
|
13
|
+
$stderr.reopen("logs/output.log", "w")
|
14
|
+
end
|
15
|
+
|
16
|
+
put "/" do
|
17
|
+
content_type :json
|
18
|
+
incoming = JSON.parse(request.body.read)
|
19
|
+
{key: "value #{incoming["value"]} stored", checksum: "0"}.to_json
|
20
|
+
end
|
21
|
+
|
22
|
+
get "/" do
|
23
|
+
content_type :json
|
24
|
+
incoming = JSON.parse(request.body.read)
|
25
|
+
return 404 if incoming["key"].include? "dont"
|
26
|
+
{
|
27
|
+
metadata: "this is the metadata",
|
28
|
+
data: "data for key #{incoming["key"]}"
|
29
|
+
}.to_json
|
30
|
+
end
|
31
|
+
|
32
|
+
delete "/" do
|
33
|
+
content_type :json
|
34
|
+
incoming = JSON.parse(request.body.read)
|
35
|
+
return 404 if incoming["key"].include? "dont"
|
36
|
+
deleted = incoming["key"].include?("delete")
|
37
|
+
{deleted: deleted}.to_json
|
38
|
+
end
|
39
|
+
|
40
|
+
post "/" do
|
41
|
+
content_type :json
|
42
|
+
incoming = JSON.parse(request.body.read)
|
43
|
+
return 404 if incoming["key"].include? "dont"
|
44
|
+
{key: incoming["key"], checksum: 0}.to_json
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class FakeServerManager
|
49
|
+
def start_server
|
50
|
+
@thread = Thread.new do
|
51
|
+
Server.run! :port => 8888
|
52
|
+
end
|
53
|
+
sleep(1)
|
54
|
+
self
|
55
|
+
end
|
56
|
+
|
57
|
+
def stop_server
|
58
|
+
@thread.kill
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
data/lib/nsisam.rb
CHANGED
data/nsisam.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "nsisam"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Douglas Camata"]
|
12
|
-
s.date = "2012-02-
|
12
|
+
s.date = "2012-02-15"
|
13
13
|
s.description = "A simple gem to access a SAM node. For more info about SAM\n visit www.github.com/nsi-iff/sam_buildout."
|
14
14
|
s.email = "d.camata@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
"VERSION",
|
27
27
|
"lib/client.rb",
|
28
28
|
"lib/errors.rb",
|
29
|
+
"lib/fake_server.rb",
|
29
30
|
"lib/nsisam.rb",
|
30
31
|
"nsisam.gemspec",
|
31
32
|
"spec/nsisam_spec.rb",
|
@@ -42,6 +43,7 @@ Gem::Specification.new do |s|
|
|
42
43
|
|
43
44
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
44
45
|
s.add_runtime_dependency(%q<json>, [">= 0"])
|
46
|
+
s.add_runtime_dependency(%q<sinatra>, [">= 0"])
|
45
47
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
46
48
|
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
47
49
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
@@ -50,6 +52,7 @@ Gem::Specification.new do |s|
|
|
50
52
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
51
53
|
else
|
52
54
|
s.add_dependency(%q<json>, [">= 0"])
|
55
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
53
56
|
s.add_dependency(%q<rake>, [">= 0"])
|
54
57
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
55
58
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
@@ -59,6 +62,7 @@ Gem::Specification.new do |s|
|
|
59
62
|
end
|
60
63
|
else
|
61
64
|
s.add_dependency(%q<json>, [">= 0"])
|
65
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
62
66
|
s.add_dependency(%q<rake>, [">= 0"])
|
63
67
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
64
68
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
data/spec/nsisam_spec.rb
CHANGED
@@ -5,10 +5,11 @@ describe NSISam do
|
|
5
5
|
before :all do
|
6
6
|
@nsisam = NSISam::Client.new 'http://test:test@localhost:8888'
|
7
7
|
@keys = Array.new
|
8
|
+
@fake_sam = NSISam::FakeServerManager.new.start_server
|
8
9
|
end
|
9
10
|
|
10
11
|
after :all do
|
11
|
-
@
|
12
|
+
@fake_sam.stop_server
|
12
13
|
end
|
13
14
|
|
14
15
|
context "storing" do
|
@@ -17,15 +18,13 @@ describe NSISam do
|
|
17
18
|
response.should_not be_nil
|
18
19
|
response.should have_key("key")
|
19
20
|
response.should have_key("checksum")
|
20
|
-
|
21
|
-
@keys.push(response["key"])
|
22
21
|
end
|
23
22
|
end
|
24
23
|
|
25
24
|
context "deleting" do
|
26
25
|
it "can delete a stored value" do
|
27
|
-
|
28
|
-
response = @nsisam.delete(
|
26
|
+
@nsisam.store("delete this")["key"].should == 'value delete this stored'
|
27
|
+
response = @nsisam.delete("delete this")
|
29
28
|
response["deleted"].should be_true
|
30
29
|
end
|
31
30
|
|
@@ -36,30 +35,26 @@ describe NSISam do
|
|
36
35
|
|
37
36
|
context "retrieving" do
|
38
37
|
it "can retrieve a stored value" do
|
39
|
-
|
40
|
-
response = @nsisam.get(
|
41
|
-
response["data"].should == "retrieve this"
|
42
|
-
|
43
|
-
@keys.push(key)
|
38
|
+
@nsisam.store("retrieve this")["key"].should == 'value retrieve this stored'
|
39
|
+
response = @nsisam.get('retrieve this')
|
40
|
+
response["data"].should == "data for key retrieve this"
|
44
41
|
end
|
45
42
|
|
46
43
|
it "raises error when key not found" do
|
47
|
-
expect { @nsisam.get("
|
44
|
+
expect { @nsisam.get("i dont exist") }.to raise_error(NSISam::Errors::Client::KeyNotFoundError)
|
48
45
|
end
|
49
46
|
end
|
50
47
|
|
51
48
|
context "updating" do
|
52
49
|
it "can update values in keys already stored" do
|
53
|
-
|
54
|
-
response = @nsisam.update(
|
55
|
-
response["key"].should ==
|
50
|
+
@nsisam.store("update this")["key"].should == 'value update this stored'
|
51
|
+
response = @nsisam.update('update this', "updated")
|
52
|
+
response["key"].should == 'update this'
|
56
53
|
response.should have_key("checksum")
|
57
|
-
|
58
|
-
@keys.push(key)
|
59
54
|
end
|
60
55
|
|
61
56
|
it "raises error when key not found" do
|
62
|
-
expect { @nsisam.update("ruby is fast", "foo") }.to raise_error(NSISam::Errors::Client::KeyNotFoundError)
|
57
|
+
expect { @nsisam.update("dont exist ruby is fast", "foo") }.to raise_error(NSISam::Errors::Client::KeyNotFoundError)
|
63
58
|
end
|
64
59
|
end
|
65
60
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nsisam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70362386480220 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,21 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70362386480220
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: sinatra
|
27
|
+
requirement: &70362386478820 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70362386478820
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: rake
|
27
|
-
requirement: &
|
38
|
+
requirement: &70362386493740 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ! '>='
|
@@ -32,10 +43,10 @@ dependencies:
|
|
32
43
|
version: '0'
|
33
44
|
type: :development
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *70362386493740
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: rspec
|
38
|
-
requirement: &
|
49
|
+
requirement: &70362386491140 !ruby/object:Gem::Requirement
|
39
50
|
none: false
|
40
51
|
requirements:
|
41
52
|
- - ~>
|
@@ -43,10 +54,10 @@ dependencies:
|
|
43
54
|
version: 2.8.0
|
44
55
|
type: :development
|
45
56
|
prerelease: false
|
46
|
-
version_requirements: *
|
57
|
+
version_requirements: *70362386491140
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: rdoc
|
49
|
-
requirement: &
|
60
|
+
requirement: &70362386490240 !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
62
|
requirements:
|
52
63
|
- - ~>
|
@@ -54,10 +65,10 @@ dependencies:
|
|
54
65
|
version: '3.12'
|
55
66
|
type: :development
|
56
67
|
prerelease: false
|
57
|
-
version_requirements: *
|
68
|
+
version_requirements: *70362386490240
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: bundler
|
60
|
-
requirement: &
|
71
|
+
requirement: &70362386489400 !ruby/object:Gem::Requirement
|
61
72
|
none: false
|
62
73
|
requirements:
|
63
74
|
- - ~>
|
@@ -65,10 +76,10 @@ dependencies:
|
|
65
76
|
version: 1.0.0
|
66
77
|
type: :development
|
67
78
|
prerelease: false
|
68
|
-
version_requirements: *
|
79
|
+
version_requirements: *70362386489400
|
69
80
|
- !ruby/object:Gem::Dependency
|
70
81
|
name: jeweler
|
71
|
-
requirement: &
|
82
|
+
requirement: &70362386488720 !ruby/object:Gem::Requirement
|
72
83
|
none: false
|
73
84
|
requirements:
|
74
85
|
- - ~>
|
@@ -76,10 +87,10 @@ dependencies:
|
|
76
87
|
version: 1.8.3
|
77
88
|
type: :development
|
78
89
|
prerelease: false
|
79
|
-
version_requirements: *
|
90
|
+
version_requirements: *70362386488720
|
80
91
|
- !ruby/object:Gem::Dependency
|
81
92
|
name: simplecov
|
82
|
-
requirement: &
|
93
|
+
requirement: &70362386487900 !ruby/object:Gem::Requirement
|
83
94
|
none: false
|
84
95
|
requirements:
|
85
96
|
- - ! '>='
|
@@ -87,7 +98,7 @@ dependencies:
|
|
87
98
|
version: '0'
|
88
99
|
type: :development
|
89
100
|
prerelease: false
|
90
|
-
version_requirements: *
|
101
|
+
version_requirements: *70362386487900
|
91
102
|
description: ! "A simple gem to access a SAM node. For more info about SAM\n visit
|
92
103
|
www.github.com/nsi-iff/sam_buildout."
|
93
104
|
email: d.camata@gmail.com
|
@@ -106,6 +117,7 @@ files:
|
|
106
117
|
- VERSION
|
107
118
|
- lib/client.rb
|
108
119
|
- lib/errors.rb
|
120
|
+
- lib/fake_server.rb
|
109
121
|
- lib/nsisam.rb
|
110
122
|
- nsisam.gemspec
|
111
123
|
- spec/nsisam_spec.rb
|
@@ -125,7 +137,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
125
137
|
version: '0'
|
126
138
|
segments:
|
127
139
|
- 0
|
128
|
-
hash:
|
140
|
+
hash: -642523278506786029
|
129
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
142
|
none: false
|
131
143
|
requirements:
|