dms 0.0.2 → 0.0.3
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.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
|