restfully 0.2.3 → 0.3.0

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.
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__)+'/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__)+'/../spec_helper')
2
2
  describe Restfully::HTTP::Error do
3
3
  it "should have a response reader" do
4
4
  response = mock("restfully response", :status => 404, :body => {'title' => 'Not Found', 'message' => 'The requested resource cannot be found.', 'code' => 404})
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__)+'/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__)+'/../spec_helper')
2
2
  describe Restfully::HTTP::Headers do
3
3
  class IncludeHeadersModule
4
4
  include Restfully::HTTP::Headers
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__)+'/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__)+'/../spec_helper')
2
2
  describe Restfully::HTTP::Request do
3
3
 
4
4
  it "should correctly initialize the attributes" do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__)+'/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__)+'/../spec_helper')
2
2
  describe Restfully::HTTP::Response do
3
3
 
4
4
  it "should correctly initialize the attributes" do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__)+'/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__)+'/../spec_helper')
2
2
  describe Restfully::HTTP::Adapters::RestClientAdapter do
3
3
  it "should correctly get the resource corresponding to the request" do
4
4
  adapter = Restfully::HTTP::Adapters::RestClientAdapter.new("https://api.grid5000.fr", :username => 'crohr', :password => 'password')
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__)+'/spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__)+'/spec_helper')
2
2
 
3
3
  include Restfully
4
4
  describe Link do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__)+'/spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__)+'/spec_helper')
2
2
 
3
3
  include Restfully::Parsing
4
4
 
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__)+'/spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__)+'/spec_helper')
2
2
 
3
3
  include Restfully
4
4
 
@@ -29,9 +29,9 @@ describe Resource do
29
29
  resource.uri.should == "uri"
30
30
  end
31
31
  it "should have a reader on the raw property" do
32
- resource = Resource.new("uri", session=mock("session"), 'raw' => {})
32
+ resource = Resource.new("uri", session=mock("session"))
33
33
  resource.should_not respond_to(:raw=)
34
- resource.raw.should == {}
34
+ resource.load('raw' => {:a => :b}).raw.should == {:a => :b}
35
35
  end
36
36
  it "should have a reader on the state property" do
37
37
  resource = Resource.new("uri", session=mock("session"))
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require File.expand_path(File.dirname(__FILE__)+'/spec_helper')
2
2
 
3
3
  describe Restfully do
4
4
  it "should have a default adapter" do
@@ -1,57 +1,62 @@
1
- require File.dirname(__FILE__)+'/spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__)+'/spec_helper')
2
+
3
+ restfully_version = File.read(File.dirname(__FILE__)+'/../VERSION').strip
2
4
 
3
5
  include Restfully
4
6
  describe Session do
5
7
  describe "initialization" do
6
8
  it "should have a logger reader" do
7
- session = Session.new('https://api.grid5000.fr')
9
+ session = Session.new(:base_uri => 'https://api.grid5000.fr')
8
10
  session.should_not respond_to(:logger=)
9
11
  session.should respond_to(:logger)
10
12
  end
11
13
  it "should have a base_uri reader" do
12
- session = Session.new('https://api.grid5000.fr')
14
+ session = Session.new(:base_uri => 'https://api.grid5000.fr')
13
15
  session.should_not respond_to(:base_uri=)
14
16
  session.base_uri.should == 'https://api.grid5000.fr'
15
17
  end
16
18
  it "should have a root_path reader that returns the path of the root resource, relative to the base URI" do
17
- session = Session.new('https://api.grid5000.fr/sid', 'root_path' => '/grid5000')
19
+ session = Session.new(:base_uri => 'https://api.grid5000.fr/sid', 'root_path' => '/grid5000')
18
20
  session.should_not respond_to(:root_path=)
19
21
  session.root_path.should == '/grid5000'
20
22
  end
21
23
  it "should set the default root_path to /" do
22
- session = Session.new('https://api.grid5000.fr')
24
+ session = Session.new(:base_uri => 'https://api.grid5000.fr')
23
25
  session.root_path.should == '/'
24
26
  end
25
27
  it "should log to NullLogger by default" do
26
- NullLogger.should_receive(:new).and_return(logger = mock(NullLogger))
27
- session = Session.new('https://api.grid5000.fr')
28
+ NullLogger.should_receive(:new).and_return(logger = mock(NullLogger, :debug => Proc.new{}))
29
+ session = Session.new(:base_uri => 'https://api.grid5000.fr')
28
30
  session.logger.should == logger
29
31
  end
30
32
  it "should use the given logger" do
31
- logger = mock("custom logger")
32
- session = Session.new('https://api.grid5000.fr', 'logger' => logger)
33
+ logger = mock("custom logger", :debug => Proc.new{})
34
+ session = Session.new(:base_uri => 'https://api.grid5000.fr', 'logger' => logger)
33
35
  session.logger.should == logger
34
36
  end
35
37
  it "should set a default Accept HTTP header if no default headers are given" do
