dms 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.5.0)
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.5.0)
27
+ webmock (= 1.4.0)
@@ -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]
@@ -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.5.0")
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")
@@ -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
- @name = @response.parsed_response.values.first["name"]
11
- @type = @response.parsed_response.values.first["type"]
12
- @text = @response.parsed_response.values.first["body"]
13
- @html = @response.parsed_response.values.first["html"]
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
 
@@ -1,3 +1,3 @@
1
1
  module DMS
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe DMS::API do
4
- let(:responses) { YAML::load(File.open(File.join(File.dirname(__FILE__), 'fixtures', 'responses.yml'))) }
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(File.open(File.join(File.dirname(__FILE__), 'fixtures', 'responses.yml'))) }
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
@@ -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>&lt;p&gt;This is the body&lt;/p&gt;</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>&lt;p&gt;This is the body&lt;/p&gt;</html>
@@ -0,0 +1,3 @@
1
+ --colour
2
+ --format specdoc
3
+ --backtrace
@@ -7,6 +7,10 @@ require 'dms'
7
7
  require 'spec'
8
8
  require 'webmock/rspec'
9
9
 
10
+ def file_fixture(filename)
11
+ open(File.join(File.dirname(__FILE__), 'fixtures', "#{filename.to_s}")).read
12
+ end
13
+
10
14
  Spec::Runner.configure do |config|
11
15
  config.include WebMock::API
12
16
  end
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: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
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-02 00:00:00 -05:00
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: 3
77
+ hash: 7
78
78
  segments:
79
79
  - 1
80
- - 5
80
+ - 4
81
81
  - 0
82
- version: 1.5.0
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/node_spec.rb
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/node_spec.rb
148
+ - spec/spec.opts
146
149
  - spec/spec_helper.rb