taskrabbit 0.0.5 → 0.0.6
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/CHANGELOG.md +5 -0
- data/README.md +1 -0
- data/lib/taskrabbit/client.rb +1 -2
- data/lib/taskrabbit/task.rb +7 -1
- data/lib/taskrabbit/version.rb +1 -1
- data/spec/support/cassettes/tasks/create/with_invalid_params.yml +34 -0
- data/spec/taskrabbit/task_spec.rb +19 -4
- metadata +5 -3
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
data/lib/taskrabbit/client.rb
CHANGED
@@ -34,8 +34,7 @@ module Taskrabbit
|
|
34
34
|
# check if an error has occured
|
35
35
|
def check_response_errors(response)
|
36
36
|
return unless net_http_response = response.response rescue nil
|
37
|
-
return
|
38
|
-
|
37
|
+
return if ([Net::HTTPClientError, Net::HTTPServerError] & [net_http_response.class, net_http_response.class.superclass]).empty?
|
39
38
|
response_hash = response.to_hash
|
40
39
|
error = response_hash.fetch('error') { "#{net_http_response.code} #{net_http_response.message}".strip }
|
41
40
|
|
data/lib/taskrabbit/task.rb
CHANGED
@@ -32,7 +32,9 @@ module Taskrabbit
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def create(api, params)
|
35
|
-
api.
|
35
|
+
task = api.tasks.new(params)
|
36
|
+
task.save
|
37
|
+
task
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
@@ -48,6 +50,10 @@ module Taskrabbit
|
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
53
|
+
def new_record?
|
54
|
+
!id
|
55
|
+
end
|
56
|
+
|
51
57
|
def delete!
|
52
58
|
reload('delete', "tasks/#{id.to_s}")
|
53
59
|
end
|
data/lib/taskrabbit/version.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :post
|
5
|
+
uri: http://localhost:3000/api/v1/tasks?
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
x-client-application:
|
9
|
+
- euqmQpzV04GmN1dJTY639PdI7eiSjCjI3lKTkPWn
|
10
|
+
authorization:
|
11
|
+
- OAuth RhyRtRg1bRNyqmdozkY6JJJ3eGDpoRGTm9AXUudp
|
12
|
+
response: !ruby/struct:VCR::Response
|
13
|
+
status: !ruby/struct:VCR::ResponseStatus
|
14
|
+
code: 422
|
15
|
+
message:
|
16
|
+
headers:
|
17
|
+
content-type:
|
18
|
+
- application/json; charset=utf-8
|
19
|
+
x-runtime:
|
20
|
+
- '11415'
|
21
|
+
content-length:
|
22
|
+
- '365'
|
23
|
+
set-cookie:
|
24
|
+
- current_geo=1053; path=/; expires=Tue, 02-Oct-2012 06:08:56 GMT
|
25
|
+
cache-control:
|
26
|
+
- no-cache
|
27
|
+
server:
|
28
|
+
- thin 1.4.1 codename Chromeo
|
29
|
+
body: ! '{"errors":{"messages":["Task title can''t be blank","Amount you are willing
|
30
|
+
to pay needs to be a whole dollar amount greater than zero"],"fields":[["name","can''t
|
31
|
+
be blank"],["named_price","needs to be a whole dollar amount greater than zero"]]},"error":"Task
|
32
|
+
title can''t be blank, \nAmount you are willing to pay needs to be a whole dollar
|
33
|
+
amount greater than zero"}'
|
34
|
+
http_version: '1.1'
|
@@ -78,6 +78,20 @@ describe Taskrabbit::Task do
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
+
describe "#new_record?" do
|
82
|
+
subject { Taskrabbit::Task.new }
|
83
|
+
|
84
|
+
it "returns true if the task has no id" do
|
85
|
+
subject.stub(:id => nil)
|
86
|
+
subject.should be_new_record
|
87
|
+
end
|
88
|
+
|
89
|
+
it "returns false if the task has an id" do
|
90
|
+
subject.stub(:id => 123)
|
91
|
+
subject.should_not be_new_record
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
81
95
|
describe "#find" do
|
82
96
|
|
83
97
|
it "should fetch tasks" do
|
@@ -203,10 +217,11 @@ describe Taskrabbit::Task do
|
|
203
217
|
tr = Taskrabbit::Api.new(TR_USERS[:with_card][:secret])
|
204
218
|
VCR.use_cassette('tasks/create/with_invalid_params', :record => :new_episodes) do
|
205
219
|
tr_task = nil
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
220
|
+
tr_task = tr.tasks.create(invalid_params)
|
221
|
+
tr_task.should be_instance_of(Taskrabbit::Task)
|
222
|
+
tr_task.errors.should == {"messages"=>["Task title can't be blank", "Amount you are willing to pay needs to be a whole dollar amount greater than zero"],
|
223
|
+
"fields"=>[["name", "can't be blank"], ["named_price", "needs to be a whole dollar amount greater than zero"]]}
|
224
|
+
tr_task.error.should == "Task title can't be blank, \nAmount you are willing to pay needs to be a whole dollar amount greater than zero"
|
210
225
|
end
|
211
226
|
end
|
212
227
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taskrabbit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: api_smith
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- spec/support/cassettes/tasks/all.yml
|
120
120
|
- spec/support/cassettes/tasks/create/default.yml
|
121
121
|
- spec/support/cassettes/tasks/create/using_account.yml
|
122
|
+
- spec/support/cassettes/tasks/create/with_invalid_params.yml
|
122
123
|
- spec/support/cassettes/tasks/create/with_location.yml
|
123
124
|
- spec/support/cassettes/tasks/create/without_credit_card.yml
|
124
125
|
- spec/support/cassettes/tasks/create/without_user.yml
|
@@ -157,7 +158,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
158
|
version: '0'
|
158
159
|
segments:
|
159
160
|
- 0
|
160
|
-
hash:
|
161
|
+
hash: 1376035083108164495
|
161
162
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
163
|
none: false
|
163
164
|
requirements:
|
@@ -184,6 +185,7 @@ test_files:
|
|
184
185
|
- spec/support/cassettes/tasks/all.yml
|
185
186
|
- spec/support/cassettes/tasks/create/default.yml
|
186
187
|
- spec/support/cassettes/tasks/create/using_account.yml
|
188
|
+
- spec/support/cassettes/tasks/create/with_invalid_params.yml
|
187
189
|
- spec/support/cassettes/tasks/create/with_location.yml
|
188
190
|
- spec/support/cassettes/tasks/create/without_credit_card.yml
|
189
191
|
- spec/support/cassettes/tasks/create/without_user.yml
|