remotely 0.1.3 → 0.2.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.
- data/.travis.yml +3 -0
- data/Gemfile +4 -0
- data/lib/remotely/http_methods.rb +11 -7
- data/lib/remotely/version.rb +1 -1
- data/spec/remotely/associations_spec.rb +1 -1
- data/spec/remotely/http_methods_spec.rb +33 -0
- metadata +58 -72
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -79,13 +79,15 @@ module Remotely
|
|
79
79
|
# parsed response body.
|
80
80
|
#
|
81
81
|
def post(path, options={})
|
82
|
-
path
|
83
|
-
klass
|
84
|
-
parent
|
85
|
-
body
|
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
|
data/lib/remotely/version.rb
CHANGED
@@ -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
|
-
|
5
|
-
|
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-
|
12
|
+
date: 2012-10-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
17
18
|
requirements:
|
18
19
|
- - ! '>='
|
19
20
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
21
|
-
|
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:
|
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
|
-
|
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
|
-
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
51
50
|
requirements:
|
52
51
|
- - ! '>='
|
53
52
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
|
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:
|
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
|
-
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
69
66
|
requirements:
|
70
67
|
- - ! '>='
|
71
68
|
- !ruby/object:Gem::Version
|
72
|
-
version:
|
73
|
-
|
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:
|
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
|
-
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
87
82
|
requirements:
|
88
83
|
- - ! '>='
|
89
84
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
91
|
-
|
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:
|
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
|
-
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
105
98
|
requirements:
|
106
99
|
- - ! '>='
|
107
100
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
109
|
-
|
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:
|
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
|
-
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
123
114
|
requirements:
|
124
115
|
- - ! '>='
|
125
116
|
- !ruby/object:Gem::Version
|
126
|
-
version:
|
127
|
-
|
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:
|
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:
|
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:
|
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:
|