change-ruby 1.0.3 → 1.0.4
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/lib/change-ruby.rb +2 -1
- data/lib/requests/client.rb +12 -2
- data/lib/resources/signature_collection.rb +1 -0
- data/test/signature_collection_resource_test.rb +2 -2
- metadata +25 -10
data/lib/change-ruby.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# Uncomment to load change-ruby in console without installing gem. Then require './lib/change-ruby' in console
|
2
|
+
# $LOAD_PATH << './lib'
|
2
3
|
|
3
4
|
require 'digest/sha2'
|
4
5
|
require 'httparty'
|
data/lib/requests/client.rb
CHANGED
@@ -38,12 +38,12 @@ module Change
|
|
38
38
|
def deal_with_response(response)
|
39
39
|
case response.code
|
40
40
|
when 200, 202
|
41
|
-
response.parsed_response
|
41
|
+
ensure_parse(response.parsed_response)
|
42
42
|
else
|
43
43
|
messages = if response.code == 500
|
44
44
|
['A server error has occurred.']
|
45
45
|
else
|
46
|
-
response.parsed_response['messages']
|
46
|
+
ensure_parse(response.parsed_response)['messages']
|
47
47
|
end
|
48
48
|
|
49
49
|
raise ChangeException.new(messages, response.code), messages.join(' '), caller
|
@@ -75,6 +75,16 @@ module Change
|
|
75
75
|
HTTParty::HashConversions.to_params(params)
|
76
76
|
end
|
77
77
|
|
78
|
+
# Change.org is currently not setting the content-type header
|
79
|
+
# as application/json when it's returning json, let's make sure strings
|
80
|
+
# are parsed as json...until Change.org fixes it.
|
81
|
+
def ensure_parse(supposedly_parsed_object)
|
82
|
+
if supposedly_parsed_object.is_a?(String)
|
83
|
+
HTTParty::Parser.call(supposedly_parsed_object, :json)
|
84
|
+
else
|
85
|
+
supposedly_parsed_object
|
86
|
+
end
|
87
|
+
end
|
78
88
|
end
|
79
89
|
end
|
80
90
|
end
|
@@ -9,6 +9,7 @@ module Change
|
|
9
9
|
def add_signature(params = {}, auth_key_to_use = nil)
|
10
10
|
auth_key_to_use ||= auth_key
|
11
11
|
raise "No auth key specified." if auth_key_to_use.nil?
|
12
|
+
raise "Petition not loaded." if @parent_resource.id.nil?
|
12
13
|
params[:auth_key_to_use] = auth_key_to_use
|
13
14
|
params[:source] = auth_key_to_use['source']
|
14
15
|
response = make_request(:collection, { :method => :post }, params)
|
@@ -35,7 +35,7 @@ describe 'SignatureCollection' do
|
|
35
35
|
|
36
36
|
before do
|
37
37
|
@test_key = 'my_test_key'
|
38
|
-
@parent_resource = Change::Resources::Petition.new(@client, { :auth_key => { 'auth_key' => @test_key } })
|
38
|
+
@parent_resource = Change::Resources::Petition.new(@client, { :id => 1, :auth_key => { 'auth_key' => @test_key } })
|
39
39
|
@signature_collection = Change::Resources::SignatureCollection.new(@parent_resource)
|
40
40
|
end
|
41
41
|
|
@@ -58,7 +58,7 @@ describe 'SignatureCollection' do
|
|
58
58
|
describe "when there is no auth key on the parent resource" do
|
59
59
|
|
60
60
|
before do
|
61
|
-
@parent_resource = Change::Resources::Petition.new(@client)
|
61
|
+
@parent_resource = Change::Resources::Petition.new(@client, { :id => 1 })
|
62
62
|
@signature_collection = Change::Resources::SignatureCollection.new(@parent_resource)
|
63
63
|
end
|
64
64
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: change-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,27 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- - =
|
19
|
+
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 0.10.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - '='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.10.2
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rake
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: mocha
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,7 +53,12 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
description: A Ruby library for the Change.org API.
|
48
63
|
email: eric@ericlukoff.com
|
49
64
|
executables: []
|
@@ -90,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
105
|
version: '0'
|
91
106
|
requirements: []
|
92
107
|
rubyforge_project:
|
93
|
-
rubygems_version: 1.8.
|
108
|
+
rubygems_version: 1.8.23
|
94
109
|
signing_key:
|
95
110
|
specification_version: 3
|
96
111
|
summary: Change.org API Ruby Library (unofficial)
|