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 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)