remotely 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,3 +3,6 @@ rvm:
3
3
  - 1.9.3
4
4
  - 1.9.2
5
5
  - jruby-19mode
6
+ matrix:
7
+ allow_failures:
8
+ - rvm: jruby-19mode
data/Gemfile CHANGED
@@ -1,6 +1,10 @@
1
1
  source :rubygems
2
2
  gemspec
3
3
 
4
+ platforms :jruby do
5
+ gem "jruby-openssl"
6
+ end
7
+
4
8
  group :development, :test do
5
9
  platforms :mri do
6
10
  gem "debugger"
@@ -79,13 +79,15 @@ module Remotely
79
79
  # parsed response body.
80
80
  #
81
81
  def post(path, options={})
82
- path = expand(path)
83
- klass = options.delete(:class)
84
- parent = options.delete(:parent)
85
- body = options.delete(:body) || MultiJson.dump(options)
82
+ path = expand(path)
83
+ klass = options.delete(:class)
84
+ parent = options.delete(:parent)
85
+ body = options.delete(:body) || MultiJson.dump(options)
86
+ headers = options.delete(:headers) || {}
87
+ headers['Content-Type'] ||= 'application/json'
86
88
 
87
89
  before_request(path, :post, body)
88
- raise_if_html(app.connection.post(path, body))
90
+ raise_if_html(app.connection.post(path, body, headers))
89
91
  end
90
92
 
91
93
  # PUT request.
@@ -99,9 +101,11 @@ module Remotely
99
101
  def put(path, options={})
100
102
  path = expand(path)
101
103
  body = options.delete(:body) || MultiJson.dump(options)
104
+ headers = options.delete(:headers) || {}
105
+ headers['Content-Type'] ||= 'application/json'
102
106
 
103
107
  before_request(path, :put, body)
104
- raise_if_html(app.connection.put(path, body))
108
+ raise_if_html(app.connection.put(path, body, headers))
105
109
  end
106
110
 
107
111
  # DELETE request.
@@ -137,7 +141,7 @@ module Remotely
137
141
  #
138
142
  def before_request(uri, http_verb = :get, options = {})
139
143
  if ENV['REMOTELY_DEBUG']
140
- puts "-> #{http_verb.to_s.upcase} #{uri}"
144
+ puts "-> #{http_verb.to_s.upcase} #{uri}"
141
145
  puts " #{options.inspect}"
142
146
  end
143
147
  end
@@ -1,3 +1,3 @@
1
1
  module Remotely
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -25,7 +25,7 @@ describe Remotely::Associations do
25
25
 
26
26
  it "requests the correct path" do
27
27
  subject.send(assoc)
