hubscreen 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 823f6917ca52e4a446daedd9c2d20ad2951d3897
4
+ data.tar.gz: 512507d2bbcd0ab768421c07ab47c2727595e37c
5
+ SHA512:
6
+ metadata.gz: 4be0336ac9f41fe396a77113312e1697babae7acf78a67621a49dfb255a2e53012f024c6771fac51c0e0b84bf13fc189b5e25f6a8781f81d429223798e099752
7
+ data.tar.gz: 7ab4c31b027932cc16dcf6506a3ad57d93558b6b46c13751e980655937c85aee44919385835f26a6edf01e865b9a707e268f5996b2e3aa6afd8e43b933d1bde9
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ .ruby-version
11
+ .ruby-gemset
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.5
4
+ before_install: gem install bundler -v 1.10.6
@@ -0,0 +1,13 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
4
+
5
+ We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
6
+
7
+ Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
8
+
9
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
10
+
11
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
12
+
13
+ This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in hubscreen.gemspec
4
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 IMIT Advisory Limited
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,53 @@
1
+ # Hubscreen
2
+
3
+ Hubscreen is a multi-purpose Ruby wrapper for the [Hubspot CRM API](https://developers.hubspot.com/docs/endpoints), providing developers with low-level access to request-response cycle, or abstract the entire process through ruby objects. Hubscreen is designed to accelerate the integration of Hubspot into a ruby application. As Hubscreen was not initially designed as a foundation for a client facing Hubspot integration (i.e. published to the Hubspot integration library), no OAuth functionality has been provided.
4
+
5
+ Documentation for the HubSpot REST API can be found here: https://developers.hubspot.com/docs/endpoints
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'hubscreen'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install hubscreen
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/hubscreen. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
36
+
37
+
38
+ ## License
39
+
40
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
+
42
+ ## Disclaimer
43
+
44
+ This project and the code therein was not created by and is not supported by HubSpot, Inc or any of its affiliates.
45
+
46
+ ## Copyright
47
+
48
+ Copyright (c) 2016 IMIT Advisory Limited. See LICENSE.txt for further details.
49
+
50
+ Some libraries are based on the [hubspot-crm gem](https://github.com/adimichele/hubspot-ruby). Refer to code base for details
51
+
52
+
53
+
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "hubscreen"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ require "pry"
11
+ Pry.start
12
+
13
+ #require "irb"
14
+ #IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'hubscreen/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "hubscreen"
8
+ spec.version = Hubscreen::VERSION
9
+ spec.authors = ["Bryan Vaz"]
10
+ spec.email = ["open-source@improvemy.it"]
11
+ spec.date = "2016-08-22"
12
+
13
+ spec.summary = "Multi-purpose Ruby wrapper for the Hubspot CRM API"
14
+ spec.description = "Multi-purpose Ruby wrapper for the Hubspot CRM API with access to the raw response or Ruby objects for faster development"
15
+ spec.homepage = "https://github.com/bryanvaz/hubscreen"
16
+ spec.license = "MIT"
17
+
18
+ spec.extra_rdoc_files = [
19
+ "LICENSE.txt",
20
+ "README.md"
21
+ ]
22
+
23
+
24
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
+ spec.bindir = "exe"
26
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
+ spec.require_paths = ["lib"]
28
+ spec.required_ruby_version = '>= 2.0.0'
29
+
30
+ spec.add_development_dependency "bundler", "~> 1.10"
31
+
32
+ #For Testing
33
+ spec.add_development_dependency "rake", "~> 10.0"
34
+ spec.add_development_dependency "rspec", "~> 3.5"
35
+ spec.add_development_dependency "vcr", "~> 3.0"
36
+ spec.add_development_dependency "webmock", "~> 2.1"
37
+
38
+
39
+ #Interactive Testing
40
+ spec.add_development_dependency 'pry'
41
+
42
+ spec.add_dependency(%q<activesupport>, [">= 5.0.0"])
43
+ spec.add_dependency('faraday', '>= 0.9.2')
44
+ spec.add_dependency('multi_json', '>= 1.12.1')
45
+
46
+ end
@@ -0,0 +1,27 @@
1
+ #External Dependancies
2
+ require 'active_support'
3
+ require 'active_support/core_ext'
4
+ require 'faraday'
5
+ require 'multi_json'
6
+ require 'cgi'
7
+
8
+ #Rest API Helpers
9
+ require "hubscreen/api_request"
10
+ require "hubscreen/request"
11
+
12
+ #Gem Lib Files
13
+ require "hubscreen/version"
14
+ require "hubscreen/config"
15
+ require "hubscreen/exceptions"
16
+ require "hubscreen/contact"
17
+
18
+
19
+
20
+
21
+
22
+
23
+ module Hubscreen
24
+ def self.configure(config={})
25
+ Hubscreen::Config.configure(config)
26
+ end
27
+ end
@@ -0,0 +1,188 @@
1
+ # Based on [gibbon gem](https://github.com/amro/gibbon)
2
+
3
+ module Hubscreen
4
+ class APIRequest
5
+
6
+ # A new API request must pass in a Hubscreen::Request Object
7
+ def initialize(builder: nil)
8
+ @request_builder = builder
9
+ end
10
+
11
+ def post(params: nil, headers: nil, body: nil)
12
+ validate_api_key
13
+
14
+ begin
15
+ response = self.rest_client.post do |request|
16
+ configure_request(request: request, params: params, headers: headers, body: MultiJson.dump(body))
17
+ end
18
+ parse_response(response.body)
19
+ rescue => e
20
+ handle_error(e)
21
+ end
22
+ end
23
+
24
+ def patch(params: nil, headers: nil, body: nil)
25
+ validate_api_key
26
+
27
+ begin
28
+ response = self.rest_client.patch do |request|
29
+ configure_request(request: request, params: params, headers: headers, body: MultiJson.dump(body))
30
+ end
31
+ parse_response(response.body)
32
+ rescue => e
33
+ handle_error(e)
34
+ end
35
+ end
36
+
37
+ def put(params: nil, headers: nil, body: nil)
38
+ validate_api_key
39
+
40
+ begin
41
+ response = self.rest_client.put do |request|
42
+ configure_request(request: request, params: params, headers: headers, body: MultiJson.dump(body))
43
+ end
44
+ parse_response(response.body)
45
+ rescue => e
46
+ handle_error(e)
47
+ end
48
+ end
49
+
50
+ def get(params: nil, headers: nil)
51
+ validate_api_key
52
+
53
+ begin
54
+ response = self.rest_client.get do |request|
55
+ configure_request(request: request, params: params, headers: headers)
56
+ end
57
+ parse_response(response.body)
58
+ rescue => e
59
+ handle_error(e)
60
+ end
61
+ end
62
+
63
+ def delete(params: nil, headers: nil)
64
+ validate_api_key
65
+
66
+ begin
67
+ response = self.rest_client.delete do |request|
68
+ configure_request(request: request, params: params, headers: headers)
69
+ end
70
+ parse_response(response.body)
71
+ rescue => e
72
+ handle_error(e)
73
+ end
74
+ end
75
+
76
+ #protected
77
+
78
+ # Convenience accessors
79
+
80
+ def api_key
81
+ @request_builder.api_key
82
+ end
83
+
84
+ def api_endpoint
85
+ @request_builder.api_endpoint
86
+ end
87
+
88
+ def timeout
89
+ @request_builder.timeout
90
+ end
91
+
92
+ def proxy
93
+ @request_builder.proxy
94
+ end
95
+
96
+ def adapter
97
+ @request_builder.faraday_adapter
98
+ end
99
+
100
+ # Helpers
101
+
102
+ def handle_error(error)
103
+ error_params = {}
104
+
105
+ begin
106
+ if error.is_a?(Faraday::Error::ClientError) && error.response
107
+ error_params[:status_code] = error.response[:status]
108
+ error_params[:raw_body] = error.response[:body]
109
+
110
+ parsed_response = MultiJson.load(error.response[:body])
111
+
112
+ if parsed_response
113
+ error_params[:body] = parsed_response
114
+ error_params[:title] = parsed_response["title"] if parsed_response["title"]
115
+ error_params[:detail] = parsed_response["detail"] if parsed_response["detail"]
116
+ end
117
+
118
+ end
119
+ rescue MultiJson::ParseError
120
+ end
121
+
122
+ error_to_raise = Hubscreen::RequestError.new(error.message, error_params)
123
+
124
+ raise error_to_raise
125
+ end
126
+
127
+ def configure_request(request: nil, params: nil, headers: nil, body: nil)
128
+ if request
129
+ request.params.merge!(params) if params
130
+ request.headers['Content-Type'] = 'application/json'
131
+ request.headers.merge!(headers) if headers
132
+ request.body = body if body
133
+ request.options.timeout = self.timeout
134
+ end
135
+ end
136
+
137
+ def rest_client
138
+ client = Faraday.new(self.api_url, proxy: self.proxy) do |faraday|
139
+ faraday.response :raise_error
140
+ faraday.adapter adapter
141
+ if @request_builder.debug
142
+ faraday.response :logger, ::Logger.new(STDOUT), bodies: true
143
+ end
144
+ end
145
+ # Hubspot expects the API key in the Query Params (WTF!!)
146
+ client.params['hapikey'] = self.api_key
147
+ #client.basic_auth('hapikey', self.api_key)
148
+ client
149
+ end
150
+
151
+ def parse_response(response_body)
152
+ parsed_response = nil
153
+
154
+ if response_body && !response_body.empty?
155
+ begin
156
+ parsed_response = MultiJson.load(response_body)
157
+ rescue MultiJson::ParseError
158
+ error = ApiError.new("Unparseable response: #{response_body}")
159
+ error.title = "UNPARSEABLE_RESPONSE"
160
+ error.status_code = 500
161
+ raise error
162
+ end
163
+ end
164
+
165
+ parsed_response
166
+ end
167
+
168
+ def validate_api_key
169
+ api_key = self.api_key
170
+ api_endpoint = self.api_endpoint
171
+ unless api_key
172
+ raise Hubscreen::ApiError, "You must set an api_key prior to making a call"
173
+ end
174
+ unless api_endpoint
175
+ raise Hubscreen::ApiError, "You must set an api_endpoint prior to making a call"
176
+ end
177
+ end
178
+
179
+ def api_url
180
+ base_api_url + @request_builder.path
181
+ end
182
+
183
+ def base_api_url
184
+ @request_builder.api_endpoint
185
+ end
186
+
187
+ end
188
+ end
@@ -0,0 +1,46 @@
1
+ # Based on [hubspot-crm gem](https://github.com/adimichele/hubspot-ruby)
2
+
3
+ require 'logger'
4
+
5
+ module Hubscreen
6
+ class Config
7
+
8
+ CONFIG_KEYS = [:hapikey, :base_url, :portal_id, :logger]
9
+ DEFAULT_LOGGER = Logger.new(STDOUT)
10
+ DEFAULT_BASE_URL = "https://api.hubapi.com/"
11
+
12
+ class << self
13
+ attr_accessor *CONFIG_KEYS
14
+
15
+ def configure(config)
16
+ config.stringify_keys!
17
+ @hapikey = config["hapikey"]
18
+ @base_url = config["base_url"] || DEFAULT_BASE_URL
19
+ @portal_id = config["portal_id"] #not currenty used
20
+ @logger = config['logger'] || DEFAULT_LOGGER
21
+ self
22
+ end
23
+
24
+ def reset!
25
+ @hapikey = nil
26
+ @base_url = DEFAULT_BASE_URL
27
+ @portal_id = nil
28
+ @logger = DEFAULT_LOGGER
29
+ end
30
+
31
+ def ensure!(*params)
32
+ params.each do |p|
33
+ raise Hubscreen::ConfigurationError.new("'#{p}' not configured") unless instance_variable_get "@#{p}"
34
+ end
35
+ end
36
+
37
+ def standard_base_url
38
+ return DEFAULT_BASE_URL
39
+ end
40
+ end
41
+
42
+
43
+
44
+ reset!
45
+ end
46
+ end
@@ -0,0 +1,11 @@
1
+ module Hubscreen
2
+ #
3
+ # HubSpot Contacts API
4
+ #
5
+ # {https://developers.hubspot.com/docs/methods/contacts/contacts-overview}
6
+ #
7
+
8
+ class Contact
9
+
10
+ end
11
+ end
@@ -0,0 +1,20 @@
1
+ # Based on [hubspot-crm gem](https://github.com/adimichele/hubspot-ruby)
2
+
3
+ module Hubscreen
4
+ class RequestError < StandardError
5
+ attr_accessor :response
6
+
7
+ def initialize(message, response)
8
+ message += "\n" if message
9
+ me = super("#{message}Response body: #{response}",)
10
+ me.response = response
11
+ return me
12
+ end
13
+ end
14
+
15
+ class ConfigurationError < StandardError; end
16
+ class MissingInterpolation < StandardError; end
17
+ class ContactExistsError < RequestError; end
18
+ class InvalidParams < StandardError; end
19
+ class ApiError < StandardError; end
20
+ end
@@ -0,0 +1,82 @@
1
+ module Hubscreen
2
+ class Request
3
+ attr_accessor :api_key, :api_endpoint, :timeout, :proxy, :faraday_adapter, :debug
4
+
5
+ DEFAULT_TIMEOUT = 30
6
+
7
+ def initialize(api_key: nil, api_endpoint: nil, timeout: nil, proxy: nil, faraday_adapter: nil, debug: false)
8
+ @path_parts = []
9
+ @api_key = api_key || self.class.api_key || Hubscreen::Config.hapikey
10
+ @api_key = @api_key.strip if @api_key
11
+ @api_endpoint = api_endpoint || self.class.api_endpoint || Hubscreen::Config.base_url
12
+ @timeout = timeout || self.class.timeout || DEFAULT_TIMEOUT
13
+ @proxy = proxy || self.class.proxy || ENV['HUBSCREEN_PROXY']
14
+ @faraday_adapter = faraday_adapter || Faraday.default_adapter
15
+ @debug = debug
16
+ end
17
+
18
+ def method_missing(method, *args)
19
+
20
+ @path_parts << method.to_s.downcase
21
+ @path_parts << args if args.length > 0
22
+ @path_parts.flatten!
23
+ self
24
+ end
25
+
26
+ def send(*args)
27
+ if args.length == 0
28
+ method_missing(:send, args)
29
+ else
30
+ __send__(*args)
31
+ end
32
+ end
33
+
34
+ def path
35
+ @path_parts.join('/')
36
+ end
37
+
38
+ def post(params: nil, headers: nil, body: nil)
39
+ APIRequest.new(builder: self).post(params: params, headers: headers, body: body)
40
+ ensure
41
+ reset
42
+ end
43
+
44
+ def patch(params: nil, headers: nil, body: nil)
45
+ APIRequest.new(builder: self).patch(params: params, headers: headers, body: body)
46
+ ensure
47
+ reset
48
+ end
49
+
50
+ def put(params: nil, headers: nil, body: nil)
51
+ APIRequest.new(builder: self).put(params: params, headers: headers, body: body)
52
+ ensure
53
+ reset
54
+ end
55
+
56
+ def get(params: nil, headers: nil)
57
+ APIRequest.new(builder: self).get(params: params, headers: headers)
58
+ ensure
59
+ reset
60
+ end
61
+
62
+ def delete(params: nil, headers: nil)
63
+ APIRequest.new(builder: self).delete(params: params, headers: headers)
64
+ ensure
65
+ reset
66
+ end
67
+
68
+ protected
69
+
70
+ def reset
71
+ @path_parts = []
72
+ end
73
+
74
+ class << self
75
+ attr_accessor :api_key, :timeout, :api_endpoint, :proxy
76
+
77
+ def method_missing(sym, *args, &block)
78
+ new(api_key: self.api_key, api_endpoint: self.api_endpoint, timeout: self.timeout, proxy: self.proxy).send(sym, *args, &block)
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,3 @@
1
+ module Hubscreen
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,191 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hubscreen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Bryan Vaz
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-08-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.5'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.5'
55
+ - !ruby/object:Gem::Dependency
56
+ name: vcr
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: webmock
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.1'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
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
+ - !ruby/object:Gem::Dependency
98
+ name: activesupport
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 5.0.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 5.0.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: faraday
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 0.9.2
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 0.9.2
125
+ - !ruby/object:Gem::Dependency
126
+ name: multi_json
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 1.12.1
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 1.12.1
139
+ description: Multi-purpose Ruby wrapper for the Hubspot CRM API with access to the
140
+ raw response or Ruby objects for faster development
141
+ email:
142
+ - open-source@improvemy.it
143
+ executables: []
144
+ extensions: []
145
+ extra_rdoc_files:
146
+ - LICENSE.txt
147
+ - README.md
148
+ files:
149
+ - ".gitignore"
150
+ - ".rspec"
151
+ - ".travis.yml"
152
+ - CODE_OF_CONDUCT.md
153
+ - Gemfile
154
+ - LICENSE.txt
155
+ - README.md
156
+ - Rakefile
157
+ - bin/console
158
+ - bin/setup
159
+ - hubscreen.gemspec
160
+ - lib/hubscreen.rb
161
+ - lib/hubscreen/api_request.rb
162
+ - lib/hubscreen/config.rb
163
+ - lib/hubscreen/contact.rb
164
+ - lib/hubscreen/exceptions.rb
165
+ - lib/hubscreen/request.rb
166
+ - lib/hubscreen/version.rb
167
+ homepage: https://github.com/bryanvaz/hubscreen
168
+ licenses:
169
+ - MIT
170
+ metadata: {}
171
+ post_install_message:
172
+ rdoc_options: []
173
+ require_paths:
174
+ - lib
175
+ required_ruby_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: 2.0.0
180
+ required_rubygems_version: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ requirements: []
186
+ rubyforge_project:
187
+ rubygems_version: 2.4.8
188
+ signing_key:
189
+ specification_version: 4
190
+ summary: Multi-purpose Ruby wrapper for the Hubspot CRM API
191
+ test_files: []