fullcontact 0.8.2 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -9,6 +9,8 @@ A Ruby wrapper for the [FullContact API](http://www.fullcontact.com/)
9
9
 
10
10
  Changes
11
11
  -------
12
+ - 0.9.0 - Removed Rash gem and replaced with Mashify + Plisskin
13
+ - 0.8.2 - Fix for 0.8.0 constant resolution issue.
12
14
  - 0.8.0
13
15
  - Hashie now allowed from [2.2, 4.0) to support a wide range of other applications
14
16
  - Default useragent includes version number for our own information
@@ -10,10 +10,10 @@ Gem::Specification.new do |s|
10
10
  s.add_development_dependency 'simplecov', '~> 0.4'
11
11
  s.add_development_dependency 'webmock', '~> 1.6'
12
12
  s.add_development_dependency 'yard', '~> 0.7'
13
- s.add_runtime_dependency 'hashie', '>= 2.0'
13
+ s.add_runtime_dependency 'hashie', ['>= 2.0', '< 4.0']
14
14
  s.add_runtime_dependency 'faraday', '~> 0.9.0'
15
15
  s.add_runtime_dependency 'faraday_middleware', '>= 0.9'
16
- s.add_runtime_dependency 'rash', '>= 0.4'
16
+ s.add_runtime_dependency 'plissken'
17
17
 
18
18
  s.author = 'FullContact, Inc.'
19
19
  s.description = %q{A Ruby wrapper for the FullContact API}
@@ -0,0 +1,16 @@
1
+ require 'plissken'
2
+
3
+ module Faraday
4
+ class Response::Rubyize < Response::Middleware
5
+ def parse(body)
6
+ case body
7
+ when Hash
8
+ body.to_snake_keys
9
+ when Array
10
+ body.map { |item| parse(item) }
11
+ else
12
+ body
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,6 +1,8 @@
1
1
  require 'faraday_middleware'
2
2
  require 'faraday/request/gateway'
3
3
  require 'faraday/response/fullcontact_errors'
4
+ require 'faraday/response/rubyize'
5
+ require 'faraday_middleware/response/mashify'
4
6
 
5
7
 
6
8
  module FullContact
@@ -19,7 +21,8 @@ module FullContact
19
21
  Faraday.new(options) do |builder|
20
22
  builder.use Faraday::Request::UrlEncoded
21
23
  builder.use Faraday::Request::Gateway, gateway if gateway
22
- builder.use Faraday::Response::Rashify unless raw
24
+ builder.use FaradayMiddleware::Mashify unless raw
25
+ builder.use Faraday::Response::Rubyize unless raw
23
26
  unless raw
24
27
  case format.to_s.downcase
25
28
  when 'json'
@@ -1,3 +1,3 @@
1
1
  module FullContact
2
- VERSION = '0.8.2'
2
+ VERSION = '0.9.0'
3
3
  end
@@ -16,6 +16,7 @@ describe Faraday::Response do
16
16
  403 => FullContact::Forbidden,
17
17
  404 => FullContact::NotFound,
18
18
  422 => FullContact::Invalid,
19
+ 429 => FullContact::RateLimited,
19
20
  500 => FullContact::InternalServerError,
20
21
  502 => FullContact::BadGateway,
21
22
  503 => FullContact::ServiceUnavailable,
@@ -9,4 +9,29 @@ describe FullContact::Client do
9
9
 
10
10
  end
11
11
  end
12
+
13
+ context "when parsing a response" do
14
+
15
+ before do
16
+ FullContact.configure do |config|
17
+ config.api_key = "api_key"
18
+ end
19
+
20
+ stub_get("person.json").
21
+ with(:query => {:apiKey => "api_key", :email => "brawest@gmail.com"}).
22
+ to_return(:body => fixture("person.json"), :headers => {:content_type => "application/json; charset=utf-8"})
23
+
24
+ stub_get("person.json").
25
+ with(:query => {:apiKey => "api_key", :twitter => "brawtest"}).
26
+ to_return(:body => fixture("person.json"), :headers => {:content_type => "application/json; charset=utf-8"})
27
+ end
28
+
29
+ it 'should rubyize keys' do
30
+ expect(FullContact.person(email: "brawest@gmail.com").contact_info.given_name).to(eq("Brandon"))
31
+
32
+ expect(FullContact.person(email: "brawest@gmail.com")).to satisfy do |v|
33
+ v.keys.all? { |k| !k.match(/[A-Z]/) }
34
+ end
35
+ end
36
+ end
12
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fullcontact
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2014-11-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: maruku
16
- requirement: &70332720405680 !ruby/object:Gem::Requirement
16
+ requirement: &70327900376880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.6'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70332720405680
24
+ version_requirements: *70327900376880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70332720404800 !ruby/object:Gem::Requirement
27
+ requirement: &70327900376340 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.4'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70332720404800
35
+ version_requirements: *70327900376340
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70332720404160 !ruby/object:Gem::Requirement
38
+ requirement: &70327900375840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0.9'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70332720404160
46
+ version_requirements: *70327900375840
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70332720403700 !ruby/object:Gem::Requirement
49
+ requirement: &70327900375260 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '3.1'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70332720403700
57
+ version_requirements: *70327900375260
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &70332720403200 !ruby/object:Gem::Requirement
60
+ requirement: &70327900374700 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0.4'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70332720403200
68
+ version_requirements: *70327900374700
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: webmock
71
- requirement: &70332720402680 !ruby/object:Gem::Requirement
71
+ requirement: &70327900374160 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '1.6'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70332720402680
79
+ version_requirements: *70327900374160
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: yard
82
- requirement: &70332720401800 !ruby/object:Gem::Requirement
82
+ requirement: &70327900373480 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,21 +87,24 @@ dependencies:
87
87
  version: '0.7'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70332720401800
90
+ version_requirements: *70327900373480
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: hashie
93
- requirement: &70332720401200 !ruby/object:Gem::Requirement
93
+ requirement: &70327900372780 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
97
97
  - !ruby/object:Gem::Version
98
98
  version: '2.0'
99
+ - - <
100
+ - !ruby/object:Gem::Version
101
+ version: '4.0'
99
102
  type: :runtime
100
103
  prerelease: false
101
- version_requirements: *70332720401200
104
+ version_requirements: *70327900372780
102
105
  - !ruby/object:Gem::Dependency
103
106
  name: faraday
104
- requirement: &70332720400480 !ruby/object:Gem::Requirement
107
+ requirement: &70327900371720 !ruby/object:Gem::Requirement
105
108
  none: false
106
109
  requirements:
107
110
  - - ~>
@@ -109,10 +112,10 @@ dependencies:
109
112
  version: 0.9.0
110
113
  type: :runtime
111
114
  prerelease: false
112
- version_requirements: *70332720400480
115
+ version_requirements: *70327900371720
113
116
  - !ruby/object:Gem::Dependency
114
117
  name: faraday_middleware
115
- requirement: &70332720399600 !ruby/object:Gem::Requirement
118
+ requirement: &70327900370880 !ruby/object:Gem::Requirement
116
119
  none: false
117
120
  requirements:
118
121
  - - ! '>='
@@ -120,18 +123,18 @@ dependencies:
120
123
  version: '0.9'
121
124
  type: :runtime
122
125
  prerelease: false
123
- version_requirements: *70332720399600
126
+ version_requirements: *70327900370880
124
127
  - !ruby/object:Gem::Dependency
125
- name: rash
126
- requirement: &70332720399140 !ruby/object:Gem::Requirement
128
+ name: plissken
129
+ requirement: &70327900370440 !ruby/object:Gem::Requirement
127
130
  none: false
128
131
  requirements:
129
132
  - - ! '>='
130
133
  - !ruby/object:Gem::Version
131
- version: '0.4'
134
+ version: '0'
132
135
  type: :runtime
133
136
  prerelease: false
134
- version_requirements: *70332720399140
137
+ version_requirements: *70327900370440
135
138
  description: A Ruby wrapper for the FullContact API
136
139
  email:
137
140
  - support@fullcontact.com
@@ -149,6 +152,7 @@ files:
149
152
  - fullcontact.gemspec
150
153
  - lib/faraday/request/gateway.rb
151
154
  - lib/faraday/response/fullcontact_errors.rb
155
+ - lib/faraday/response/rubyize.rb
152
156
  - lib/fullcontact.rb
153
157
  - lib/fullcontact/api.rb
154
158
  - lib/fullcontact/client.rb
@@ -182,7 +186,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
182
186
  version: '0'
183
187
  segments:
184
188
  - 0
185
- hash: -4162318102109248767
189
+ hash: 2664498878847206337
186
190
  required_rubygems_version: !ruby/object:Gem::Requirement
187
191
  none: false
188
192
  requirements: