paperdrive 0.0.5
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.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.rubocop.yml +18 -0
- data/.travis.yml +9 -0
- data/CHANGELOG.md +29 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +75 -0
- data/README.md +120 -0
- data/Rakefile +8 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/lib/paperdrive/client/activities.rb +92 -0
- data/lib/paperdrive/client/activity_fields.rb +36 -0
- data/lib/paperdrive/client/activity_types.rb +77 -0
- data/lib/paperdrive/client/currencies.rb +26 -0
- data/lib/paperdrive/client/deal_fields.rb +87 -0
- data/lib/paperdrive/client/deals.rb +335 -0
- data/lib/paperdrive/client/filters.rb +87 -0
- data/lib/paperdrive/client/global_messages.rb +38 -0
- data/lib/paperdrive/client/mail_messages.rb +26 -0
- data/lib/paperdrive/client/mail_threads.rb +75 -0
- data/lib/paperdrive/client/note_fields.rb +25 -0
- data/lib/paperdrive/client/notes.rb +74 -0
- data/lib/paperdrive/client/organization_fields.rb +87 -0
- data/lib/paperdrive/client/organization_relationships.rb +75 -0
- data/lib/paperdrive/client/organizations.rb +233 -0
- data/lib/paperdrive/client/permission_sets.rb +89 -0
- data/lib/paperdrive/client/person_fields.rb +87 -0
- data/lib/paperdrive/client/persons.rb +258 -0
- data/lib/paperdrive/client/pipelines.rb +111 -0
- data/lib/paperdrive/client/product_fields.rb +87 -0
- data/lib/paperdrive/client/products.rb +160 -0
- data/lib/paperdrive/client/recents.rb +27 -0
- data/lib/paperdrive/client/roles.rb +149 -0
- data/lib/paperdrive/client/search_results.rb +39 -0
- data/lib/paperdrive/client/stages.rb +98 -0
- data/lib/paperdrive/client/user_connections.rb +26 -0
- data/lib/paperdrive/client/user_settings.rb +26 -0
- data/lib/paperdrive/client/users.rb +235 -0
- data/lib/paperdrive/client/webhooks.rb +50 -0
- data/lib/paperdrive/client.rb +122 -0
- data/lib/paperdrive/error.rb +42 -0
- data/lib/paperdrive/parameters.rb +34 -0
- data/lib/paperdrive/response.rb +42 -0
- data/lib/paperdrive/version.rb +6 -0
- data/lib/paperdrive.rb +7 -0
- data/paperdrive.gemspec +33 -0
- metadata +203 -0
@@ -0,0 +1,122 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_support'
|
4
|
+
require 'active_support/core_ext'
|
5
|
+
require 'faraday'
|
6
|
+
require 'faraday_middleware'
|
7
|
+
require 'paperdrive/error'
|
8
|
+
require 'paperdrive/parameters'
|
9
|
+
require 'paperdrive/response'
|
10
|
+
require 'paperdrive/client/activities'
|
11
|
+
require 'paperdrive/client/activity_fields'
|
12
|
+
require 'paperdrive/client/activity_types'
|
13
|
+
require 'paperdrive/client/currencies'
|
14
|
+
require 'paperdrive/client/deals'
|
15
|
+
require 'paperdrive/client/deal_fields'
|
16
|
+
require 'paperdrive/client/filters'
|
17
|
+
require 'paperdrive/client/global_messages'
|
18
|
+
require 'paperdrive/client/mail_messages'
|
19
|
+
require 'paperdrive/client/mail_threads'
|
20
|
+
require 'paperdrive/client/notes'
|
21
|
+
require 'paperdrive/client/note_fields'
|
22
|
+
require 'paperdrive/client/organizations'
|
23
|
+
require 'paperdrive/client/organization_fields'
|
24
|
+
require 'paperdrive/client/organization_relationships'
|
25
|
+
require 'paperdrive/client/permission_sets'
|
26
|
+
require 'paperdrive/client/persons'
|
27
|
+
require 'paperdrive/client/person_fields'
|
28
|
+
require 'paperdrive/client/pipelines'
|
29
|
+
require 'paperdrive/client/product_fields'
|
30
|
+
require 'paperdrive/client/products'
|
31
|
+
require 'paperdrive/client/recents'
|
32
|
+
require 'paperdrive/client/roles'
|
33
|
+
require 'paperdrive/client/search_results'
|
34
|
+
require 'paperdrive/client/stages'
|
35
|
+
require 'paperdrive/client/users'
|
36
|
+
require 'paperdrive/client/user_connections'
|
37
|
+
require 'paperdrive/client/user_settings'
|
38
|
+
require 'paperdrive/client/webhooks'
|
39
|
+
|
40
|
+
module Paperdrive
|
41
|
+
# Client to aceess API
|
42
|
+
class Client
|
43
|
+
include Paperdrive::Client::Activities
|
44
|
+
include Paperdrive::Client::ActivityFields
|
45
|
+
include Paperdrive::Client::ActivityTypes
|
46
|
+
include Paperdrive::Client::Currencies
|
47
|
+
include Paperdrive::Client::Deals
|
48
|
+
include Paperdrive::Client::DealFields
|
49
|
+
include Paperdrive::Client::Filters
|
50
|
+
include Paperdrive::Client::GlobalMessages
|
51
|
+
include Paperdrive::Client::MailMessages
|
52
|
+
include Paperdrive::Client::MailThreads
|
53
|
+
include Paperdrive::Client::Notes
|
54
|
+
include Paperdrive::Client::NoteFields
|
55
|
+
include Paperdrive::Client::Organizations
|
56
|
+
include Paperdrive::Client::OrganizationFields
|
57
|
+
include Paperdrive::Client::OrganizationRelationships
|
58
|
+
include Paperdrive::Client::PermissionSets
|
59
|
+
include Paperdrive::Client::Persons
|
60
|
+
include Paperdrive::Client::PersonFields
|
61
|
+
include Paperdrive::Client::Pipelines
|
62
|
+
include Paperdrive::Client::ProductFields
|
63
|
+
include Paperdrive::Client::Products
|
64
|
+
include Paperdrive::Client::Recents
|
65
|
+
include Paperdrive::Client::Roles
|
66
|
+
include Paperdrive::Client::SearchResults
|
67
|
+
include Paperdrive::Client::Stages
|
68
|
+
include Paperdrive::Client::Users
|
69
|
+
include Paperdrive::Client::UserConnections
|
70
|
+
include Paperdrive::Client::UserSettings
|
71
|
+
include Paperdrive::Client::Webhooks
|
72
|
+
|
73
|
+
API_BASEURL = 'https://api.pipedrive.com/v1'
|
74
|
+
|
75
|
+
# build instances by<br>
|
76
|
+
# using arguments: pass the token as `token:`<br>
|
77
|
+
# or using environment variables: set the token to ENV['PAPERDRIVE_TOKEN']
|
78
|
+
#
|
79
|
+
# @param [String] token: Paperdrive API access token
|
80
|
+
# @return [Paperdrive::Client] instance
|
81
|
+
def initialize(token: nil)
|
82
|
+
token ||= ENV['PAPERDRIVE_TOKEN']
|
83
|
+
raise Paperdrive::AuthTokenNotSpecified unless token || token.is_a?(String)
|
84
|
+
|
85
|
+
@token = token
|
86
|
+
end
|
87
|
+
|
88
|
+
# masking tokens to prevent casually displaying tokens
|
89
|
+
#
|
90
|
+
# @return [String] inspected and token masked string
|
91
|
+
def inspect
|
92
|
+
inspected = super
|
93
|
+
inspected.gsub!(@token, 'MASKED_TOKEN') if @token
|
94
|
+
end
|
95
|
+
|
96
|
+
protected
|
97
|
+
|
98
|
+
# make crud request
|
99
|
+
def request(method, path, params)
|
100
|
+
raise Paperdrive::InvalidRequestMethod unless %i[get post put delete].include?(method.to_sym)
|
101
|
+
|
102
|
+
raw_response = connection.send(method, build_path(path), params)
|
103
|
+
Paperdrive::Response.new(raw_response)
|
104
|
+
end
|
105
|
+
|
106
|
+
private
|
107
|
+
|
108
|
+
# memonize Faraday connection
|
109
|
+
def connection
|
110
|
+
@connection ||= Faraday.new(url: API_BASEURL) do |faraday|
|
111
|
+
faraday.request :json
|
112
|
+
faraday.response :logger
|
113
|
+
faraday.adapter Faraday.default_adapter
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
# build path which has `api_token:` query param
|
118
|
+
def build_path(path)
|
119
|
+
"#{path}?#{{ api_token: @token }.to_query}"
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Paperdrive
|
4
|
+
# Error Class
|
5
|
+
class Error < StandardError
|
6
|
+
class << self
|
7
|
+
# raise errors which corresponding to response status code
|
8
|
+
#
|
9
|
+
# @param [Paperdrive::Client] response
|
10
|
+
def raise_from(response)
|
11
|
+
status = response.status
|
12
|
+
return if (200..299).cover?(status)
|
13
|
+
|
14
|
+
klass = case status
|
15
|
+
when 400 then Paperdrive::BadRequest
|
16
|
+
when 401 then Paperdrive::Unauthorized
|
17
|
+
when 429 then Paperdrive::RateLimitExceeded
|
18
|
+
when 400..499 then Paperdrive::ClientError
|
19
|
+
when 500 then Paperdrive::InternalServerError
|
20
|
+
when 500..599 then Paperdrive::ServerError
|
21
|
+
else Paperdrive::UnknownError
|
22
|
+
end
|
23
|
+
raise klass, "#{status}-#{response&.reason_phrase}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# response-relateds
|
29
|
+
class ClientError < Error; end
|
30
|
+
class BadRequest < ClientError; end
|
31
|
+
class Unautorized < ClientError; end
|
32
|
+
class RateLimitExceeded < ClientError; end
|
33
|
+
class ServerError < Error; end
|
34
|
+
class InternalServerError < ServerError; end
|
35
|
+
class UnknownError < Error; end
|
36
|
+
|
37
|
+
# others
|
38
|
+
class AuthTokenNotSpecified < Error; end
|
39
|
+
class InvalidRequiredParameters < Error; end
|
40
|
+
class MissingRequiredParameters < Error; end
|
41
|
+
class InvalidRequestMethod < Error; end
|
42
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_support'
|
4
|
+
require 'active_support/core_ext'
|
5
|
+
require 'paperdrive/error'
|
6
|
+
|
7
|
+
module Paperdrive
|
8
|
+
# Module which has methods to define parameters to submit with request
|
9
|
+
module Parameters
|
10
|
+
protected
|
11
|
+
|
12
|
+
def parameters(params, &_block)
|
13
|
+
@params = params.symbolize_keys
|
14
|
+
yield if block_given?
|
15
|
+
@params
|
16
|
+
end
|
17
|
+
|
18
|
+
# set required parameters and raise errors if there are lack of params
|
19
|
+
def required_params(*args)
|
20
|
+
raise InvalidRequiredParameters unless args.all? { |arg| arg.is_a?(Symbol) }
|
21
|
+
raise MissingRequiredParameters unless args.all? { |arg| !@params[arg].nil? }
|
22
|
+
end
|
23
|
+
|
24
|
+
# set optional(possible) parameters and output redundant parameters to stdout
|
25
|
+
def optional_params(*args)
|
26
|
+
raise InvalidRequiredParameters unless args.all? { |arg| arg.is_a?(Symbol) }
|
27
|
+
|
28
|
+
@params.keys.each do |key|
|
29
|
+
puts ":#{key} is unused parameter." unless args.include?(key)
|
30
|
+
end
|
31
|
+
@params.slice!(*args)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'paperdrive/error'
|
4
|
+
|
5
|
+
module Paperdrive
|
6
|
+
# Wrapper class of the Faraday::Response.
|
7
|
+
class Response
|
8
|
+
attr_accessor :header, :ratelimit, :body, :status_code, :status_phrase
|
9
|
+
|
10
|
+
# build instance from Faraday::Response
|
11
|
+
#
|
12
|
+
# @param [Faraday::Response] response
|
13
|
+
def initialize(response)
|
14
|
+
Paperdrive::Error.raise_from(response)
|
15
|
+
@header = response.headers.to_h
|
16
|
+
@ratelimit = build_ratelimit(@header)
|
17
|
+
@body = JSON.parse(response.body)
|
18
|
+
@status_code = response.status
|
19
|
+
@status_phrase = response.reason_phrase
|
20
|
+
end
|
21
|
+
|
22
|
+
# return whether the request was successfully processed or not
|
23
|
+
#
|
24
|
+
# @param [boolean]
|
25
|
+
def success?
|
26
|
+
!!@body['success']
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
# build Struct of rate limit information from Faraday::Utils::Headers
|
32
|
+
#
|
33
|
+
# @param [Faraday::Utils::Headers] header response header
|
34
|
+
# @return [Struct<integer>] which has :limit :remain :reset
|
35
|
+
def build_ratelimit(header)
|
36
|
+
Struct.new(:limit, :remain, :reset)
|
37
|
+
.new(header['x-ratelimit-limit'].to_i,
|
38
|
+
header['x-ratelimit-remaining'].to_i,
|
39
|
+
header['x-ratelimit-reset'].to_i)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/paperdrive.rb
ADDED
data/paperdrive.gemspec
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'paperdrive/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = 'paperdrive'
|
9
|
+
spec.version = Paperdrive::VERSION
|
10
|
+
spec.authors = %w[rnitta]
|
11
|
+
spec.email = ['attinyes@gmail.com']
|
12
|
+
|
13
|
+
spec.summary = 'Unofficial Pipedrive API wrapper gem'
|
14
|
+
spec.description = 'Unofficial Ruby wrapper for the Pipedrive API'
|
15
|
+
spec.homepage = 'https://github.com/rnitta/paperdrive'
|
16
|
+
spec.license = 'MIT'
|
17
|
+
|
18
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
19
|
+
f.match(%r{^(test|spec|features)/})
|
20
|
+
end
|
21
|
+
spec.bindir = 'exe'
|
22
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
|
+
spec.require_paths = %w[lib]
|
24
|
+
|
25
|
+
spec.add_dependency 'activesupport'
|
26
|
+
spec.add_dependency 'faraday', '~> 0.15.4'
|
27
|
+
spec.add_dependency 'faraday_middleware', '~> 0.12.2'
|
28
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
29
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
30
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
31
|
+
spec.add_development_dependency 'rubocop', '~> 0.62.0'
|
32
|
+
spec.add_development_dependency 'yard'
|
33
|
+
end
|
metadata
ADDED
@@ -0,0 +1,203 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: paperdrive
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.5
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- rnitta
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-01-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
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: faraday
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.15.4
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.15.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: faraday_middleware
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.12.2
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.12.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.16'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.16'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.62.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.62.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: yard
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: Unofficial Ruby wrapper for the Pipedrive API
|
126
|
+
email:
|
127
|
+
- attinyes@gmail.com
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- ".gitignore"
|
133
|
+
- ".rspec"
|
134
|
+
- ".rubocop.yml"
|
135
|
+
- ".travis.yml"
|
136
|
+
- CHANGELOG.md
|
137
|
+
- Gemfile
|
138
|
+
- Gemfile.lock
|
139
|
+
- README.md
|
140
|
+
- Rakefile
|
141
|
+
- bin/console
|
142
|
+
- bin/setup
|
143
|
+
- lib/paperdrive.rb
|
144
|
+
- lib/paperdrive/client.rb
|
145
|
+
- lib/paperdrive/client/activities.rb
|
146
|
+
- lib/paperdrive/client/activity_fields.rb
|
147
|
+
- lib/paperdrive/client/activity_types.rb
|
148
|
+
- lib/paperdrive/client/currencies.rb
|
149
|
+
- lib/paperdrive/client/deal_fields.rb
|
150
|
+
- lib/paperdrive/client/deals.rb
|
151
|
+
- lib/paperdrive/client/filters.rb
|
152
|
+
- lib/paperdrive/client/global_messages.rb
|
153
|
+
- lib/paperdrive/client/mail_messages.rb
|
154
|
+
- lib/paperdrive/client/mail_threads.rb
|
155
|
+
- lib/paperdrive/client/note_fields.rb
|
156
|
+
- lib/paperdrive/client/notes.rb
|
157
|
+
- lib/paperdrive/client/organization_fields.rb
|
158
|
+
- lib/paperdrive/client/organization_relationships.rb
|
159
|
+
- lib/paperdrive/client/organizations.rb
|
160
|
+
- lib/paperdrive/client/permission_sets.rb
|
161
|
+
- lib/paperdrive/client/person_fields.rb
|
162
|
+
- lib/paperdrive/client/persons.rb
|
163
|
+
- lib/paperdrive/client/pipelines.rb
|
164
|
+
- lib/paperdrive/client/product_fields.rb
|
165
|
+
- lib/paperdrive/client/products.rb
|
166
|
+
- lib/paperdrive/client/recents.rb
|
167
|
+
- lib/paperdrive/client/roles.rb
|
168
|
+
- lib/paperdrive/client/search_results.rb
|
169
|
+
- lib/paperdrive/client/stages.rb
|
170
|
+
- lib/paperdrive/client/user_connections.rb
|
171
|
+
- lib/paperdrive/client/user_settings.rb
|
172
|
+
- lib/paperdrive/client/users.rb
|
173
|
+
- lib/paperdrive/client/webhooks.rb
|
174
|
+
- lib/paperdrive/error.rb
|
175
|
+
- lib/paperdrive/parameters.rb
|
176
|
+
- lib/paperdrive/response.rb
|
177
|
+
- lib/paperdrive/version.rb
|
178
|
+
- paperdrive.gemspec
|
179
|
+
homepage: https://github.com/rnitta/paperdrive
|
180
|
+
licenses:
|
181
|
+
- MIT
|
182
|
+
metadata: {}
|
183
|
+
post_install_message:
|
184
|
+
rdoc_options: []
|
185
|
+
require_paths:
|
186
|
+
- lib
|
187
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
188
|
+
requirements:
|
189
|
+
- - ">="
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '0'
|
192
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '0'
|
197
|
+
requirements: []
|
198
|
+
rubyforge_project:
|
199
|
+
rubygems_version: 2.7.6
|
200
|
+
signing_key:
|
201
|
+
specification_version: 4
|
202
|
+
summary: Unofficial Pipedrive API wrapper gem
|
203
|
+
test_files: []
|