nusii 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/.rspec +2 -0
- data/.travis.yml +6 -0
- data/Gemfile +5 -0
- data/LICENSE +21 -0
- data/README.md +306 -0
- data/Rakefile +6 -0
- data/bin/console +7 -0
- data/lib/nusii.rb +54 -0
- data/lib/nusii/account.rb +18 -0
- data/lib/nusii/api_operations/base.rb +58 -0
- data/lib/nusii/api_operations/connection.rb +21 -0
- data/lib/nusii/api_operations/create.rb +30 -0
- data/lib/nusii/api_operations/delete.rb +30 -0
- data/lib/nusii/api_operations/index.rb +37 -0
- data/lib/nusii/api_operations/nested_create.rb +31 -0
- data/lib/nusii/api_operations/nested_index.rb +27 -0
- data/lib/nusii/api_operations/send.rb +29 -0
- data/lib/nusii/api_operations/show.rb +32 -0
- data/lib/nusii/api_operations/update.rb +30 -0
- data/lib/nusii/client.rb +24 -0
- data/lib/nusii/crud/create.rb +12 -0
- data/lib/nusii/crud/destroy.rb +12 -0
- data/lib/nusii/crud/destroy_self.rb +14 -0
- data/lib/nusii/crud/get.rb +12 -0
- data/lib/nusii/crud/list.rb +12 -0
- data/lib/nusii/crud/save.rb +23 -0
- data/lib/nusii/line_item.rb +37 -0
- data/lib/nusii/nusii_error.rb +48 -0
- data/lib/nusii/proposal.rb +31 -0
- data/lib/nusii/proposal_activity.rb +17 -0
- data/lib/nusii/request.rb +45 -0
- data/lib/nusii/resource.rb +40 -0
- data/lib/nusii/response_object.rb +29 -0
- data/lib/nusii/section.rb +25 -0
- data/lib/nusii/utils/json_api_builder.rb +69 -0
- data/lib/nusii/version.rb +3 -0
- data/lib/nusii/webhook_endpoint.rb +23 -0
- data/nusii.gemspec +33 -0
- metadata +194 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
module Nusii
|
2
|
+
class LineItem < Resource
|
3
|
+
extend Nusii::Crud::List
|
4
|
+
extend Nusii::Crud::Destroy
|
5
|
+
include Nusii::Crud::DestroySelf
|
6
|
+
|
7
|
+
attr_accessor :id, :section_id, :name, :position, :cost_type,
|
8
|
+
:recurring_type, :per_type, :quantity, :currency,
|
9
|
+
:amount_in_cents, :amount_formatted, :total_in_cents,
|
10
|
+
:total_formatted, :updated_at, :created_at, :amount
|
11
|
+
|
12
|
+
def self.list_by_section section_id, options={}
|
13
|
+
requester = Nusii::Request.new
|
14
|
+
requester.nested_index_call self, section_id, Nusii::Section, options
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.create_with_section section_id, params
|
18
|
+
requester = Nusii::Request.new
|
19
|
+
requester.nested_create_call self, section_id, Nusii::Section, params
|
20
|
+
end
|
21
|
+
|
22
|
+
def save
|
23
|
+
raise(ArgumentError, 'You can\'t update a line item without id') if self.id.blank?
|
24
|
+
|
25
|
+
requester = Nusii::Request.new
|
26
|
+
requester.update_call self.class, self
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def editable_attributes
|
32
|
+
[ :name, :cost_type, :recurring_type, :per_type,
|
33
|
+
:position, :quantity, :amount ]
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Nusii
|
2
|
+
class NusiiError < StandardError
|
3
|
+
attr_reader :status, :body, :reason_phrase
|
4
|
+
|
5
|
+
def initialize status, body, reason_phrase
|
6
|
+
@status = status
|
7
|
+
@body = body
|
8
|
+
@reason_phrase = reason_phrase
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
message_text = message.present? ? "\nMessage: #{message}" : ''
|
13
|
+
"Status: #{status}#{message_text}"
|
14
|
+
end
|
15
|
+
|
16
|
+
def message
|
17
|
+
@message ||= body.presence || reason_phrase.presence
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.error_for status
|
21
|
+
case status
|
22
|
+
when 400 then BadRequestError
|
23
|
+
when 401 then UnauthorizedError
|
24
|
+
when 403 then ForbiddenError
|
25
|
+
when 404 then NotFoundError
|
26
|
+
when 405 then MethodNotAllowedError
|
27
|
+
when 406 then NotAcceptableError
|
28
|
+
when 410 then GoneError
|
29
|
+
when 429 then TooManyRequestsError
|
30
|
+
when 500 then IntervalServerError
|
31
|
+
when 503 then ServiceUnavailableError
|
32
|
+
else NusiiError
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class BadRequestError < NusiiError; end
|
38
|
+
class UnauthorizedError < NusiiError; end
|
39
|
+
class ForbiddenError < NusiiError; end
|
40
|
+
class NotFoundError < NusiiError; end
|
41
|
+
class MethodNotAllowedError < NusiiError; end
|
42
|
+
class NotAcceptableError < NusiiError; end
|
43
|
+
class GoneError < NusiiError; end
|
44
|
+
class TooManyRequestsError < NusiiError; end
|
45
|
+
class IntervalServerError < NusiiError; end
|
46
|
+
class ServiceUnavailableError < NusiiError; end
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Nusii
|
2
|
+
class Proposal < Resource
|
3
|
+
extend Nusii::Crud::Get
|
4
|
+
extend Nusii::Crud::List
|
5
|
+
extend Nusii::Crud::Create
|
6
|
+
include Nusii::Crud::Save
|
7
|
+
extend Nusii::Crud::Destroy
|
8
|
+
include Nusii::Crud::DestroySelf
|
9
|
+
|
10
|
+
attr_accessor :id, :account_id, :status, :public_id, :title,
|
11
|
+
:prepared_by_id, :client_id, :client_email,
|
12
|
+
:sender_id, :document_section_title,
|
13
|
+
:expires_at, :display_date, :report,
|
14
|
+
:exclude_total, :exclude_total_in_pdf, :theme,
|
15
|
+
:sections
|
16
|
+
|
17
|
+
def send_proposal params
|
18
|
+
requester = Nusii::Request.new
|
19
|
+
requester.send_call self.class, self, params
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def editable_attributes
|
25
|
+
[ :title, :client_id, :client_email, :document_section_title,
|
26
|
+
:prepared_by_id, :expires_at, :display_date,
|
27
|
+
:report, :exclude_total, :exclude_total_in_pdf, :theme ]
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Nusii
|
2
|
+
class ProposalActivity < Resource
|
3
|
+
extend Nusii::Crud::Get
|
4
|
+
extend Nusii::Crud::List
|
5
|
+
|
6
|
+
attr_accessor :id, :activity_type, :ip_address, :additional_fields,
|
7
|
+
:proposal_title, :proposal_created_at,
|
8
|
+
:proposal_sent_at, :proposal_status,
|
9
|
+
:proposal_public_id, :proposal_expires_at,
|
10
|
+
:client_name, :client_email, :client_surname,
|
11
|
+
:client_full_name, :client_business, :client_telephone,
|
12
|
+
:client_locale, :client_address, :client_postcode,
|
13
|
+
:client_country, :client_city, :client_state,
|
14
|
+
:client_web
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Nusii
|
2
|
+
class Request
|
3
|
+
|
4
|
+
def show_call resource_class, resource_id = nil, options = {}
|
5
|
+
operator = ApiOperations::Show.new(resource_class, resource_id, options)
|
6
|
+
operator.call
|
7
|
+
end
|
8
|
+
|
9
|
+
def index_call resource_class, options={}
|
10
|
+
operator = ApiOperations::Index.new(resource_class, options)
|
11
|
+
operator.call
|
12
|
+
end
|
13
|
+
|
14
|
+
def nested_index_call resource_class, nested_resource_id, nested_resource, options={}
|
15
|
+
operator = ApiOperations::NestedIndex.new(resource_class, nested_resource_id, nested_resource, options)
|
16
|
+
operator.call
|
17
|
+
end
|
18
|
+
|
19
|
+
def create_call resource_class, resource
|
20
|
+
operator = ApiOperations::Create.new(resource_class, resource)
|
21
|
+
operator.call
|
22
|
+
end
|
23
|
+
|
24
|
+
def nested_create_call resource_class, nested_resource_id, nested_resource_class, params
|
25
|
+
operator = ApiOperations::NestedCreate.new(resource_class, nested_resource_id, nested_resource_class, params)
|
26
|
+
operator.call
|
27
|
+
end
|
28
|
+
|
29
|
+
def update_call resource_class, resource
|
30
|
+
operator = ApiOperations::Update.new(resource_class, resource)
|
31
|
+
operator.call
|
32
|
+
end
|
33
|
+
|
34
|
+
def delete_call resource_class, resource_id, options={}
|
35
|
+
operator = ApiOperations::Delete.new(resource_class, resource_id, options)
|
36
|
+
operator.call
|
37
|
+
end
|
38
|
+
|
39
|
+
def send_call resource_class, resource, params
|
40
|
+
operator = ApiOperations::Send.new(resource_class, resource, params)
|
41
|
+
operator.call
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Nusii
|
2
|
+
class Resource
|
3
|
+
|
4
|
+
def initialize args
|
5
|
+
assign_attributes args
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.class_name
|
9
|
+
name.split("::").last
|
10
|
+
end
|
11
|
+
|
12
|
+
def editable_params
|
13
|
+
editable_attributes.each_with_object({}) do |attribute, result|
|
14
|
+
result[attribute.to_s] = self.send(attribute)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def save_params
|
19
|
+
{
|
20
|
+
self.class.class_name.underscore.singularize => editable_params
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def assign_attributes args
|
27
|
+
args.each do |attribute, value|
|
28
|
+
value = value.to_i if attribute.match(/\w+\_id$|^id$/)
|
29
|
+
instance_variable_set("@#{attribute}", value) unless value.nil?
|
30
|
+
end
|
31
|
+
self
|
32
|
+
end
|
33
|
+
|
34
|
+
def editable_attributes
|
35
|
+
raise NotImplementedError,
|
36
|
+
"Each subclass must implement this method"
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Nusii
|
2
|
+
class ResponseObject
|
3
|
+
|
4
|
+
attr_accessor :resources, :meta, :resource_class
|
5
|
+
|
6
|
+
def initialize resources, meta, resource_class
|
7
|
+
@resources = resources
|
8
|
+
@meta = meta
|
9
|
+
@resource_class = resource_class
|
10
|
+
end
|
11
|
+
|
12
|
+
def next_page
|
13
|
+
raise(ArgumentError, "That page does no exist") if meta['next_page'] == nil
|
14
|
+
resource_class.list(:page => meta['next_page'], :per => per_page)
|
15
|
+
end
|
16
|
+
|
17
|
+
def prev_page
|
18
|
+
raise(ArgumentError, "That page does no exist") if meta['prev_page'] == nil
|
19
|
+
resource_class.list(:page => meta['prev_page'], :per => per_page)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def per_page
|
25
|
+
(meta['total_count'] / meta['total_pages'].to_f).round
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Nusii
|
2
|
+
class Section < Resource
|
3
|
+
extend Nusii::Crud::Get
|
4
|
+
extend Nusii::Crud::List
|
5
|
+
extend Nusii::Crud::Create
|
6
|
+
include Nusii::Crud::Save
|
7
|
+
extend Nusii::Crud::Destroy
|
8
|
+
include Nusii::Crud::DestroySelf
|
9
|
+
|
10
|
+
attr_accessor :id, :currency, :account_id, :proposal_id,
|
11
|
+
:template_id, :title, :name, :body, :position,
|
12
|
+
:reusable, :section_type, :created_at, :updated_at,
|
13
|
+
:page_break, :optional, :selected, :include_total,
|
14
|
+
:total_in_cents, :total_formatted, :line_items
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def editable_attributes
|
19
|
+
[ :proposal_id, :template_id, :title, :body,
|
20
|
+
:name, :position, :reusable, :section_type,
|
21
|
+
:page_break, :optional, :include_total ]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Nusii
|
2
|
+
module Utils
|
3
|
+
class JsonApiBuilder
|
4
|
+
attr_reader :data, :extra, :is_collection
|
5
|
+
|
6
|
+
def initialize data, extra
|
7
|
+
@is_collection = data.is_a?(Array)
|
8
|
+
@data = data.is_a?(Array) ? data : [data]
|
9
|
+
@extra = extra
|
10
|
+
end
|
11
|
+
|
12
|
+
def call
|
13
|
+
is_collection ? parsed_data : parsed_data.first
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def parsed_data
|
19
|
+
data.each_with_object([]) do |resource_info, result|
|
20
|
+
result << resource_class.new(attributes_for(resource_info))
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def attributes_for resource_info
|
25
|
+
{}.tap do |result|
|
26
|
+
result.merge! flat_id_with_attributes_for resource_info
|
27
|
+
result.merge! relationship_attributes_for(resource_info)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def relationship_attributes_for resource_info
|
32
|
+
(resource_info['relationships']||{}).each_with_object({}) do |(resource_type, resource_data), result|
|
33
|
+
resource_data['data'].each do |related_resource|
|
34
|
+
klass = "Nusii::#{resource_type.classify}".constantize
|
35
|
+
resource_id = related_resource['id']
|
36
|
+
|
37
|
+
result[resource_type] ||= []
|
38
|
+
result[resource_type] << klass.new(extract_from_included(resource_type, resource_id))
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def extract_from_included resource_type, resource_id
|
44
|
+
( parsed_included.present? &&
|
45
|
+
parsed_included[resource_type][resource_id] ) ||
|
46
|
+
{'id' => resource_id }
|
47
|
+
end
|
48
|
+
|
49
|
+
def parsed_included
|
50
|
+
@parsed_included ||= (extra||{}).each_with_object({}) do |item, result|
|
51
|
+
result[item['type']] ||= {}
|
52
|
+
result[item['type']][item['id']] = flat_id_with_attributes_for(item)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def flat_id_with_attributes_for item
|
57
|
+
new_item = item['attributes']
|
58
|
+
new_item.tap do |new_item_temp|
|
59
|
+
new_item_temp['id'] = item['id']
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def resource_class
|
64
|
+
"Nusii::#{data.first['type'].classify}".constantize
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Nusii
|
2
|
+
class WebhookEndpoint < Resource
|
3
|
+
extend Nusii::Crud::Get
|
4
|
+
extend Nusii::Crud::List
|
5
|
+
extend Nusii::Crud::Create
|
6
|
+
extend Nusii::Crud::Destroy
|
7
|
+
include Nusii::Crud::DestroySelf
|
8
|
+
|
9
|
+
attr_accessor :id, :target_url, :events
|
10
|
+
|
11
|
+
def save
|
12
|
+
requester = Nusii::Request.new
|
13
|
+
requester.create_call self.class, self
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def editable_attributes
|
19
|
+
[ :target_url, :events ]
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
data/nusii.gemspec
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'nusii/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "nusii"
|
8
|
+
spec.version = Nusii::VERSION
|
9
|
+
spec.authors = ["Víctor Martín"]
|
10
|
+
spec.email = ["support@nusii.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Nusii API wrapper.}
|
13
|
+
spec.description = %q{Ruby library for the Nusii API.}
|
14
|
+
spec.homepage = "https://github.com/Nusii/nusii-ruby"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
|
+
f.match(%r{^(test|spec|features)/})
|
19
|
+
end
|
20
|
+
spec.bindir = "exe"
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_runtime_dependency "bundler", "~> 1.14"
|
25
|
+
spec.add_runtime_dependency "faraday", '~> 0.9'
|
26
|
+
spec.add_runtime_dependency "json", '~> 2.3'
|
27
|
+
spec.add_runtime_dependency "activesupport", "~> 6.0.3"
|
28
|
+
|
29
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
30
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
31
|
+
spec.add_development_dependency "webmock", "~> 3.1.1"
|
32
|
+
spec.add_development_dependency "sinatra", "~> 2.0.0"
|
33
|
+
end
|
metadata
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nusii
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Víctor Martín
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-02-16 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.14'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.14'
|
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.9'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.9'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: json
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.3'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: activesupport
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 6.0.3
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 6.0.3
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '13.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '13.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: webmock
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 3.1.1
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.1.1
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: sinatra
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 2.0.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 2.0.0
|
125
|
+
description: Ruby library for the Nusii API.
|
126
|
+
email:
|
127
|
+
- support@nusii.com
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- ".gitignore"
|
133
|
+
- ".rspec"
|
134
|
+
- ".travis.yml"
|
135
|
+
- Gemfile
|
136
|
+
- LICENSE
|
137
|
+
- README.md
|
138
|
+
- Rakefile
|
139
|
+
- bin/console
|
140
|
+
- lib/nusii.rb
|
141
|
+
- lib/nusii/account.rb
|
142
|
+
- lib/nusii/api_operations/base.rb
|
143
|
+
- lib/nusii/api_operations/connection.rb
|
144
|
+
- lib/nusii/api_operations/create.rb
|
145
|
+
- lib/nusii/api_operations/delete.rb
|
146
|
+
- lib/nusii/api_operations/index.rb
|
147
|
+
- lib/nusii/api_operations/nested_create.rb
|
148
|
+
- lib/nusii/api_operations/nested_index.rb
|
149
|
+
- lib/nusii/api_operations/send.rb
|
150
|
+
- lib/nusii/api_operations/show.rb
|
151
|
+
- lib/nusii/api_operations/update.rb
|
152
|
+
- lib/nusii/client.rb
|
153
|
+
- lib/nusii/crud/create.rb
|
154
|
+
- lib/nusii/crud/destroy.rb
|
155
|
+
- lib/nusii/crud/destroy_self.rb
|
156
|
+
- lib/nusii/crud/get.rb
|
157
|
+
- lib/nusii/crud/list.rb
|
158
|
+
- lib/nusii/crud/save.rb
|
159
|
+
- lib/nusii/line_item.rb
|
160
|
+
- lib/nusii/nusii_error.rb
|
161
|
+
- lib/nusii/proposal.rb
|
162
|
+
- lib/nusii/proposal_activity.rb
|
163
|
+
- lib/nusii/request.rb
|
164
|
+
- lib/nusii/resource.rb
|
165
|
+
- lib/nusii/response_object.rb
|
166
|
+
- lib/nusii/section.rb
|
167
|
+
- lib/nusii/utils/json_api_builder.rb
|
168
|
+
- lib/nusii/version.rb
|
169
|
+
- lib/nusii/webhook_endpoint.rb
|
170
|
+
- nusii.gemspec
|
171
|
+
homepage: https://github.com/Nusii/nusii-ruby
|
172
|
+
licenses:
|
173
|
+
- MIT
|
174
|
+
metadata: {}
|
175
|
+
post_install_message:
|
176
|
+
rdoc_options: []
|
177
|
+
require_paths:
|
178
|
+
- lib
|
179
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '0'
|
184
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
189
|
+
requirements: []
|
190
|
+
rubygems_version: 3.0.9
|
191
|
+
signing_key:
|
192
|
+
specification_version: 4
|
193
|
+
summary: Nusii API wrapper.
|
194
|
+
test_files: []
|