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