36
- session = Session.new('https://api.grid5000.fr')
38
+ session = Session.new(:base_uri => 'https://api.grid5000.fr')
37
39
  session.default_headers.should == {
40
+ "User-Agent"=>"Restfully/#{restfully_version}",
38
41
  'Accept' => 'application/json'
39
42
  }
40
43
  end
41
44
  it "should use the given default headers" do
42
- session = Session.new('https://api.grid5000.fr', :default_headers => {:accept => 'application/xml'})
45
+ session = Session.new(:base_uri => 'https://api.grid5000.fr', :default_headers => {:accept => 'application/xml'})
43
46
  session.default_headers.should == {
44
- :accept => 'application/xml'
47
+ "User-Agent"=>"Restfully/#{restfully_version}",
48
+ "Accept" => 'application/xml'
45
49
  }
46
50
  end
47
51
  it "should correctly initialize the connection" do
48
- Restfully.adapter.should_receive(:new).with('https://api.grid5000.fr/sid', :user => 'crohr', :password => 'password').and_return(connection = mock("restfully connection"))
49
- session = Session.new('https://api.grid5000.fr/sid', 'root_path' => '/grid5000', :user => 'crohr', :password => 'password')
52
+ mock_logger = mock("logger", :debug => Proc.new{})
53
+ Restfully.adapter.should_receive(:new).with('https://api.grid5000.fr/sid', :user => 'crohr', :password => 'password', :logger => mock_logger).and_return(connection = mock("restfully connection"))
54
+ session = Session.new(:base_uri => 'https://api.grid5000.fr/sid', 'root_path' => '/grid5000', :user => 'crohr', :password => 'password', :logger => mock_logger)
50
55
  session.connection.should == connection
51
56
  end
52
57
 
53
58
  it "should initialize the root resource" do
54
- session = Session.new('https://api.grid5000.fr', 'root_path' => '/grid5000', :user => 'crohr', :password => 'password')
59
+ session = Session.new(:base_uri => 'https://api.grid5000.fr', 'root_path' => '/grid5000', :user => 'crohr', :password => 'password')
55
60
  session.root.should be_a Restfully::Resource
56
61
  session.root.uri.to_s.should == '/grid5000'
57
62
  session.root.should_not be_loaded
@@ -60,7 +65,7 @@ describe Session do
60
65
  it "should yield the loaded root resource and the session object" do
61
66
  Restfully::Resource.stub!(:new).and_return(root_resource = mock(Restfully::Resource))
62
67
  root_resource.should_receive(:load).and_return(root_resource)
63
- Session.new('https://api.grid5000.fr', :root_path => '/grid5000', :user => 'crohr', :password => 'password') do |root, session|
68
+ Session.new(:base_uri => 'https://api.grid5000.fr', :root_path => '/grid5000', :user => 'crohr', :password => 'password') do |root, session|
64
69
  session.root.should == root
65
70
  root.should == root_resource
66
71
  end
@@ -69,8 +74,9 @@ describe Session do
69
74
 
70
75
  describe "Getting resources" do
71
76
  before(:each) do
72
- @session = Session.new('https://api.grid5000.fr/sid', :root_path => '/grid5000', :user => 'crohr', :password => 'password', :default_headers => {})
77
+ @session = Session.new(:base_uri => 'https://api.grid5000.fr/sid', :root_path => '/grid5000', :user => 'crohr', :password => 'password', :default_headers => {})
73
78
  @request = mock("restfully http request", :uri => mock("uri"), :headers => mock("headers"))
79
+ @request.should_receive(:add_headers).with("User-Agent"=>"Restfully/#{restfully_version}", "Accept"=>"application/json")
74
80
  @response = mock("restfully http response", :status => 200, :headers => mock("headers"))
75
81
  end
76
82
  it "should create a new Request object and pass it to the connection" do
@@ -85,8 +91,6 @@ describe Session do
85
91
  end
86
92
  it "should add the session's default headers to the request's headers" do
87
93
  Restfully::HTTP::Request.should_receive(:new).with(URI.parse('http://somehost.com/some/path'), :headers => {}, :query => {}).and_return(@request)
88
- @session.default_headers['cache-control'] = 'max-age=0'
89
- @request.should_receive(:add_headers).with('cache-control' => 'max-age=0')
90
94
  @session.connection.should_receive(:get).with(@request).and_return(@response)
91
95
  @session.get('http://somehost.com/some/path').should == @response
92
96
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restfully
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Rohr
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-05 00:00:00 +02:00
12
+ date: 2009-10-26 00:00:00 +01:00
13
13
  default_executable: restfully
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  requirements: []
98
98
 
99
99
  rubyforge_project: restfully
100
- rubygems_version: 1.3.2
100
+ rubygems_version: 1.3.5
101
101
  signing_key:
102
102
  specification_version: 3
103
103
  summary: Experimental code for auto-generation of wrappers on top of RESTful APIs that follow some specific conventions.