pipelinedeals-client 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: 9d5ee47ee85e4a3694e707bf901dca60abfdbcad
4
+ data.tar.gz: 69dcf44605522c84d0d17bd0298bc64066a7c05a
5
+ SHA512:
6
+ metadata.gz: 9e08b1b7473ef656dd23f98ce14c683b9b87b9b7d774bb5a099553a1ed3dabb5d498a7819f3ba8c0eaa2f86103f9d0ce5ed04af49009abe0182e7d4c801078ca
7
+ data.tar.gz: c76a7203b279f68328ee51fe309e5ffceebc73c73d81f7d2db544f2c00054592c1c9adfcf425c7c606f037a982d9c51d67b70c5183158cefe7ebf83235d0bba3
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in pipelinedeals-client.gemspec
4
+ gemspec
5
+
6
+ group :test do
7
+ gem "pry"
8
+ gem "pry-nav"
9
+ end
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 vaberay
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,74 @@
1
+ # Pipelinedeals::Client
2
+
3
+ This gem is designed to communicate with the *Pipeline Deals API*
4
+ through instantiation of the main class **PipelineDeals::Client**.
5
+ To instantiate you need the API key from a Pipeline Deals account.
6
+
7
+ This Gem supports the following **Pipeline Deals API** methods:
8
+
9
+ * People
10
+ * Users
11
+ # Person_custom_fields(get)
12
+
13
+ All methods in this gem use **JSON** formatting. To read on the Pipeline API please visit (https://www.pipelinedeals.com/api/docs/introduction)
14
+
15
+ ## Installation
16
+
17
+ Add this line to your application's Gemfile:
18
+
19
+ ```ruby
20
+ gem 'pipelinedeals-client'
21
+ ```
22
+
23
+ And then execute:
24
+
25
+ $ bundle
26
+
27
+ Or install it yourself as:
28
+
29
+ $ gem install pipelinedeals-client
30
+
31
+ ## Usage
32
+
33
+ To begin:
34
+
35
+ ```ruby
36
+ pipeline = PipelineDeals::Client.new(api_key)
37
+ ```
38
+ To check if a successful connection can be made to the API:
39
+
40
+ ```ruby
41
+ pipeline.ping
42
+ ```
43
+ This will return *true* or *false*.
44
+
45
+ The get methods support pagination and the default page size is 200.
46
+ To get the people on the first page (first 200):
47
+ ```ruby
48
+ response = pipeline.people
49
+ ```
50
+ The response includes metadata for pagination.
51
+ ```ruby
52
+ response["per_page"]
53
+ ```
54
+
55
+ You can also get people on a particular page:
56
+ ```ruby
57
+ pipeline.people(2)
58
+ ```
59
+ This will get all the users on the second page.
60
+
61
+ To create a person on *Pipeline Deals*:
62
+ ```ruby
63
+ pipeline.create_person(person)
64
+ ```
65
+ The person parameter has to be formatted according to (https://www.pipelinedeals.com/api/docs/examples).
66
+
67
+
68
+ ## Contributing
69
+
70
+ 1. Fork it ( https://github.com/[my-github-username]/pipelinedeals-client/fork )
71
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
72
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
73
+ 4. Push to the branch (`git push origin my-new-feature`)
74
+ 5. Create a new Pull Request
@@ -0,0 +1,8 @@
1
+ require 'rspec/core/rake_task'
2
+ require "bundler/gem_tasks"
3
+
4
+ RSpec::Core::RakeTask.new(:spec) do |task|
5
+ task.rspec_opts = ['--color', '--format', 'nested']
6
+ end
7
+
8
+ task :default => :spec
@@ -0,0 +1,66 @@
1
+ require "pipelinedeals/client/version"
2
+ require "httparty"
3
+
4
+ module Pipelinedeals
5
+ class Client
6
+ attr_reader :api_key
7
+
8
+ API_URL = "https://api.pipelinedeals.com/api/v3/"
9
+
10
+ def initialize(api_key)
11
+ @api_key = "#{api_key}"
12
+ end
13
+
14
+ def ping
15
+ response = users
16
+ !response.has_key?("errors") && !response.has_key?("error")
17
+ end
18
+
19
+ def users(page = 1)
20
+ get_request("users", "&page=#{page}")
21
+ end
22
+
23
+ def person_custom_fields(page = 1)
24
+ get_request("/admin/person_custom_field_labels", "&page=#{page}")
25
+ end
26
+
27
+ def people(page = 1, per_page = 10000)
28
+ get_request("people", "&page=#{page}&per_page=#{per_page}")
29
+ end
30
+
31
+ def create_person(data, endpoint = "people")
32
+ post_request(data, endpoint)
33
+ end
34
+
35
+ def update_person(data, id, options = "")
36
+ put_request(data, "people/#{id}", options)
37
+ end
38
+
39
+ private
40
+
41
+ def uri_generator(endpoint, options = "")
42
+ "#{API_URL}#{endpoint}.json?api_key=#{@api_key}#{options}"
43
+ end
44
+
45
+ def get_request(endpoint, options = "")
46
+ response = HTTParty.get(uri_generator(endpoint, options))
47
+ response.parsed_response
48
+ end
49
+
50
+ def post_request(data, endpoint, options = "")
51
+ uri = uri_generator(endpoint, options)
52
+ res = HTTParty.post(uri,
53
+ :body => data,
54
+ :header => { "Content-type" => "text/json"})
55
+ res.response
56
+ end
57
+
58
+ def put_request(data, endpoint, options = "")
59
+ uri = uri_generator(endpoint, options)
60
+ res = HTTParty.put(uri,
61
+ :body => data,
62
+ :header => { "Content-type" => "text/json" })
63
+ res.response
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,5 @@
1
+ module Pipelinedeals
2
+ class Client
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'pipelinedeals/client/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "pipelinedeals-client"
8
+ spec.version = Pipelinedeals::Client::VERSION
9
+ spec.authors = ["vaberay"]
10
+ spec.email = ["ramon@wishpond.com"]
11
+ spec.summary = %q{To be used with Chatty Panda}
12
+ spec.description = %q{This gem is to be interact with te pipelinedeals api.}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "httparty"
22
+ spec.add_development_dependency "bundler", "~> 1.7"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "pry"
26
+ spec.add_development_dependency "webmock"
27
+ spec.add_development_dependency "sinatra"
28
+ end
@@ -0,0 +1,76 @@
1
+ require 'spec_helper'
2
+
3
+ describe Pipelinedeals::Client do
4
+ subject { Pipelinedeals::Client.new }
5
+ let(:api_key) { '12345abcde'}
6
+ let(:client) { Pipelinedeals::Client.new(api_key)}
7
+ let(:bad_api_key) { '12345abcd'}
8
+ let(:bad_client) { Pipelinedeals::Client.new(bad_api_key)}
9
+
10
+ describe '#initialize' do
11
+ it 'stores the api_key' do
12
+ expect(client.api_key).to eq(api_key)
13
+ end
14
+ end
15
+
16
+ describe '#ping' do
17
+ context 'good api_key' do
18
+ it 'returns true' do
19
+ response = client.ping
20
+ expect(response).to be_truthy
21
+ end
22
+ end
23
+
24
+ context 'bad_api_key' do
25
+ it 'returns false' do
26
+ response = bad_client.ping
27
+ expect(response).to be_falsey
28
+ end
29
+ end
30
+ end
31
+
32
+
33
+
34
+ describe '#people' do
35
+ it 'returns the collection of people' do
36
+ response = client.people
37
+ expect(response['pagination']['page']).to eq(1)
38
+ expect(response['entries'].size).to eq(3)
39
+ end
40
+
41
+ context 'wrong api_key' do
42
+ it "returns an error message" do
43
+ response = bad_client.people
44
+ expect(response['error']).to eq('Unknown api key')
45
+ end
46
+ end
47
+ end
48
+
49
+ describe '#users' do
50
+ it 'return the collection of users' do
51
+ response = client.users
52
+ expect(response.has_key?('pagination')).to be_truthy
53
+ end
54
+
55
+ context 'wrong api_key' do
56
+ it "returns an error message" do
57
+ response = bad_client.users
58
+ expect(response['error']).to eq('Unknown api key')
59
+ end
60
+ end
61
+ end
62
+
63
+ describe '#person_custom_fields' do
64
+ it 'returns the collection of custom fields' do
65
+ response = client.person_custom_fields
66
+ expect(response.has_key?('pagination')).to be_truthy
67
+ end
68
+
69
+ context 'wrong api_key' do
70
+ it "returns an error message" do
71
+ response = bad_client.person_custom_fields
72
+ expect(response['error']).to eq('Unknown api key')
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'External request' do
4
+ it 'tries to hit the pipelinedeals api' do
5
+ uri = 'https://pipelinedeals.com'
6
+
7
+ response = HTTParty.get(uri)
8
+
9
+ expect(response.body).to eq("stubbed response")
10
+ end
11
+
12
+ end
@@ -0,0 +1,16 @@
1
+ require 'pipelinedeals/client'
2
+ require 'webmock/rspec'
3
+ require 'support/fake_pipelinedeals'
4
+ require 'pry'
5
+
6
+ WebMock.disable_net_connect!(allow_localhost: true)
7
+
8
+ RSpec.configure do |config|
9
+ config.before(:each) do
10
+ stub_request(:get, "https://pipelinedeals.com").
11
+ with(headers: {'Accept' => '*/*', 'User-Agent' => 'Ruby'}).
12
+ to_return(status: 200, body: "stubbed response", headers: {})
13
+
14
+ stub_request(:any, /https:\/\/api.pipelinedeals.com\/api\/v3\//).to_rack(FakePipelineDeals)
15
+ end
16
+ end
@@ -0,0 +1,48 @@
1
+ require 'sinatra/base'
2
+
3
+ class FakePipelineDeals < Sinatra::Base
4
+
5
+ get '/api/v3/people.json' do
6
+ if check_token(params['api_key'])
7
+ json_response(200, 'people.json')
8
+ else
9
+ json_response(200, 'error.json')
10
+ end
11
+ end
12
+
13
+ get '/api/v3/users.json' do
14
+ if check_token(params['api_key'])
15
+ json_response(200, 'users.json')
16
+ else
17
+ json_response(200, 'error.json')
18
+ end
19
+ end
20
+
21
+ get '/api/v3/admin/person_custom_field_labels.json' do
22
+ if check_token(params['api_key'])
23
+ json_response(200, 'person_custom_fields.json')
24
+ else
25
+ json_response(200, 'error.json')
26
+ end
27
+ end
28
+
29
+ post '/api/v3/people.json' do
30
+ if check_token(params['api_key'])
31
+ json_response(201, 'create_person.json')
32
+ else
33
+ json_response(200, 'error.json')
34
+ end
35
+ end
36
+
37
+ private
38
+
39
+ def json_response(response_code, file_name)
40
+ content_type :json
41
+ status response_code
42
+ File.open(File.dirname(__FILE__) + '/fixtures/' + file_name, 'rb').read
43
+ end
44
+
45
+ def check_token(token)
46
+ token == '12345abcde'
47
+ end
48
+ end
@@ -0,0 +1,3 @@
1
+ {
2
+ "error":"Unknown api key"
3
+ }
@@ -0,0 +1,152 @@
1
+ {"entries":
2
+ [{"bounced":false,
3
+ "company_id":null,
4
+ "created_at":"2015/08/08 16:51:28 -0700",
5
+ "email":"sonya_renner@mosciskilesch.com",
6
+ "email2":null,
7
+ "facebook_url":null,
8
+ "fax":null,
9
+ "first_name":null,
10
+ "home_address_1":null,
11
+ "home_address_2":null,
12
+ "home_city":null,
13
+ "home_country":null,
14
+ "home_email":null,
15
+ "home_phone":null,
16
+ "home_postal_code":null,
17
+ "home_state":null,
18
+ "id":1043404447,
19
+ "instant_message":null,
20
+ "last_name":"Unknown",
21
+ "linked_in_url":null,
22
+ "mobile":null,
23
+ "phone":null,
24
+ "position":null,
25
+ "summary":null,
26
+ "twitter":null,
27
+ "type":"Contact",
28
+ "unsubscribed":false,
29
+ "updated_at":"2015/08/08 16:51:28 -0700",
30
+ "user_id":165505,
31
+ "viewed_at":null,
32
+ "website":null,
33
+ "work_address_1":null,
34
+ "work_address_2":null,
35
+ "work_city":null,
36
+ "work_country":null,
37
+ "work_postal_code":null,
38
+ "work_state":null,
39
+ "company_name":null,
40
+ "full_name":"Unknown",
41
+ "predefined_contacts_tag_ids":[],
42
+ "deal_ids":[],
43
+ "image_thumb_url":"/images/thumb/missing.png",
44
+ "image_mobile_url":"/images/mobile/missing.png",
45
+ "work_address_google_maps_url":"http://maps.google.com/maps?q=%2C+%2C+%2C+++",
46
+ "predefined_contacts_tags":[],
47
+ "deals":[],
48
+ "user":{"id":165505, "first_name":"ramon", "last_name":"savinon"},
49
+ "lead_status":null,
50
+ "lead_source":null,
51
+ "custom_fields":{"custom_label_1109338":null, "custom_label_1109341":null, "custom_label_1109344":null}},
52
+ {"bounced":false,
53
+ "company_id":null,
54
+ "created_at":"2015/08/08 16:51:26 -0700",
55
+ "email":"rashad_anderson@white.info",
56
+ "email2":null,
57
+ "facebook_url":null,
58
+ "fax":null,
59
+ "first_name":null,
60
+ "home_address_1":null,
61
+ "home_address_2":null,
62
+ "home_city":null,
63
+ "home_country":null,
64
+ "home_email":null,
65
+ "home_phone":null,
66
+ "home_postal_code":null,
67
+ "home_state":null,
68
+ "id":1043404444,
69
+ "instant_message":null,
70
+ "last_name":"Unknown",
71
+ "linked_in_url":null,
72
+ "mobile":null,
73
+ "phone":null,
74
+ "position":null,
75
+ "summary":null,
76
+ "twitter":null,
77
+ "type":"Contact",
78
+ "unsubscribed":false,
79
+ "updated_at":"2015/08/08 16:51:26 -0700",
80
+ "user_id":165505,
81
+ "viewed_at":null,
82
+ "website":null,
83
+ "work_address_1":null,
84
+ "work_address_2":null,
85
+ "work_city":null,
86
+ "work_country":null,
87
+ "work_postal_code":null,
88
+ "work_state":null,
89
+ "company_name":null,
90
+ "full_name":"Unknown",
91
+ "predefined_contacts_tag_ids":[],
92
+ "deal_ids":[],
93
+ "image_thumb_url":"/images/thumb/missing.png",
94
+ "image_mobile_url":"/images/mobile/missing.png",
95
+ "work_address_google_maps_url":"http://maps.google.com/maps?q=%2C+%2C+%2C+++",
96
+ "predefined_contacts_tags":[],
97
+ "deals":[],
98
+ "user":{"id":165505, "first_name":"ramon", "last_name":"savinon"},
99
+ "lead_status":null,
100
+ "lead_source":null,
101
+ "custom_fields":{"custom_label_1109338":null, "custom_label_1109341":null, "custom_label_1109344":null}},
102
+ {"bounced":false,
103
+ "company_id":null,
104
+ "created_at":"2015/08/06 11:06:03 -0700",
105
+ "email":"asia_waters@larson.biz",
106
+ "email2":null,
107
+ "facebook_url":null,
108
+ "fax":null,
109
+ "first_name":null,
110
+ "home_address_1":null,
111
+ "home_address_2":null,
112
+ "home_city":null,
113
+ "home_country":null,
114
+ "home_email":null,
115
+ "home_phone":null,
116
+ "home_postal_code":null,
117
+ "home_state":null,
118
+ "id":1043113642,
119
+ "instant_message":null,
120
+ "last_name":"Unknown",
121
+ "linked_in_url":null,
122
+ "mobile":null,
123
+ "phone":null,
124
+ "position":null,
125
+ "summary":null,
126
+ "twitter":null,
127
+ "type":"Contact",
128
+ "unsubscribed":false,
129
+ "updated_at":"2015/08/06 11:06:03 -0700",
130
+ "user_id":165505,
131
+ "viewed_at":null,
132
+ "website":null,
133
+ "work_address_1":null,
134
+ "work_address_2":null,
135
+ "work_city":null,
136
+ "work_country":null,
137
+ "work_postal_code":null,
138
+ "work_state":null,
139
+ "company_name":null,
140
+ "full_name":"Unknown",
141
+ "predefined_contacts_tag_ids":[],
142
+ "deal_ids":[],
143
+ "image_thumb_url":"/images/thumb/missing.png",
144
+ "image_mobile_url":"/images/mobile/missing.png",
145
+ "work_address_google_maps_url":"http://maps.google.com/maps?q=%2C+%2C+%2C+++",
146
+ "predefined_contacts_tags":[],
147
+ "deals":[],
148
+ "user":{"id":165505, "first_name":"ramon", "last_name":"savinon"},
149
+ "lead_status":null,
150
+ "lead_source":null,
151
+ "custom_fields":{"custom_label_1109338":null, "custom_label_1109341":null, "custom_label_1109344":"East Elroyhaven"}}],
152
+ "pagination":{"page":1, "page_var":"page", "per_page":200, "pages":1, "total":78}}
@@ -0,0 +1,5 @@
1
+ {"entries":
2
+ [{"created_at":"2015/08/05 16:33:11 -0700", "field_type":"numeric", "id":1109338, "is_required":false, "name":"age", "updated_at":"2015/08/05 16:33:11 -0700"},
3
+ {"created_at":"2015/08/05 16:33:22 -0700", "field_type":"text", "id":1109341, "is_required":false, "name":"fav_pokemon", "updated_at":"2015/08/05 16:33:22 -0700"},
4
+ {"created_at":"2015/08/05 16:33:50 -0700", "field_type":"text", "id":1109344, "is_required":false, "name":"nickname", "updated_at":"2015/08/05 16:33:50 -0700"}],
5
+ "pagination":{"page":1, "page_var":"page", "per_page":200, "pages":1, "total":3}}
@@ -0,0 +1,16 @@
1
+ {"entries":
2
+ [{"account_id":70918,
3
+ "deleted_at":null,
4
+ "email":"ramon+4@wishpond.com",
5
+ "email2":null,
6
+ "email3":null,
7
+ "first_name":"ramon",
8
+ "id":165505,
9
+ "is_account_admin":true,
10
+ "last_name":"savinon",
11
+ "level":3,
12
+ "manager_id":null,
13
+ "avatar_thumb_url":null,
14
+ "api_key":"zZOj2w5SgTNZkwcQNkq",
15
+ "is_google_apps_enabled":false}],
16
+ "pagination":{"page":1, "page_var":"page", "per_page":200, "pages":1, "total":1}}
metadata ADDED
@@ -0,0 +1,168 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pipelinedeals-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - vaberay
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.7'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
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: sinatra
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: This gem is to be interact with te pipelinedeals api.
112
+ email:
113
+ - ramon@wishpond.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - Gemfile
120
+ - LICENSE.txt
121
+ - README.md
122
+ - Rakefile
123
+ - lib/pipelinedeals/client.rb
124
+ - lib/pipelinedeals/client/version.rb
125
+ - pipelinedeals-client.gemspec
126
+ - spec/client_spec.rb
127
+ - spec/features/external_request_spec.rb
128
+ - spec/spec_helper.rb
129
+ - spec/support/fake_pipelinedeals.rb
130
+ - spec/support/fixtures/create_person.json
131
+ - spec/support/fixtures/error.json
132
+ - spec/support/fixtures/people.json
133
+ - spec/support/fixtures/person_custom_fields.json
134
+ - spec/support/fixtures/users.json
135
+ homepage: ''
136
+ licenses:
137
+ - MIT
138
+ metadata: {}
139
+ post_install_message:
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubyforge_project:
155
+ rubygems_version: 2.2.2
156
+ signing_key:
157
+ specification_version: 4
158
+ summary: To be used with Chatty Panda
159
+ test_files:
160
+ - spec/client_spec.rb
161
+ - spec/features/external_request_spec.rb
162
+ - spec/spec_helper.rb
163
+ - spec/support/fake_pipelinedeals.rb
164
+ - spec/support/fixtures/create_person.json
165
+ - spec/support/fixtures/error.json
166
+ - spec/support/fixtures/people.json
167
+ - spec/support/fixtures/person_custom_fields.json
168
+ - spec/support/fixtures/users.json