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.
@@ -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