change-ruby 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/change-ruby.rb CHANGED
@@ -1,4 +1,5 @@
1
- # $LOAD_PATH << './lib' # Uncomment to load change-ruby in console without installing gem.
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'
@@ -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.3
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-03-05 00:00:00.000000000 Z
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: &2153892880 !ruby/object:Gem::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: *2153892880
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: &2153892400 !ruby/object:Gem::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: *2153892400
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: &2153891840 !ruby/object:Gem::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: *2153891840
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.17
108
+ rubygems_version: 1.8.23
94
109
  signing_key:
95
110
  specification_version: 3
96
111
  summary: Change.org API Ruby Library (unofficial)