freshdesk_api 0.1.3 → 0.2.0
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 +5 -5
- data/.rubocop.yml +14 -0
- data/.travis.yml +9 -11
- data/Gemfile +2 -0
- data/LICENSE +1 -1
- data/README.md +2 -3
- data/Rakefile +7 -9
- data/bin/console +4 -3
- data/freshdesk_api.gemspec +22 -19
- data/lib/freshdesk_api.rb +3 -1
- data/lib/freshdesk_api/actions.rb +10 -11
- data/lib/freshdesk_api/client.rb +17 -16
- data/lib/freshdesk_api/collection.rb +4 -6
- data/lib/freshdesk_api/configuration.rb +2 -0
- data/lib/freshdesk_api/error.rb +3 -2
- data/lib/freshdesk_api/helpers.rb +7 -5
- data/lib/freshdesk_api/resource.rb +5 -7
- data/lib/freshdesk_api/resources/solution_article.rb +5 -5
- data/lib/freshdesk_api/resources/solution_category.rb +6 -6
- data/lib/freshdesk_api/resources/solution_folder.rb +5 -5
- data/lib/freshdesk_api/version.rb +3 -1
- metadata +33 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b1db7ae8bbc4c251226e0839c92fa12a6edbbbeada0d07953c542b9730ef05b7
|
4
|
+
data.tar.gz: 4a0f47520221e194a7d53c0320ee29381d0fa7b12b4691002aa9850cfefe1f60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c0d709f723a3b2dcb9edce68a8ae92daf3f1389f394cf4ac544708d75076ef9bb902a3b778e6074ff257a910092e58d40e702afa3d88d35be040062f1f90de4
|
7
|
+
data.tar.gz: 04e8d347c85a9dfcab6c2b8769f10858e91ffb32531ba55f9aff51c55f67a187395be238fba013441b0b84bd6215114f80b4fa773a7d84a4141d762365ceeb7e
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.4
|
3
|
+
Metrics/MethodLength:
|
4
|
+
Enabled: false
|
5
|
+
Metrics/LineLength:
|
6
|
+
Enabled: false
|
7
|
+
Style/MethodMissingSuper:
|
8
|
+
Enabled: false
|
9
|
+
Style/MissingRespondToMissing:
|
10
|
+
Enabled: false
|
11
|
+
Style/Documentation:
|
12
|
+
Enabled: false
|
13
|
+
Metrics/BlockLength:
|
14
|
+
Enabled: false
|
data/.travis.yml
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
language: ruby
|
2
|
-
|
3
|
-
- gem
|
4
|
-
-
|
5
|
-
|
6
|
-
|
2
|
+
before_install:
|
3
|
+
- gem update bundler
|
4
|
+
- bundle --version
|
5
|
+
- gem update --system
|
6
|
+
- gem --version
|
7
7
|
rvm:
|
8
|
-
- 2.
|
9
|
-
- 2.
|
10
|
-
-
|
11
|
-
|
12
|
-
- jruby
|
13
|
-
- rbx-2
|
8
|
+
- 2.5.1
|
9
|
+
- 2.4.4
|
10
|
+
- jruby-head
|
11
|
+
sudo: false
|
data/Gemfile
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
A Ruby API client that interfaces with freshdesk.com web service. This client supports regular CRUD operation.
|
8
8
|
|
9
|
-
Please see [API documentation](
|
9
|
+
Please see [API documentation](https://developers.freshdesk.com/api/) for more information.
|
10
10
|
|
11
11
|
As of now,it supports the following:
|
12
12
|
|
@@ -14,7 +14,6 @@ As of now,it supports the following:
|
|
14
14
|
* Solution Folder
|
15
15
|
* Solution Article
|
16
16
|
|
17
|
-
|
18
17
|
To experiment with that code, run `bin/console` for an interactive prompt.
|
19
18
|
|
20
19
|
## Installation
|
@@ -106,7 +105,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
106
105
|
|
107
106
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
108
107
|
|
109
|
-
Copyright (c) 2015-
|
108
|
+
Copyright (c) 2015-2018 by Anton Maminov
|
110
109
|
|
111
110
|
[travis_badge]: http://img.shields.io/travis/mamantoha/freshdesk_api_client_rb.svg?style=flat
|
112
111
|
[travis]: https://travis-ci.org/mamantoha/freshdesk_api_client_rb
|
data/Rakefile
CHANGED
@@ -1,15 +1,13 @@
|
|
1
|
-
|
2
|
-
require "bundler/gem_tasks"
|
1
|
+
# frozen_string_literal: true
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
end
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'bundler/gem_tasks'
|
5
|
+
require 'rspec/core/rake_task'
|
8
6
|
|
9
7
|
if defined?(RSpec)
|
10
|
-
desc
|
11
|
-
RSpec::Core::RakeTask.new(
|
12
|
-
t.pattern =
|
8
|
+
desc 'Run specs'
|
9
|
+
RSpec::Core::RakeTask.new('spec') do |t|
|
10
|
+
t.pattern = 'spec/core/**/*_spec.rb'
|
13
11
|
end
|
14
12
|
|
15
13
|
desc 'Default: run specs.'
|
data/bin/console
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
|
-
require
|
4
|
-
require
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'freshdesk_api'
|
5
6
|
|
6
7
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
8
|
# with your gem easier. You can also use a different console, if you like.
|
@@ -10,5 +11,5 @@ require "freshdesk_api"
|
|
10
11
|
# require "pry"
|
11
12
|
# Pry.start
|
12
13
|
|
13
|
-
require
|
14
|
+
require 'irb'
|
14
15
|
IRB.start
|
data/freshdesk_api.gemspec
CHANGED
@@ -1,32 +1,35 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
lib = File.expand_path('lib', __dir__)
|
3
5
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
6
|
require 'freshdesk_api/version'
|
5
7
|
|
6
8
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
9
|
+
spec.name = 'freshdesk_api'
|
8
10
|
spec.version = FreshdeskAPI::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
+
spec.authors = ['Anton Maminov']
|
12
|
+
spec.email = ['anton.linux@gmail.com']
|
11
13
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
14
|
+
spec.summary = 'Freshdesk REST API Client'
|
15
|
+
spec.description = 'Ruby wrapper for the REST API at http://freshdesk.com. Documentation at http://freshdesk.com/api.'
|
16
|
+
spec.homepage = 'https://github.com/mamantoha/freshdesk_api_client_rb'
|
15
17
|
|
16
|
-
spec.required_ruby_version
|
18
|
+
spec.required_ruby_version = '>= 2.4.0'
|
17
19
|
|
18
20
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
19
|
-
spec.bindir =
|
21
|
+
spec.bindir = 'exe'
|
20
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
-
spec.require_paths = [
|
23
|
+
spec.require_paths = ['lib']
|
22
24
|
|
23
|
-
spec.add_runtime_dependency
|
24
|
-
spec.add_runtime_dependency
|
25
|
-
spec.add_runtime_dependency
|
26
|
-
spec.add_runtime_dependency
|
25
|
+
spec.add_runtime_dependency 'activesupport'
|
26
|
+
spec.add_runtime_dependency 'deep_merge'
|
27
|
+
spec.add_runtime_dependency 'multi_json'
|
28
|
+
spec.add_runtime_dependency 'rest-client'
|
27
29
|
|
28
|
-
spec.add_development_dependency
|
29
|
-
spec.add_development_dependency
|
30
|
-
spec.add_development_dependency
|
31
|
-
spec.add_development_dependency
|
30
|
+
spec.add_development_dependency 'bundler'
|
31
|
+
spec.add_development_dependency 'rake'
|
32
|
+
spec.add_development_dependency 'rspec'
|
33
|
+
spec.add_development_dependency 'rubocop'
|
34
|
+
spec.add_development_dependency 'webmock'
|
32
35
|
end
|
data/lib/freshdesk_api.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
module FreshdeskAPI
|
3
4
|
module ResponseHandler
|
4
5
|
def handle_response(response)
|
5
6
|
response = MultiJson.load(response, symbolize_keys: true)
|
6
|
-
|
7
|
-
|
8
|
-
end
|
7
|
+
return unless response[response_namespace]
|
8
|
+
@attributes.replace(@attributes.deep_merge(response[response_namespace]))
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -34,7 +34,7 @@ module FreshdeskAPI
|
|
34
34
|
# Finds, returning nil if it fails
|
35
35
|
def find(client, options = {}, &block)
|
36
36
|
find!(client, options, &block)
|
37
|
-
rescue FreshdeskAPI::Error::ClientError
|
37
|
+
rescue FreshdeskAPI::Error::ClientError
|
38
38
|
nil
|
39
39
|
end
|
40
40
|
end
|
@@ -45,7 +45,7 @@ module FreshdeskAPI
|
|
45
45
|
# If this resource hasn't been deleted, then create or save it.
|
46
46
|
# Executes a POST if it is a {Data#new_record?}, otherwise a PUT.
|
47
47
|
# @return [Resource] created or updated object
|
48
|
-
def save!(
|
48
|
+
def save!(_options = {})
|
49
49
|
return false if respond_to?(:destroyed?) && destroyed?
|
50
50
|
|
51
51
|
options = { request_namespace => attributes }
|
@@ -61,7 +61,7 @@ module FreshdeskAPI
|
|
61
61
|
response = @client.make_request!(req_path, method, options)
|
62
62
|
|
63
63
|
handle_response(response)
|
64
|
-
|
64
|
+
self
|
65
65
|
end
|
66
66
|
|
67
67
|
# Saves, returning false if it fails and attachibg the errors
|
@@ -113,11 +113,11 @@ module FreshdeskAPI
|
|
113
113
|
|
114
114
|
def update!(attributes = {})
|
115
115
|
self.attributes.merge!(attributes)
|
116
|
-
|
116
|
+
save!
|
117
117
|
end
|
118
118
|
|
119
|
-
def update(attributes
|
120
|
-
update!(attributes
|
119
|
+
def update(attributes)
|
120
|
+
update!(attributes)
|
121
121
|
rescue FreshdeskAPI::Error::ClientError
|
122
122
|
false
|
123
123
|
end
|
@@ -189,6 +189,5 @@ module FreshdeskAPI
|
|
189
189
|
false
|
190
190
|
end
|
191
191
|
end
|
192
|
-
|
193
192
|
end
|
194
193
|
end
|
data/lib/freshdesk_api/client.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support/core_ext/string'
|
2
4
|
require 'rest_client'
|
3
5
|
require 'multi_json'
|
@@ -23,7 +25,7 @@ module FreshdeskAPI
|
|
23
25
|
|
24
26
|
# Handles resources such as 'tickets'.
|
25
27
|
# @return [Collection] Collection instance for resource
|
26
|
-
def method_missing(method, *args
|
28
|
+
def method_missing(method, *args)
|
27
29
|
method = method.to_s
|
28
30
|
method_class = method_as_class(method)
|
29
31
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
@@ -57,10 +59,11 @@ module FreshdeskAPI
|
|
57
59
|
|
58
60
|
def make_request!(path, method, options = {})
|
59
61
|
response = nil
|
60
|
-
connection[path].send(method, options)
|
62
|
+
connection[path].send(method, options) do |resp, _req, _result|
|
61
63
|
case resp.code
|
62
64
|
when 302
|
63
65
|
# Connection to the server failed. Please check username/password
|
66
|
+
raise Error::NotAcceptable
|
64
67
|
when 404
|
65
68
|
raise Error::ResourceNotFound
|
66
69
|
when 406
|
@@ -69,10 +72,10 @@ module FreshdeskAPI
|
|
69
72
|
raise Error::NetworkError
|
70
73
|
end
|
71
74
|
response = resp
|
72
|
-
|
73
|
-
|
74
|
-
rescue
|
75
|
-
raise Error::ClientError
|
75
|
+
end
|
76
|
+
response
|
77
|
+
rescue StandardError => e
|
78
|
+
raise Error::ClientError, e
|
76
79
|
end
|
77
80
|
|
78
81
|
protected
|
@@ -93,22 +96,20 @@ module FreshdeskAPI
|
|
93
96
|
private
|
94
97
|
|
95
98
|
def method_as_class(method)
|
96
|
-
|
99
|
+
"FreshdeskAPI::#{method.to_s.singularize.classify}".constantize
|
97
100
|
end
|
98
101
|
|
99
102
|
def check_url
|
100
|
-
|
101
|
-
|
102
|
-
end
|
103
|
+
return unless !config.allow_http && config.base_url !~ /^https/
|
104
|
+
raise ArgumentError, 'freshdesk_api is ssl only; url must begin with https://'
|
103
105
|
end
|
104
106
|
|
105
107
|
def set_default_logger
|
106
|
-
|
107
|
-
require 'logger'
|
108
|
-
config.logger = Logger.new($stderr)
|
109
|
-
config.logger.level = Logger::WARN
|
110
|
-
end
|
111
|
-
end
|
108
|
+
return unless config.logger
|
112
109
|
|
110
|
+
require 'logger'
|
111
|
+
config.logger = Logger.new($stderr)
|
112
|
+
config.logger.level = Logger::WARN
|
113
|
+
end
|
113
114
|
end
|
114
115
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module FreshdeskAPI
|
2
4
|
# Represents a collection of resources
|
3
5
|
class Collection
|
@@ -14,7 +16,7 @@ module FreshdeskAPI
|
|
14
16
|
@resource = resource.resource_name
|
15
17
|
@options = options
|
16
18
|
|
17
|
-
methods = %w
|
19
|
+
methods = %w[create find update destroy]
|
18
20
|
methods += methods.map { |method| method + '!' }
|
19
21
|
methods.each do |deferrable|
|
20
22
|
# Passes arguments and the proper path to the resource class method.
|
@@ -28,7 +30,6 @@ module FreshdeskAPI
|
|
28
30
|
@resource_class.send(deferrable, @client, opts)
|
29
31
|
end
|
30
32
|
end
|
31
|
-
|
32
33
|
end
|
33
34
|
|
34
35
|
# The API path to this collection
|
@@ -80,10 +81,7 @@ module FreshdeskAPI
|
|
80
81
|
inspect << "options=#{@options.inspect}" if @options.any?
|
81
82
|
"#{@resource.singularize} collection [#{inspect.join(',')}]"
|
82
83
|
end
|
83
|
-
|
84
84
|
end
|
85
|
-
alias
|
86
|
-
|
85
|
+
alias inspect to_s
|
87
86
|
end
|
88
|
-
|
89
87
|
end
|
data/lib/freshdesk_api/error.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module FreshdeskAPI
|
2
4
|
module Error
|
3
5
|
class ClientError < StandardError; end
|
@@ -10,13 +12,12 @@ module FreshdeskAPI
|
|
10
12
|
end
|
11
13
|
|
12
14
|
def to_s
|
13
|
-
"#{self.class.name}: #{@errors
|
15
|
+
"#{self.class.name}: #{@errors}"
|
14
16
|
end
|
15
17
|
end
|
16
18
|
|
17
19
|
class NotAcceptable < ClientError; end
|
18
20
|
class ResourceNotFound < ClientError; end
|
19
21
|
class NetworkError < ClientError; end
|
20
|
-
|
21
22
|
end
|
22
23
|
end
|
@@ -1,13 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module FreshdeskAPI
|
2
4
|
# @private
|
3
5
|
module Helpers
|
4
6
|
def self.deep_hash_access(hash, path)
|
5
7
|
path.split('/').each do |p|
|
6
|
-
if p.to_i.to_s == p
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
hash = if p.to_i.to_s == p
|
9
|
+
hash[p.to_i]
|
10
|
+
else
|
11
|
+
hash[p.to_s] || hash[p.to_sym]
|
12
|
+
end
|
11
13
|
break unless hash
|
12
14
|
end
|
13
15
|
hash
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'freshdesk_api/actions'
|
2
4
|
|
3
5
|
module FreshdeskAPI
|
@@ -12,8 +14,7 @@ module FreshdeskAPI
|
|
12
14
|
class << self
|
13
15
|
# The singular resource name taken from the class name (e.g. FreshdeskAPI::SoulutionCategory -> solution_category)
|
14
16
|
def singular_resource_name
|
15
|
-
@
|
16
|
-
|
17
|
+
@singular_resource_name ||= to_s.split('::').last.underscore
|
17
18
|
end
|
18
19
|
|
19
20
|
# The resource name taken from the class name (e.g. FreshdeskAPI::SolutionCatogory -> solution_categories)
|
@@ -45,7 +46,6 @@ module FreshdeskAPI
|
|
45
46
|
def to_s
|
46
47
|
"#{self.class.singular_resource_name}: #{attributes.inspect}"
|
47
48
|
end
|
48
|
-
alias :inspect :to_s
|
49
49
|
|
50
50
|
# @private
|
51
51
|
def inspect
|
@@ -54,10 +54,10 @@ module FreshdeskAPI
|
|
54
54
|
|
55
55
|
# Compares resources by class and id. If id is nil, then by object_id
|
56
56
|
def ==(other)
|
57
|
-
return true if other.object_id ==
|
57
|
+
return true if other.object_id == object_id
|
58
58
|
|
59
59
|
if other && !other.is_a?(Data)
|
60
|
-
warn "Trying to compare #{other.class} to a Resource from #{caller.first}"
|
60
|
+
warn "Trying to compare #{other.class} to a Resource from #{caller(1..1).first}"
|
61
61
|
end
|
62
62
|
|
63
63
|
if other.is_a?(Data)
|
@@ -66,7 +66,6 @@ module FreshdeskAPI
|
|
66
66
|
false
|
67
67
|
end
|
68
68
|
end
|
69
|
-
|
70
69
|
end
|
71
70
|
|
72
71
|
# Represents a resource that can CRUD (create, read, update, destroy)
|
@@ -76,5 +75,4 @@ module FreshdeskAPI
|
|
76
75
|
include Update
|
77
76
|
include Destroy
|
78
77
|
end
|
79
|
-
|
80
78
|
end
|
@@ -1,11 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'freshdesk_api/resource'
|
2
4
|
|
3
5
|
module FreshdeskAPI
|
4
6
|
class SolutionArticle < Resource
|
5
7
|
# Need to specify the category_id and folder_id in url
|
6
8
|
|
7
|
-
def api_url(
|
8
|
-
|
9
|
+
def api_url(_options = {})
|
10
|
+
format('/solution/categories/%<category_id>/folders/%<folder_id>/articles', attributes)
|
9
11
|
end
|
10
12
|
|
11
13
|
def request_namespace
|
@@ -18,14 +20,12 @@ module FreshdeskAPI
|
|
18
20
|
|
19
21
|
class << self
|
20
22
|
def api_url(options = {})
|
21
|
-
|
23
|
+
format('/solution/categories/%<category_id>/folders/%<folder_id>/articles', options)
|
22
24
|
end
|
23
25
|
|
24
26
|
def collection_namespace
|
25
27
|
'folder/articles'
|
26
28
|
end
|
27
|
-
|
28
29
|
end
|
29
|
-
|
30
30
|
end
|
31
31
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'freshdesk_api/resource'
|
2
4
|
|
3
5
|
module FreshdeskAPI
|
4
6
|
class SolutionCategory < Resource
|
5
|
-
def api_url(
|
6
|
-
|
7
|
+
def api_url(_options = {})
|
8
|
+
'/solution/categories'
|
7
9
|
end
|
8
10
|
|
9
11
|
def request_namespace
|
@@ -14,16 +16,14 @@ module FreshdeskAPI
|
|
14
16
|
:category
|
15
17
|
end
|
16
18
|
|
17
|
-
|
18
19
|
class << self
|
19
|
-
def api_url(
|
20
|
-
|
20
|
+
def api_url(_options = {})
|
21
|
+
'/solution/categories'
|
21
22
|
end
|
22
23
|
|
23
24
|
def collection_namespace
|
24
25
|
'category'
|
25
26
|
end
|
26
27
|
end
|
27
|
-
|
28
28
|
end
|
29
29
|
end
|
@@ -1,11 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'freshdesk_api/resource'
|
2
4
|
|
3
5
|
module FreshdeskAPI
|
4
6
|
class SolutionFolder < Resource
|
5
7
|
# Need to specify category_id in url
|
6
8
|
|
7
|
-
def api_url(
|
8
|
-
|
9
|
+
def api_url(_options = {})
|
10
|
+
format('/solution/categories/%<category_id>/folders', attributes)
|
9
11
|
end
|
10
12
|
|
11
13
|
def request_namespace
|
@@ -18,14 +20,12 @@ module FreshdeskAPI
|
|
18
20
|
|
19
21
|
class << self
|
20
22
|
def api_url(options = {})
|
21
|
-
|
23
|
+
format('/solution/categories/%<category_id>/folders', options)
|
22
24
|
end
|
23
25
|
|
24
26
|
def collection_namespace
|
25
27
|
'category/folders'
|
26
28
|
end
|
27
|
-
|
28
29
|
end
|
29
|
-
|
30
30
|
end
|
31
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freshdesk_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Maminov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: deep_merge
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rest-client
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -70,30 +70,30 @@ dependencies:
|
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,20 +108,34 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop
|
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'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: webmock
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- - "
|
129
|
+
- - ">="
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
131
|
+
version: '0'
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- - "
|
136
|
+
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
138
|
+
version: '0'
|
125
139
|
description: Ruby wrapper for the REST API at http://freshdesk.com. Documentation
|
126
140
|
at http://freshdesk.com/api.
|
127
141
|
email:
|
@@ -132,6 +146,7 @@ extra_rdoc_files: []
|
|
132
146
|
files:
|
133
147
|
- ".gitignore"
|
134
148
|
- ".rspec"
|
149
|
+
- ".rubocop.yml"
|
135
150
|
- ".travis.yml"
|
136
151
|
- Gemfile
|
137
152
|
- LICENSE
|
@@ -163,7 +178,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
178
|
requirements:
|
164
179
|
- - ">="
|
165
180
|
- !ruby/object:Gem::Version
|
166
|
-
version: 2.
|
181
|
+
version: 2.4.0
|
167
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
183
|
requirements:
|
169
184
|
- - ">="
|
@@ -171,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
186
|
version: '0'
|
172
187
|
requirements: []
|
173
188
|
rubyforge_project:
|
174
|
-
rubygems_version: 2.
|
189
|
+
rubygems_version: 2.7.6
|
175
190
|
signing_key:
|
176
191
|
specification_version: 4
|
177
192
|
summary: Freshdesk REST API Client
|