dms 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +2 -2
- data/README.rdoc +28 -0
- data/dms.gemspec +1 -1
- data/lib/dms/node.rb +7 -4
- data/lib/dms/version.rb +1 -1
- data/spec/{api_spec.rb → dms/api_spec.rb} +1 -1
- data/spec/{node_spec.rb → dms/node_spec.rb} +18 -1
- data/spec/fixtures/responses.yml +24 -0
- data/spec/spec.opts +3 -0
- data/spec/spec_helper.rb +4 -0
- metadata +14 -11
data/Gemfile.lock
CHANGED
@@ -12,7 +12,7 @@ GEM
|
|
12
12
|
httparty (0.6.1)
|
13
13
|
crack (= 0.1.8)
|
14
14
|
rspec (1.3.1)
|
15
|
-
webmock (1.
|
15
|
+
webmock (1.4.0)
|
16
16
|
addressable (>= 2.2.2)
|
17
17
|
crack (>= 0.1.7)
|
18
18
|
|
@@ -24,4 +24,4 @@ DEPENDENCIES
|
|
24
24
|
dms!
|
25
25
|
httparty (>= 0.6.1)
|
26
26
|
rspec (= 1.3.1)
|
27
|
-
webmock (= 1.
|
27
|
+
webmock (= 1.4.0)
|
data/README.rdoc
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
= DMS
|
2
|
+
|
3
|
+
A Ruby Gem to access FourCubed Data Management System REST API.
|
4
|
+
|
5
|
+
== Dependencies
|
6
|
+
|
7
|
+
* HTTParty[http://github.com/jnunemaker/httparty]
|
8
|
+
|
9
|
+
== Usage Example
|
10
|
+
|
11
|
+
require 'rubygems'
|
12
|
+
require 'dms'
|
13
|
+
|
14
|
+
api_token = "123456token"
|
15
|
+
api_access_key = "12345accesskey"
|
16
|
+
api = DMS::API.new(api_token, api_access_key)
|
17
|
+
|
18
|
+
doc = api.get("documents/1-title")
|
19
|
+
doc.text
|
20
|
+
=> "Document body"
|
21
|
+
doc.html
|
22
|
+
=> "<p>Document body</p>"
|
23
|
+
doc.name
|
24
|
+
=> "Title"
|
25
|
+
|
26
|
+
== Authors
|
27
|
+
|
28
|
+
* {Jose Fernandez}[http://github.com/jfernandez]
|
data/dms.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
|
19
19
|
s.add_development_dependency("bundler", ">= 1.0.3")
|
20
20
|
s.add_development_dependency("rspec", "1.3.1")
|
21
|
-
s.add_development_dependency("webmock", "1.
|
21
|
+
s.add_development_dependency("webmock", "1.4.0")
|
22
22
|
|
23
23
|
s.files = `git ls-files`.split("\n")
|
24
24
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
data/lib/dms/node.rb
CHANGED
@@ -4,13 +4,16 @@ module DMS
|
|
4
4
|
attr_reader :type
|
5
5
|
attr_reader :text
|
6
6
|
attr_reader :html
|
7
|
+
attr_reader :expires_on
|
7
8
|
|
8
9
|
def initialize(response)
|
9
10
|
@response = response
|
10
|
-
|
11
|
-
@
|
12
|
-
@
|
13
|
-
@
|
11
|
+
hash = @response.parsed_response.values.first
|
12
|
+
@name = hash["name"]
|
13
|
+
@type = hash["type"]
|
14
|
+
@text = hash["body"]
|
15
|
+
@html = hash["html"]
|
16
|
+
@expires_on = Date.parse(hash["expires_on"]) rescue nil
|
14
17
|
end
|
15
18
|
end
|
16
19
|
|
data/lib/dms/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe DMS::API do
|
4
|
-
let(:responses) { YAML::load(
|
4
|
+
let(:responses) { YAML::load(file_fixture("responses.yml")) }
|
5
5
|
|
6
6
|
before(:each) do
|
7
7
|
stub_request(:get, /dms\.fourcubed\.com/).to_return(responses[200])
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe DMS::Node do
|
4
|
-
let(:responses) { YAML::load(
|
4
|
+
let(:responses) { YAML::load(file_fixture("responses.yml")) }
|
5
5
|
|
6
6
|
before(:each) do
|
7
7
|
stub_request(:get, /dms\.fourcubed\.com/).to_return(responses[200])
|
@@ -33,6 +33,23 @@ describe DMS::Node do
|
|
33
33
|
@node = DMS::Node.new(@response)
|
34
34
|
@node.html.should == "<p>This is the body</p>"
|
35
35
|
end
|
36
|
+
|
37
|
+
it "sets the @expires_on value correct" do
|
38
|
+
@node = DMS::Node.new(@response)
|
39
|
+
@node.expires_on.should == Date.parse("2010/01/01")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "when a valid HTTParty::Response instance is passed wich doesn't have an expires_on value" do
|
44
|
+
before(:each) do
|
45
|
+
stub_request(:get, /dms\.fourcubed\.com/).to_return(responses["200_no_expiration"])
|
46
|
+
@response = @api.send(:perform_request, "documents/1-foobar")
|
47
|
+
end
|
48
|
+
|
49
|
+
it "sets the @expires_on to nil" do
|
50
|
+
@node = DMS::Node.new(@response)
|
51
|
+
@node.expires_on.should be_nil
|
52
|
+
end
|
36
53
|
end
|
37
54
|
end
|
38
55
|
end
|
data/spec/fixtures/responses.yml
CHANGED
@@ -15,6 +15,30 @@
|
|
15
15
|
<document>
|
16
16
|
<name>Foobar</name>
|
17
17
|
<body nil="true">This is the body</body>
|
18
|
+
<expires-on>2010-01-01</expires-on>
|
19
|
+
<id type="integer">1</id>
|
20
|
+
<type>Document</type>
|
21
|
+
<html><p>This is the body</p></html>
|
22
|
+
</document>
|
23
|
+
|
24
|
+
200_no_expiration: |
|
25
|
+
HTTP/1.1 200 OK
|
26
|
+
Content-Type: application/xml; charset=utf-8
|
27
|
+
Transfer-Encoding: chunked
|
28
|
+
Connection: keep-alive
|
29
|
+
Status: 200
|
30
|
+
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.2.10
|
31
|
+
ETag: "5c7e90c6c325b5546c28ea8f9ac510ab"
|
32
|
+
X-UA-Compatible: IE=Edge,chrome=1
|
33
|
+
X-Runtime: 0.009064
|
34
|
+
Cache-Control: max-age=0, private, must-revalidate
|
35
|
+
Server: nginx/0.6.35 + Phusion Passenger 2.2.10 (mod_rails/mod_rack)
|
36
|
+
|
37
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
38
|
+
<document>
|
39
|
+
<name>Foobar</name>
|
40
|
+
<body nil="true">This is the body</body>
|
41
|
+
<expires-on></expires-on>
|
18
42
|
<id type="integer">1</id>
|
19
43
|
<type>Document</type>
|
20
44
|
<html><p>This is the body</p></html>
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jose Fernandez
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-05 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -74,12 +74,12 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - "="
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
hash:
|
77
|
+
hash: 7
|
78
78
|
segments:
|
79
79
|
- 1
|
80
|
-
-
|
80
|
+
- 4
|
81
81
|
- 0
|
82
|
-
version: 1.
|
82
|
+
version: 1.4.0
|
83
83
|
type: :development
|
84
84
|
version_requirements: *id004
|
85
85
|
description: Ruby Gem for the FourCubed Data Management System. Wrapper for the RESTful API
|
@@ -95,15 +95,17 @@ files:
|
|
95
95
|
- .gitignore
|
96
96
|
- Gemfile
|
97
97
|
- Gemfile.lock
|
98
|
+
- README.rdoc
|
98
99
|
- Rakefile
|
99
100
|
- dms.gemspec
|
100
101
|
- lib/dms.rb
|
101
102
|
- lib/dms/api.rb
|
102
103
|
- lib/dms/node.rb
|
103
104
|
- lib/dms/version.rb
|
104
|
-
- spec/api_spec.rb
|
105
|
+
- spec/dms/api_spec.rb
|
106
|
+
- spec/dms/node_spec.rb
|
105
107
|
- spec/fixtures/responses.yml
|
106
|
-
- spec/
|
108
|
+
- spec/spec.opts
|
107
109
|
- spec/spec_helper.rb
|
108
110
|
has_rdoc: true
|
109
111
|
homepage: http://rubygems.org/gems/dms
|
@@ -140,7 +142,8 @@ signing_key:
|
|
140
142
|
specification_version: 3
|
141
143
|
summary: Ruby Gem for the FourCubed Data Management System
|
142
144
|
test_files:
|
143
|
-
- spec/api_spec.rb
|
145
|
+
- spec/dms/api_spec.rb
|
146
|
+
- spec/dms/node_spec.rb
|
144
147
|
- spec/fixtures/responses.yml
|
145
|
-
- spec/
|
148
|
+
- spec/spec.opts
|
146
149
|
- spec/spec_helper.rb
|