covermymeds_api 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 537fb83e719cf2c5daa56b0f292bfee177098a9a
4
+ data.tar.gz: 4c8f88b6eb98953561436cecfb01d41e6a4ecfd0
5
+ SHA512:
6
+ metadata.gz: d62b22204aacf050c0e093764280d7cd8be58ab4b6e225b4c2a5764d69c395a54dd230864d72cfc7832ec4bffe1b58e27d6a5d281aeda1fc40d84e2720e3529e
7
+ data.tar.gz: 139da17de688df79706f7122df0ab39e6717d58912959abbda6f21f70cd805e0131f5f6af41a800d0dd57ebe0f7d1bda303f8d86d1fef1086621e5c88fa30f08
@@ -0,0 +1,27 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+ Gemfile.lock
15
+ .ruby-gemset
16
+
17
+ # YARD artifacts
18
+ .yardoc
19
+ _yardoc
20
+ doc/
21
+ quickfix.out
22
+ *.swp
23
+ *.swo
24
+ .env
25
+
26
+ # to keep out api keys and secrets
27
+ spec/support/cassettes/**
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in covermymeds_api.gemspec
4
+ gemspec
@@ -0,0 +1,103 @@
1
+ # CoverMyMeds API
2
+
3
+ CoverMyApi is a gem that provides a Ruby client for api.covermymeds.com
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'covermymeds_api'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ ```
16
+ bundle
17
+ ```
18
+
19
+ *For general API documentation see: https://api.covermymeds.com*
20
+
21
+ ## Contributing
22
+
23
+ Fork the repo, make changes, and submit a pull request.
24
+
25
+ ## Usage
26
+
27
+ You can use the CoverMyApi client to retrieve drugs, forms, pa requests, access tokens and create requests.
28
+
29
+ ```ruby
30
+ require 'covermymeds_api' # not needed in a rails app
31
+ ```
32
+
33
+ ## Getting Started
34
+
35
+ Before anything else, create a new client:
36
+
37
+ ```ruby
38
+ client = CoverMyMeds::Client.new(your_api_id, your_api_secret) do |client|
39
+ client.contacts_path = '/'
40
+ client.contacts_host = 'http://contacts-api.dev'
41
+ end
42
+ ```
43
+
44
+ ## Drug Search
45
+
46
+ ```ruby
47
+ drugs = client.drug_search 'Boniva'
48
+
49
+ drugs # => array of drugs
50
+ drug = drug.first
51
+ drug.name # => 'Boniva'
52
+ ```
53
+
54
+ ## Form Search
55
+
56
+ ```ruby
57
+ forms = client.form_search('Blue Cross', drug.id, 'oh')
58
+
59
+ forms # => array of forms
60
+ form = form.first
61
+ form.name # => 'blue_cross_blue_shield_georgia_general'
62
+ ```
63
+
64
+ ## Get Request(s)
65
+
66
+ ```ruby
67
+ # Get a single request
68
+ request = client.get_request('NT5HL9')
69
+ request.id # => 'NT5HL9'
70
+
71
+ # Get many requests
72
+ requests = client.get_requests(['DS2FD3', 'FD6FD1'])
73
+ requests # => array of requests
74
+ ```
75
+
76
+ ## Create Request
77
+
78
+ ```ruby
79
+ new_request = client.request_data
80
+ request_data.patient.first_name = 'John'
81
+
82
+ request = client.create_request new_request
83
+ request.patient.first_name # => 'Jonhn'
84
+ ```
85
+
86
+
87
+ ## Create access tokens
88
+
89
+ ```ruby
90
+ token = client.create_access_token('DS3SE1')
91
+ token.id # => 'nhe44fu4g22upqqgstea'
92
+ ```
93
+
94
+ ## Get Request Pages
95
+ ```ruby
96
+ request_page = client.get_request_page('NT5HL9','nhe44fu4g22upqqgstea')
97
+ request_page.keys # => values corresponding to a request page
98
+
99
+ Or to save remote_user attributes to the request audit trail:
100
+ request_page = client.get_request_page('NT5HL9','nhe44fu4g22upqqgstea', { remote_user_key: 'remote_user_value' })
101
+ request_page.keys # => values corresponding to a request page
102
+ ```
103
+ e.g ["data", "forms", "actions", "provided_coded_references", "validations"]
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,35 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'covermymeds_api/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "covermymeds_api"
8
+ spec.version = CoverMyMeds::VERSION
9
+ spec.authors = ["Justin Rolston", "Mark Lorenz", "Dan Sajner", "Chad Cunningham", "Mike Gee", "Brandon Joyce", "Ryan Kowalick", "Shaun Hardin", "Jay Bobo", "Zach Serafini", "Rachel Twyford", "Ryan Stocker", "Corey Woodcox", "Nathan Demick"]
10
+ spec.email = ["jrolston@covermymeds.com", "mlorenz@covermymeds.com", "dsajner@covermymeds.com", "ccunningham@covermymeds.com", "mgee@covermymeds.com", "bjoyce@covermymeds.com", "rkowalick@covermymeds.com", "shardin@covermymeds.com", "jbobo@covermymeds.com", "zserafini@covermymeds.com", "rtwyford@covermymeds.com", "rstocker@covermymeds.com", "cwoodcox@covermymeds.com", "ndemick@covermymeds.com"]
11
+
12
+ spec.summary = %q{CoverMyMeds Public API}
13
+ spec.description = %q{The public version of CoverMyMeds API}
14
+ spec.homepage = "https://github.com/covermymeds/covermymeds_api"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rspec", "~> 3.2"
23
+ spec.add_development_dependency "rspec-junklet", "~> 2.0"
24
+ spec.add_development_dependency "webmock", "~> 1.11"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "pry"
27
+ spec.add_development_dependency "vcr"
28
+ spec.add_development_dependency "dotenv"
29
+ spec.add_development_dependency "simplecov"
30
+
31
+ spec.add_runtime_dependency "rest-client", "~> 1.6"
32
+ spec.add_runtime_dependency "hashie", "~> 2.0.2"
33
+ spec.add_runtime_dependency "settingslogic"
34
+ spec.add_runtime_dependency "activesupport"
35
+ end
@@ -0,0 +1,16 @@
1
+ require "covermymeds_api/version"
2
+ require_relative 'covermymeds_api/meta'
3
+ require_relative 'covermymeds_api/client'
4
+
5
+ module CoverMyMeds
6
+
7
+ GET = 'get'.freeze
8
+ POST = 'post'.freeze
9
+ PUT = 'put'.freeze
10
+ DELETE = 'delete'.freeze
11
+
12
+ def self.version
13
+ "CoverMyMeds version #{CoverMyMeds::VERSION}"
14
+ end
15
+
16
+ end
@@ -0,0 +1,46 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+ require 'hashie'
4
+ require 'active_support/core_ext/object/to_param'
5
+ require 'active_support/core_ext/object/to_query'
6
+ require 'covermymeds_api/error'
7
+
8
+ module CoverMyMeds
9
+ module ApiRequest
10
+
11
+ def request(http_method, host, path, params={}, auth_type = :basic, &block)
12
+ params = params.symbolize_keys
13
+ headers = params.delete(:headers) || {}
14
+
15
+ tail = case auth_type
16
+ when :basic
17
+ { user: @username, password: @password, headers: headers }
18
+ when :bearer
19
+ { headers: { "Authorization" => "Bearer #{@username}+#{params.delete(:token_id)}" }.merge(headers) }
20
+ else
21
+ {}
22
+ end
23
+
24
+ uri = api_uri(host, path, params)
25
+ rest_resource = RestClient::Resource.new(uri.to_s, tail)
26
+
27
+ response = call_api http_method, rest_resource, &block
28
+ return nil if response.body.empty?
29
+ return JSON.parse(response.body)
30
+ end
31
+
32
+ def call_api http_method, rest_resource
33
+ body = block_given? ? yield : {}
34
+ rest_resource.send http_method, body
35
+ rescue RestClient::Exception => e
36
+ raise Error::HTTPError.new(e.http_code, e.http_body)
37
+ end
38
+
39
+ def api_uri host, path, params
40
+ URI.parse(host).tap do |uri|
41
+ uri.path = path
42
+ uri.query = params.to_param
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,44 @@
1
+ require_relative 'api_request'
2
+ require_relative 'client/drugs'
3
+ require_relative 'client/forms'
4
+ require_relative 'client/requests'
5
+ require_relative 'client/tokens'
6
+ require_relative 'client/pharmacies'
7
+ require_relative 'client/credentials'
8
+ require_relative 'client/request_pages'
9
+ require_relative 'client/indicators'
10
+
11
+ module CoverMyMeds
12
+ class Client
13
+ include CoverMyMeds::ApiRequest
14
+ include CoverMyMeds::Drugs
15
+ include CoverMyMeds::Forms
16
+ include CoverMyMeds::Requests
17
+ include CoverMyMeds::Tokens
18
+ include CoverMyMeds::Pharmacies
19
+ include CoverMyMeds::Credentials
20
+ include CoverMyMeds::RequestPages
21
+ include CoverMyMeds::Indicators
22
+
23
+ # use the block to set module privided instance variables:
24
+ # ```ruby
25
+ # Client.new('mark') do |client|
26
+ # client.contacts_path = '/'
27
+ # client.contacts_host = 'http://contacts-api.dev'
28
+ # end
29
+ # ```
30
+ #
31
+ # Defaults are to proudction to make it easy for external gem consumers.
32
+ def initialize(username, password=nil)
33
+ @username = username
34
+ @password = password
35
+ yield(self) if block_given?
36
+ end
37
+
38
+ attr_writer :default_host
39
+ def default_host
40
+ @default_host ||= "https://api.covermymeds.com"
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,32 @@
1
+ module CoverMyMeds
2
+ module Credentials
3
+ include HostAndPath
4
+
5
+ CURRENT_VERSION = 1
6
+
7
+ def create_credential npi: npi, callback_url: '', callback_verb: '', fax_numbers: fax_numbers, contact_hint: {}, version: CURRENT_VERSION
8
+ params = { v: version }
9
+ data = credentials_request POST, params: params do
10
+ {
11
+ credential: {
12
+ npi: npi,
13
+ callback_url: callback_url,
14
+ callback_verb: callback_verb,
15
+ fax_numbers: Array(fax_numbers),
16
+ contact_hint: contact_hint,
17
+ }
18
+ }
19
+ end
20
+ Hashie::Mash.new data['credential']
21
+ end
22
+
23
+ # Override the meta-programming in this oddball case
24
+ def credentials_path
25
+ @credentials_path || "/prescribers/credentials/"
26
+ end
27
+
28
+ def delete_credential(npi, version=CURRENT_VERSION)
29
+ data = credentials_request DELETE, path: npi, params: { v: version }
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ module CoverMyMeds
2
+ module Drugs
3
+ include HostAndPath
4
+
5
+ CURRENT_VERSION = 1
6
+
7
+ def drug_search drug, version=CURRENT_VERSION
8
+ params = {q: drug, v: version}
9
+ data = drugs_request GET, params: params
10
+ data['drugs'].map { |d| Hashie::Mash.new(d) }
11
+ end
12
+
13
+ def get_drug drug_id, version = CURRENT_VERSION
14
+ data = drugs_request GET, params: { v: version }, path: drug_id
15
+ Hashie::Mash.new(data['drug'])
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ module CoverMyMeds
2
+ module Forms
3
+ include HostAndPath
4
+
5
+ CURRENT_VERSION = 1
6
+
7
+ def form_search form, drug_id, state, version=CURRENT_VERSION
8
+ params = {q: form, drug_id: drug_id, state: state, v: version}
9
+ data = forms_request GET, params: params
10
+ data['forms'].map { |d| Hashie::Mash.new(d) }
11
+ end
12
+
13
+ def get_form form_id, version = CURRENT_VERSION
14
+ data = forms_request GET, params: { v: version }, path: form_id
15
+ Hashie::Mash.new(data['form'])
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ module CoverMyMeds
2
+ module Indicators
3
+ include HostAndPath
4
+
5
+ CURRENT_VERSION = 1
6
+
7
+ def post_indicators(prescriptions, patient = {}, payer = {}, version = CURRENT_VERSION)
8
+ params = { prescriptions: prescriptions, patient: patient, payer: payer }
9
+ data = indicators_request POST, params: { v: version, headers: { content_type: :json } } do
10
+ params.to_json
11
+ end
12
+ Hashie::Mash.new(data)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ module CoverMyMeds
2
+ module Pharmacies
3
+ include HostAndPath
4
+
5
+ CURRENT_VERSION = 1
6
+
7
+ def pharmacy_search params, version=CURRENT_VERSION
8
+ params.merge!(v: version)
9
+ data = pharmacies_request GET, params: params
10
+ data['pharmacies'].map do |d|
11
+ Hashie::Mash.new(d)
12
+ end
13
+ end
14
+
15
+ def get_pharmacy npi, version = CURRENT_VERSION
16
+ data = pharmacies_request GET, params: { v: version }, path: npi
17
+ Hashie::Mash.new(data['pharmacy'])
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ module CoverMyMeds
2
+ module RequestPages
3
+ include HostAndPath
4
+
5
+ CURRENT_VERSION = 1
6
+
7
+ def get_request_page request_id, token_id, remote_user = {}, version = CURRENT_VERSION
8
+ params = { token_id: token_id, v: version , remote_user: remote_user }
9
+ request_page = request_pages_request(
10
+ GET, params: params, path: request_id, auth: :bearer
11
+ )
12
+ Hashie::Mash.new(request_page["request_page"])
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,121 @@
1
+ module CoverMyMeds
2
+ module Requests
3
+ include HostAndPath
4
+
5
+ CURRENT_VERSION = 1
6
+
7
+ def get_request token_id, version = CURRENT_VERSION
8
+ params = { v: version }
9
+ data = requests_request POST, params: params, path: "search/" do
10
+ "token_ids[]=#{token_id}"
11
+ end
12
+ Hashie::Mash.new(data['requests'].first)
13
+ end
14
+
15
+ def get_requests token_ids, version = CURRENT_VERSION
16
+ params = { 'token_ids' => token_ids, v: version }
17
+ data = requests_request POST, params: params, path: "search/"
18
+ data['requests'].map { |d| Hashie::Mash.new(d) }
19
+ end
20
+
21
+ def create_request request_data,version = CURRENT_VERSION
22
+ data = requests_request POST, params: { v: version } do
23
+ { 'request' => request_data.to_hash }
24
+ end
25
+ Hashie::Mash.new(data['request'])
26
+ end
27
+
28
+ def request_data
29
+ hash = JSON.parse @@json_string
30
+ Hashie::Mash.new hash['request']
31
+ end
32
+
33
+ @@json_string = <<-eof
34
+ {
35
+ "request": {
36
+ "urgent": "false",
37
+ "form_id": "",
38
+ "state": "",
39
+ "patient": {
40
+ "first_name": "",
41
+ "middle_name": "",
42
+ "last_name": "",
43
+ "date_of_birth": "",
44
+ "gender": "",
45
+ "email": "",
46
+ "member_id": "",
47
+ "phone_number": "",
48
+ "address": {
49
+ "street_1": "",
50
+ "street_2": "",
51
+ "city": "",
52
+ "state": "",
53
+ "zip": ""
54
+ }
55
+ },
56
+ "payer": {
57
+ "form_search_text": "",
58
+ "bin": "",
59
+ "pcn": "",
60
+ "group_id": "",
61
+ "medical_benefit_name": "",
62
+ "drug_benefit_name": ""
63
+ },
64
+ "prescriber": {
65
+ "npi": "",
66
+ "first_name": "",
67
+ "last_name": "",
68
+ "clinic_name": "",
69
+ "speciality": "",
70
+ "address": {
71
+ "street_1": "",
72
+ "street_2": "",
73
+ "city": "",
74
+ "state": "",
75
+ "zip": ""
76
+ },
77
+ "fax_number": "",
78
+ "phone_number": ""
79
+ },
80
+ "prescription": {
81
+ "drug_id": "",
82
+ "strength": "",
83
+ "frequency": "",
84
+ "enumerated_fields": "",
85
+ "refills": "",
86
+ "dispense_as_written": "",
87
+ "quantity": "",
88
+ "days_supply": ""
89
+ },
90
+ "pharmacy": {
91
+ "name": "",
92
+ "address": {
93
+ "street_1": "",
94
+ "street_2": "",
95
+ "city": "",
96
+ "state": "",
97
+ "zip": ""
98
+ },
99
+ "fax_number": "",
100
+ "phone_number": ""
101
+ },
102
+ "enumerated_fields": {
103
+ "icd9_0": "",
104
+ "icd9_1": "",
105
+ "icd9_2": "",
106
+ "failed_med_0": "",
107
+ "failed_med_1": "",
108
+ "failed_med_2": "",
109
+ "failed_med_3": "",
110
+ "failed_med_4": "",
111
+ "failed_med_5": "",
112
+ "failed_med_6": "",
113
+ "failed_med_7": "",
114
+ "failed_med_8": "",
115
+ "failed_med_9": ""
116
+ }
117
+ }
118
+ }
119
+ eof
120
+ end
121
+ end
@@ -0,0 +1,24 @@
1
+ module CoverMyMeds
2
+ module Tokens
3
+ include HostAndPath
4
+
5
+ CURRENT_VERSION = 1
6
+
7
+ def create_access_token request_id, version=CURRENT_VERSION
8
+ params = {'request_ids[]' => request_id, v: version}
9
+ data = tokens_request POST, params: params
10
+ Hashie::Mash.new data['tokens'].first
11
+ end
12
+
13
+ def revoke_access_token? token_id, version=CURRENT_VERSION
14
+ params = { v: version }
15
+ tokens_request DELETE, path: token_id, params: params
16
+ end
17
+
18
+ # Override the meta-programming in this oddball case
19
+ def tokens_path
20
+ @tokens_path || "/requests/tokens/"
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ module CoverMyMeds
2
+ module Error
3
+ class HTTPError < StandardError
4
+
5
+ def initialize status, message
6
+ @status = status
7
+ @error_json = message
8
+ end
9
+
10
+ def message
11
+ "#{@status}: #{@error_json}"
12
+ end
13
+
14
+ attr_reader :status, :error_json
15
+
16
+ end
17
+
18
+ CMMDuplicateEntityError = Class.new(StandardError)
19
+ end
20
+ end
@@ -0,0 +1 @@
1
+ require_relative "meta/host_and_path"
@@ -0,0 +1,58 @@
1
+ # Adds methods like this to your module:
2
+ #
3
+ # attr_writer :contacts_path
4
+ # def contacts_path
5
+ # @contacts_path || "/contacts/"
6
+ # end
7
+ #
8
+ # attr_writer :contacts_host
9
+ # def contacts_host
10
+ # @contacts_host || default_host
11
+ # end
12
+ #
13
+ # def contacts_request method, options={} &block
14
+ # options = options.symbolize_keys
15
+ # path = options[:path] || ""
16
+ # params = options[:params].merge({})
17
+ # full_path = contacts_path+path
18
+ #
19
+ # request method, contacts_host, full_path, params, &block
20
+ # end
21
+
22
+ require 'active_support/core_ext/string/inflections'
23
+ require 'active_support/core_ext/hash/conversions'
24
+
25
+ module CoverMyMeds
26
+ module HostAndPath
27
+ def self.included(base)
28
+ api_name = base.name.demodulize.underscore.downcase
29
+
30
+ base.instance_exec do
31
+ attr_writer "#{api_name}_path".to_sym
32
+ define_method "#{api_name}_path" do
33
+ instance_variable_get("@#{api_name}_path") || "/#{api_name.dasherize}/"
34
+ end
35
+
36
+ attr_writer "#{api_name}_host".to_sym
37
+ define_method "#{api_name}_host" do
38
+ instance_variable_get("@#{api_name}_host") || default_host
39
+ end
40
+
41
+ define_method "#{api_name}_request" do |method, options={}, &block|
42
+ options = options.symbolize_keys
43
+ path = options[:path] || ""
44
+ params = options[:params]
45
+ auth = options[:auth]
46
+ host_name = public_send("#{api_name}_host".to_sym)
47
+ full_path = public_send("#{api_name}_path".to_sym) + path
48
+
49
+ proxy_args = [ method, host_name, full_path, params, auth ]
50
+ fail ArgumentError, "method, host_name or full_path can not be nil" if proxy_args.take(3).any?(&:nil?)
51
+
52
+ request(*proxy_args.compact, &block)
53
+ end
54
+ end
55
+
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,3 @@
1
+ module CoverMyMeds
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,272 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: covermymeds_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Justin Rolston
8
+ - Mark Lorenz
9
+ - Dan Sajner
10
+ - Chad Cunningham
11
+ - Mike Gee
12
+ - Brandon Joyce
13
+ - Ryan Kowalick
14
+ - Shaun Hardin
15
+ - Jay Bobo
16
+ - Zach Serafini
17
+ - Rachel Twyford
18
+ - Ryan Stocker
19
+ - Corey Woodcox
20
+ - Nathan Demick
21
+ autorequire:
22
+ bindir: exe
23
+ cert_chain: []
24
+ date: 2015-05-04 00:00:00.000000000 Z
25
+ dependencies:
26
+ - !ruby/object:Gem::Dependency
27
+ name: bundler
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '1.3'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ version: '1.3'
40
+ - !ruby/object:Gem::Dependency
41
+ name: rspec
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '3.2'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '3.2'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rspec-junklet
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: '2.0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: '2.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: webmock
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: '1.11'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ~>
80
+ - !ruby/object:Gem::Version
81
+ version: '1.11'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rake
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: pry
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: vcr
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: dotenv
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - '>='
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ - !ruby/object:Gem::Dependency
139
+ name: simplecov
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ - !ruby/object:Gem::Dependency
153
+ name: rest-client
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ version: '1.6'
159
+ type: :runtime
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: '1.6'
166
+ - !ruby/object:Gem::Dependency
167
+ name: hashie
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ~>
171
+ - !ruby/object:Gem::Version
172
+ version: 2.0.2
173
+ type: :runtime
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ~>
178
+ - !ruby/object:Gem::Version
179
+ version: 2.0.2
180
+ - !ruby/object:Gem::Dependency
181
+ name: settingslogic
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - '>='
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ type: :runtime
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - '>='
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ - !ruby/object:Gem::Dependency
195
+ name: activesupport
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - '>='
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ type: :runtime
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ description: The public version of CoverMyMeds API
209
+ email:
210
+ - jrolston@covermymeds.com
211
+ - mlorenz@covermymeds.com
212
+ - dsajner@covermymeds.com
213
+ - ccunningham@covermymeds.com
214
+ - mgee@covermymeds.com
215
+ - bjoyce@covermymeds.com
216
+ - rkowalick@covermymeds.com
217
+ - shardin@covermymeds.com
218
+ - jbobo@covermymeds.com
219
+ - zserafini@covermymeds.com
220
+ - rtwyford@covermymeds.com
221
+ - rstocker@covermymeds.com
222
+ - cwoodcox@covermymeds.com
223
+ - ndemick@covermymeds.com
224
+ executables: []
225
+ extensions: []
226
+ extra_rdoc_files: []
227
+ files:
228
+ - .gitignore
229
+ - .rspec
230
+ - Gemfile
231
+ - README.md
232
+ - Rakefile
233
+ - covermymeds_api.gemspec
234
+ - lib/covermymeds_api.rb
235
+ - lib/covermymeds_api/api_request.rb
236
+ - lib/covermymeds_api/client.rb
237
+ - lib/covermymeds_api/client/credentials.rb
238
+ - lib/covermymeds_api/client/drugs.rb
239
+ - lib/covermymeds_api/client/forms.rb
240
+ - lib/covermymeds_api/client/indicators.rb
241
+ - lib/covermymeds_api/client/pharmacies.rb
242
+ - lib/covermymeds_api/client/request_pages.rb
243
+ - lib/covermymeds_api/client/requests.rb
244
+ - lib/covermymeds_api/client/tokens.rb
245
+ - lib/covermymeds_api/error.rb
246
+ - lib/covermymeds_api/meta.rb
247
+ - lib/covermymeds_api/meta/host_and_path.rb
248
+ - lib/covermymeds_api/version.rb
249
+ homepage: https://github.com/covermymeds/covermymeds_api
250
+ licenses: []
251
+ metadata: {}
252
+ post_install_message:
253
+ rdoc_options: []
254
+ require_paths:
255
+ - lib
256
+ required_ruby_version: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - '>='
259
+ - !ruby/object:Gem::Version
260
+ version: '0'
261
+ required_rubygems_version: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - '>='
264
+ - !ruby/object:Gem::Version
265
+ version: '0'
266
+ requirements: []
267
+ rubyforge_project:
268
+ rubygems_version: 2.4.6
269
+ signing_key:
270
+ specification_version: 4
271
+ summary: CoverMyMeds Public API
272
+ test_files: []