nsicloudooo 0.2.6 → 0.2.7
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/VERSION +1 -1
- data/lib/nsicloudooo/client.rb +34 -7
- data/lib/nsicloudooo/errors.rb +12 -0
- data/nsicloudooo.gemspec +2 -2
- data/spec/nsicloudooo_spec.rb +6 -0
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.7
|
data/lib/nsicloudooo/client.rb
CHANGED
@@ -27,14 +27,20 @@ module NSICloudooo
|
|
27
27
|
# @example A simple granulation
|
28
28
|
# require 'base64'
|
29
29
|
# doc = Base64.encode64(File.new('document.odt', 'r').read)
|
30
|
-
# nsicloudooo.granulate(:file => doc, :filename => 'document.odt')
|
30
|
+
# response = nsicloudooo.granulate(:file => doc, :filename => 'document.odt')
|
31
|
+
# nsicloudooo.done(response["doc_key"])
|
32
|
+
# nsicloudooo.grains_keys_for(response["doc_key"])
|
31
33
|
# @example Granulating from a SAM uid
|
32
34
|
# doc = Base64.encode64(File.new('document.odt', 'r').read)
|
33
35
|
# response = sam.store({:doc => doc})
|
34
36
|
# doc_key = response["doc_key"]
|
35
|
-
# nsicloudooo.granulate(:sam_uid => doc_key, :filename => 'document.odt')
|
37
|
+
# response = nsicloudooo.granulate(:sam_uid => doc_key, :filename => 'document.odt')
|
38
|
+
# nsicloudooo.done(response["doc_key"])
|
39
|
+
# nsicloudooo.grains_keys_for(response["doc_key"])
|
36
40
|
# @example Downloading and granulating from web
|
37
|
-
# nsicloudooo.granulate(:doc_link => 'http://google.com/document.odt')
|
41
|
+
# response = nsicloudooo.granulate(:doc_link => 'http://google.com/document.odt')
|
42
|
+
# nsicloudooo.done(response["doc_key"])
|
43
|
+
# nsicloudooo.grains_keys_for(response["doc_key"])
|
38
44
|
# @example Sending a callback url
|
39
45
|
# doc = Base64.encode64(File.new('document.odt', 'r').read)
|
40
46
|
# nsicloudooo.granulate(:file => doc, :filename => 'document.odt', :callback => 'http://google.com')
|
@@ -46,16 +52,24 @@ module NSICloudooo
|
|
46
52
|
#
|
47
53
|
# @return [Hash] response
|
48
54
|
# * "doc_key" [String] the key to access the granulated document if the sam node it was stored
|
55
|
+
#
|
56
|
+
# @raise NSICloudooo::Errors::Client::MissingParametersError when an invalid or incomplete set of parameters is provided
|
57
|
+
# @raise NSICloudooo::Errors::Client::SAMConnectionError when cannot connect to the SAM node
|
58
|
+
# @raise NSICloudooo::Errors::Client::AuthenticationError when invalids user and/or password are provided
|
59
|
+
# @raise NSICloudooo::Errors::Client::KeyNotFoundError when an invalid sam_uid is provided
|
60
|
+
#
|
49
61
|
def granulate(options = {})
|
50
62
|
@request_data = Hash.new
|
51
63
|
if options[:doc_link]
|
52
64
|
insert_download_data options
|
53
|
-
elsif options[:sam_uid]
|
65
|
+
elsif options[:sam_uid] && options[:filename]
|
54
66
|
file_data = {:sam_uid => options[:sam_uid], :filename => options[:filename]}
|
55
67
|
@request_data.merge! file_data
|
56
|
-
|
68
|
+
elsif options[:file] && options[:filename]
|
57
69
|
file_data = {:doc => options[:file], :filename => options[:filename]}
|
58
70
|
@request_data.merge! file_data
|
71
|
+
else
|
72
|
+
raise NSICloudooo::Errors::Client::MissingParametersError
|
59
73
|
end
|
60
74
|
insert_callback_data options
|
61
75
|
request = prepare_request :POST, @request_data.to_json
|
@@ -64,7 +78,6 @@ module NSICloudooo
|
|
64
78
|
|
65
79
|
# Verify if a document is already granulated
|
66
80
|
#
|
67
|
-
# @raise NSICloudooo::Errors::Client:KeyNotFoundError when an invalid document key is provided
|
68
81
|
#
|
69
82
|
# @param [String] key of the desired document
|
70
83
|
# @return [Hash] response
|
@@ -72,6 +85,11 @@ module NSICloudooo
|
|
72
85
|
#
|
73
86
|
# @example
|
74
87
|
# nsicloudooo.done("some key")
|
88
|
+
#
|
89
|
+
# @raise NSICloudooo::Errors::Client::SAMConnectionError when cannot connect to the SAM node
|
90
|
+
# @raise NSICloudooo::Errors::Client::AuthenticationError when invalids user and/or password are provided
|
91
|
+
# @raise NSICloudooo::Errors::Client::KeyNotFoundError when an invalid key is provided
|
92
|
+
#
|
75
93
|
def done(key)
|
76
94
|
request = prepare_request :GET, {:key => key}.to_json
|
77
95
|
execute_request(request)
|
@@ -79,7 +97,6 @@ module NSICloudooo
|
|
79
97
|
|
80
98
|
# Return the keys of the grains of a document
|
81
99
|
#
|
82
|
-
# @raise NSICloudooo::Errors::Client:KeyNotFoundError when an invalid document key is provided
|
83
100
|
#
|
84
101
|
# @param [String] key of the desired document
|
85
102
|
# @return [Hash] response
|
@@ -88,6 +105,11 @@ module NSICloudooo
|
|
88
105
|
#
|
89
106
|
# @example
|
90
107
|
# nsicloudooo.grains_keys_for("some key")
|
108
|
+
#
|
109
|
+
# @raise NSICloudooo::Errors::Client::SAMConnectionError when cannot connect to the SAM node
|
110
|
+
# @raise NSICloudooo::Errors::Client::AuthenticationError when invalids user and/or password are provided
|
111
|
+
# @raise NSICloudooo::Errors::Client::KeyNotFoundError when an invalid key is provided
|
112
|
+
#
|
91
113
|
def grains_keys_for(document_key)
|
92
114
|
request = prepare_request :GET, {:doc_key => document_key}.to_json
|
93
115
|
execute_request(request)
|
@@ -118,6 +140,11 @@ module NSICloudooo
|
|
118
140
|
http.request(request)
|
119
141
|
end
|
120
142
|
raise NSICloudooo::Errors::Client::KeyNotFoundError if response.code == "404"
|
143
|
+
raise NSICloudooo::Errors::Client::MalformedRequestError if response.code == "400"
|
144
|
+
raise NSICloudooo::Errors::Client::AuthenticationError if response.code == "401"
|
145
|
+
if response.code == "500" and response.body.include?("SAM")
|
146
|
+
raise NSICloudooo::Errors::Client::SAMConnectionError
|
147
|
+
end
|
121
148
|
JSON.parse(response.body)
|
122
149
|
end
|
123
150
|
end
|
data/lib/nsicloudooo/errors.rb
CHANGED
@@ -3,6 +3,18 @@ module NSICloudooo
|
|
3
3
|
module Client
|
4
4
|
class KeyNotFoundError < RuntimeError
|
5
5
|
end
|
6
|
+
|
7
|
+
class MissingParametersError < RuntimeError
|
8
|
+
end
|
9
|
+
|
10
|
+
class MalformedRequestError < RuntimeError
|
11
|
+
end
|
12
|
+
|
13
|
+
class AuthenticationError < RuntimeError
|
14
|
+
end
|
15
|
+
|
16
|
+
class SAMConnectionError < RuntimeError
|
17
|
+
end
|
6
18
|
end
|
7
19
|
end
|
8
20
|
end
|
data/nsicloudooo.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "nsicloudooo"
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.7"
|
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-04-
|
12
|
+
s.date = "2012-04-03"
|
13
13
|
s.description = "A simple gem to access a nsi.cloudooo node"
|
14
14
|
s.email = "d.camata@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
data/spec/nsicloudooo_spec.rb
CHANGED
@@ -20,6 +20,12 @@ describe NSICloudooo do
|
|
20
20
|
response.should_not be_nil
|
21
21
|
response["doc_key"].should == "key for document test.odt"
|
22
22
|
end
|
23
|
+
|
24
|
+
it "should throw error if any required parameter is missing" do
|
25
|
+
expect { @nsicloudooo.granulate(:file => 'document') }.to raise_error(NSICloudooo::Errors::Client::MissingParametersError)
|
26
|
+
expect { @nsicloudooo.granulate(:sam_uid => 'document') }.to raise_error(NSICloudooo::Errors::Client::MissingParametersError)
|
27
|
+
expect { @nsicloudooo.granulate(:filename => 'document') }.to raise_error(NSICloudooo::Errors::Client::MissingParametersError)
|
28
|
+
end
|
23
29
|
end
|
24
30
|
|
25
31
|
context "granulation with conversion" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nsicloudooo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
@@ -144,7 +144,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
144
144
|
version: '0'
|
145
145
|
segments:
|
146
146
|
- 0
|
147
|
-
hash:
|
147
|
+
hash: 1165319240348010888
|
148
148
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|