vericred 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 33dc91cd863234fdc18029ae075c592013916e44
4
- data.tar.gz: a2d1989b06607f9bfb26d587a1985db654022734
3
+ metadata.gz: fdbf40d3b2c58e519021855243fe1b7e4784967d
4
+ data.tar.gz: 9ce033b544c99e98d65b6e37364b0fcc38d0ebae
5
5
  SHA512:
6
- metadata.gz: fee62b0ece4317956b7d54cfa9745bf3a8cb0e5a4217f898360921dc386f679bae4d6900728ef96f9c6b359264b5af5b3e091acfe36a56019b65c452c84effb1
7
- data.tar.gz: 34611b966590b139577978efbc6693b45c3d69441483430ac83d04efed1065cc580ec1c134c342f310e568d3f5eb3e97e7fd164a8b426213a8dbbf93a9444a7a
6
+ metadata.gz: 7d0a527b18e4d542a9bc01b653ff61ccd102f38ab69eafe399770e3c15abdae3726f5f51b88a2b5241cb9caf80964d8173abd7c09b2c9bd803d65fcb28f08f11
7
+ data.tar.gz: 1ac43a0881b3941901a059a394ae33917b981578a09d1da17b0d90e66d4df7dea61b2fae925743fdec4a0e85b5dc70b17ce5958153044d8870a8b4704331d7fb
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
+ - 2.1.0
4
5
  before_install: gem install bundler -v 1.10.5
data/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Vericred
2
2
 
3
+ [![Code Climate](https://codeclimate.com/repos/562a2857e30ba04788014399/badges/07d05b9b6da4fdd2aca6/gpa.svg)](https://codeclimate.com/repos/562a2857e30ba04788014399/feed)
4
+
5
+ [![Build Status](https://travis-ci.org/vericred/vericred_ruby.svg?branch=master)](https://travis-ci.org/vericred/vericred_ruby)
6
+
3
7
  A client gem to interact with the Vericred API. It provides useful helpers for:
4
8
 
5
9
  - Futures
@@ -19,18 +23,18 @@ gem 'vericred'
19
23
 
20
24
  And then execute:
21
25
 
22
- $ bundle
26
+ $ bundle
23
27
 
24
28
  Or install it yourself as:
25
29
 
26
- $ gem install vericred
30
+ $ gem install vericred
27
31
 
28
32
  ### With Rails
29
33
 
30
34
  Add a configuration block in `config/initializers/vericred.rb`
31
35
  ```ruby
32
36
  Vericred.configure do |config|
33
- config.api_key = ENV['VERICRED_API_KEY']
37
+ config.api_key = ENV['VERICRED_API_KEY']
34
38
  end
35
39
  ```
36
40
 
@@ -44,7 +48,28 @@ Vericred::Provider.find(npi) # => Vericred::Provider
44
48
  ### Retrieving a List of Records
45
49
  ```ruby
46
50
  Vericred::Provider.search(search_term: 'foo', zip_code: '11215')
47
- # => [Vericred::Provider, Vericred::Provider]
51
+ # => [Vericred::Provider, Vericred::Provider]
52
+ ```
53
+
54
+ #### Searching for Plans
55
+ When searching for Plans, you may supply one or more applicants to retrieve
56
+ pricing. The `smoker` flag only need be supplied if it is true.
57
+
58
+ ```ruby
59
+ Vericred::Plan.search(
60
+ zip_code: '11215',
61
+ fips_code: '36047',
62
+ market: 'individual',
63
+ applicants: [
64
+ { age: 31 },
65
+ { age: 42, smoker: true }
66
+ ],
67
+ providers: [
68
+ { npi: 1841293990 },
69
+ { npi: 1740283779 }
70
+ ]
71
+ )
72
+ # => [Vericred::Plan<premium=401.23>, Vericred::Plan<premium=501.13>]
48
73
  ```
49
74
 
50
75
  ### Sideloaded data
@@ -53,9 +78,9 @@ Sideloaded data is automatically added to the object found. For example,
53
78
  with the following response (simplified)
54
79
  ```json
55
80
  {
56
- "zip_counties": [{"id": 1, "zip_code_id": 2, "county_id": 3}],
57
- "counties": [{"id": 3, "name": "County"}],
58
- "zip_codes": [{"id": 2, "code": "12345"}]
81
+ "zip_counties": [{"id": 1, "zip_code_id": 2, "county_id": 3}],
82
+ "counties": [{"id": 3, "name": "County"}],
83
+ "zip_codes": [{"id": 2, "code": "12345"}]
59
84
  }
60
85
  ```
61
86
 
@@ -86,42 +111,42 @@ providers = futures.map(&:value)
86
111
  Generic error handling:
87
112
  ```ruby
88
113
  begin
89
- Vericred::Provider.find(npi)
114
+ Vericred::Provider.find(npi)
90
115
  rescue Vericred::Error => e
91
- # Retry or do something else
116
+ # Retry or do something else
92
117
  end
93
118
  ```
94
119
 
95
120
  Handling each possible error
96
121
  ```ruby
97
122
  begin
98
- Vericred::Provider.find(npi)
123
+ Vericred::Provider.find(npi)
99
124
  rescue Vericred::UnauthenticatedError => e
100
- # No credentials supplied
125
+ # No credentials supplied
101
126
  rescue Vericred::UnauthorizedError => e
102
- # Invalid credentials
127
+ # Invalid credentials
103
128
  rescue Vericred::UnprocessableEntityError => e
104
- # Invalid parameters have been specified
129
+ # Invalid parameters have been specified
105
130
  rescue Vericred::UnknownError => e
106
- # Something else has gone wrong - see e.errors for details
131
+ # Something else has gone wrong - see e.errors for details
107
132
  end
108
133
  ```
109
134
  Every instance of `Vericred::Error` has an `#errors` method, which returns
110
135
  the parsed error messages from the server. They are in the format.
111
136
  ```json
112
137
  {
113
- "errors": {
114
- "field_or_category": ["list", "of", "things", "wrong"]
115
- }
138
+ "errors": {
139
+ "field_or_category": ["list", "of", "things", "wrong"]
140
+ }
116
141
  }
117
142
  ```
118
143
 
119
144
  When parsed, they can be accessed like:
120
145
  ```ruby
121
146
  begin
122
- Vericred::Provider.find(npi)
147
+ Vericred::Provider.find(npi)
123
148
  rescue Vericred::Error => e
124
- e.errors.field_or_category.join(', ') # "list, of, things, wrong"
149
+ e.errors.field_or_category.join(', ') # "list, of, things, wrong"
125
150
  end
126
151
  ```
127
152
 
@@ -49,7 +49,7 @@ module Vericred
49
49
  end
50
50
 
51
51
  def self.search(query = {})
52
- data = make_request(:get, uri, query, headers)
52
+ data = make_request(:get, uri, query.to_query, headers)
53
53
  (data[root_name.pluralize] || []).map { |row| new(row, data) }
54
54
  end
55
55
 
@@ -71,8 +71,13 @@ module Vericred
71
71
  end
72
72
  end
73
73
 
74
+ def self.log_request(verb, uri, *args)
75
+ args = args.map { |arg| arg.is_a?(String) ? URI.unescape(arg) : arg }
76
+ logger.info { "[#{verb.to_s.upcase}] to #{uri} with #{args}" }
77
+ end
78
+
74
79
  def self.make_request(verb, uri, *args)
75
- logger.info { "#{verb.to_s.upcase} #{uri} with #{args}"}
80
+ log_request(verb, uri, *args)
76
81
  response = nil
77
82
  ActiveSupport::Notifications
78
83
  .instrument "vericred.http_request", opts: [verb, uri, *args] do
@@ -1,3 +1,3 @@
1
1
  module Vericred
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -25,6 +25,5 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 1.10"
27
27
  spec.add_development_dependency "rake", "~> 10.0"
28
- spec.add_development_dependency "pry-debugger"
29
28
  spec.add_development_dependency "guard-rspec"
30
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vericred
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Langevin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-19 00:00:00.000000000 Z
11
+ date: 2015-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '10.0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry-debugger
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '>='
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: guard-rspec
99
85
  requirement: !ruby/object:Gem::Requirement