28
- a_request(:get, "#{app}#{path}").should have_been_made
28
+ a_request(:get, /#{path}/).should have_been_made
29
29
  end
30
30
  end
31
31
 
@@ -22,4 +22,37 @@ describe Remotely::HTTPMethods do
22
22
  stub_request(:delete, %r(/things)).to_return(body: "<html><head><title></title></head></html>")
23
23
  expect { http_delete("/things") }.to raise_error(Remotely::NonJsonResponseError)
24
24
  end
25
+
26
+ it "passes the correct headers for post requests" do
27
+ stub_request(:post, %r(/things)).
28
+ to_return(body: "{\"key\":\"value\"}")
29
+
30
+ post("/things", headers: {'Content-Type'=>'text/plain'})
31
+
32
+ a_request(:post, %r(/things)).
33
+ with(headers: {'Content-Type'=>'text/plain'}).
34
+ should have_been_made
35
+ end
36
+
37
+ it "defaults the Content-Type header to be application/json" do
38
+ stub_request(:post, %r(/things)).
39
+ to_return(body: "{\"key\":\"value\"}")
40
+
41
+ post("/things")
42
+
43
+ a_request(:post, %r(/things)).
44
+ with(headers: {'Content-Type'=>'application/json'}).
45
+ should have_been_made
46
+ end
47
+
48
+ it "passes the correct headers for put requests" do
49
+ stub_request(:put, %r(/things)).
50
+ to_return(body: "{\"key\":\"value\"}")
51
+
52
+ put("/things", headers: {'Content-Type'=>'application/pdf'})
53
+
54
+ a_request(:put, %r(/things)).
55
+ with(headers: {'Content-Type'=>'application/pdf'}).
56
+ should have_been_made
57
+ end
25
58
  end
metadata CHANGED
@@ -1,140 +1,128 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remotely
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.3
4
+ version: 0.2.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Matte Noble
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-30 00:00:00.000000000 Z
12
+ date: 2012-10-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- version_requirements: !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
17
18
  requirements:
18
19
  - - ! '>='
19
20
  - !ruby/object:Gem::Version
20
- version: !binary |-
21
- MA==
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
22
25
  none: false
23
- requirement: !ruby/object:Gem::Requirement
24
26
  requirements:
25
27
  - - ! '>='
26
28
  - !ruby/object:Gem::Version
27
- version: !binary |-
28
- MA==
29
- none: false
30
- prerelease: false
31
- type: :development
29
+ version: '0'
32
30
  - !ruby/object:Gem::Dependency
33
31
  name: rspec
34
- version_requirements: !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
35
34
  requirements:
36
35
  - - ~>
37
36
  - !ruby/object:Gem::Version
38
37
  version: 2.6.0
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
39
41
  none: false
40
- requirement: !ruby/object:Gem::Requirement
41
42
  requirements:
42
43
  - - ~>
43
44
  - !ruby/object:Gem::Version
44
45
  version: 2.6.0
45
- none: false
46
- prerelease: false
47
- type: :development
48
46
  - !ruby/object:Gem::Dependency
49
47
  name: webmock
50
- version_requirements: !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
51
50
  requirements:
52
51
  - - ! '>='
53
52
  - !ruby/object:Gem::Version
54
- version: !binary |-
55
- MA==
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
56
57
  none: false
57
- requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: !binary |-
62
- MA==
63
- none: false
64
- prerelease: false
65
- type: :development
61
+ version: '0'
66
62
  - !ruby/object:Gem::Dependency
67
63
  name: activesupport
68
- version_requirements: !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
69
66
  requirements:
70
67
  - - ! '>='
71
68
  - !ruby/object:Gem::Version
72
- version: !binary |-
73
- MA==
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
74
73
  none: false
75
- requirement: !ruby/object:Gem::Requirement
76
74
  requirements:
77
75
  - - ! '>='
78
76
  - !ruby/object:Gem::Version
79
- version: !binary |-
80
- MA==
81
- none: false
82
- prerelease: false
83
- type: :runtime
77
+ version: '0'
84
78
  - !ruby/object:Gem::Dependency
85
79
  name: activemodel
86
- version_requirements: !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
87
82
  requirements:
88
83
  - - ! '>='
89
84
  - !ruby/object:Gem::Version
90
- version: !binary |-
91
- MA==
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
92
89
  none: false
93
- requirement: !ruby/object:Gem::Requirement
94
90
  requirements:
95
91
  - - ! '>='
96
92
  - !ruby/object:Gem::Version
97
- version: !binary |-
98
- MA==
99
- none: false
100
- prerelease: false
101
- type: :runtime
93
+ version: '0'
102
94
  - !ruby/object:Gem::Dependency
103
95
  name: faraday
104
- version_requirements: !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
105
98
  requirements:
106
99
  - - ! '>='
107
100
  - !ruby/object:Gem::Version
108
- version: !binary |-
109
- MA==
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
110
105
  none: false
111
- requirement: !ruby/object:Gem::Requirement
112
106
  requirements:
113
107
  - - ! '>='
114
108
  - !ruby/object:Gem::Version
115
- version: !binary |-
116
- MA==
117
- none: false
118
- prerelease: false
119
- type: :runtime
109
+ version: '0'
120
110
  - !ruby/object:Gem::Dependency
121
111
  name: multi_json
122
- version_requirements: !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
123
114
  requirements:
124
115
  - - ! '>='
125
116
  - !ruby/object:Gem::Version
126
- version: !binary |-
127
- MA==
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
128
121
  none: false
129
- requirement: !ruby/object:Gem::Requirement
130
122
  requirements:
131
123
  - - ! '>='
132
124
  - !ruby/object:Gem::Version
133
- version: !binary |-
134
- MA==
135
- none: false
136
- prerelease: false
137
- type: :runtime
125
+ version: '0'
138
126
  description: Remote API based model associations.
139
127
  email:
140
128
  - me@mattenoble.com
@@ -170,28 +158,26 @@ files:
170
158
  - spec/support/webmock.rb
171
159
  homepage: ''
172
160
  licenses: []
173
- post_install_message:
161
+ post_install_message:
174
162
  rdoc_options: []
175
163
  require_paths:
176
164
  - lib
177
165
  required_ruby_version: !ruby/object:Gem::Requirement
166
+ none: false
178
167
  requirements:
179
168
  - - ! '>='
180
169
  - !ruby/object:Gem::Version
181
- version: !binary |-
182
- MA==
183
- none: false
170
+ version: '0'
184
171
  required_rubygems_version: !ruby/object:Gem::Requirement
172
+ none: false
185
173
  requirements:
186
174
  - - ! '>='
187
175
  - !ruby/object:Gem::Version
188
- version: !binary |-
189
- MA==
190
- none: false
176
+ version: '0'
191
177
  requirements: []
192
- rubyforge_project:
178
+ rubyforge_project:
193
179
  rubygems_version: 1.8.24
194
- signing_key:
180
+ signing_key:
195
181
  specification_version: 3
196
182
  summary: Remote API based model associations.
197
183
  test_files: