jamef-api 0.5.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 +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.travis.yml +5 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +132 -0
- data/Guardfile +70 -0
- data/LICENSE.txt +21 -0
- data/README.md +251 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/jamef.gemspec +43 -0
- data/lib/jamef/branch.rb +83 -0
- data/lib/jamef/helper.rb +82 -0
- data/lib/jamef/package.rb +63 -0
- data/lib/jamef/params.rb +162 -0
- data/lib/jamef/rating/params.rb +11 -0
- data/lib/jamef/rating.rb +82 -0
- data/lib/jamef/receiver.rb +24 -0
- data/lib/jamef/sender.rb +27 -0
- data/lib/jamef/tracking.rb +4 -0
- data/lib/jamef/version.rb +3 -0
- data/lib/jamef.rb +26 -0
- data/lib/jamef_api.rb +4 -0
- metadata +194 -0
data/lib/jamef/helper.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
module Jamef
|
2
|
+
module Helper
|
3
|
+
|
4
|
+
ACCENTS_MAPPING = {
|
5
|
+
'E' => [200,201,202,203],
|
6
|
+
'e' => [232,233,234,235],
|
7
|
+
'A' => [192,193,194,195,196,197],
|
8
|
+
'a' => [224,225,226,227,228,229,230],
|
9
|
+
'C' => [199],
|
10
|
+
'c' => [231],
|
11
|
+
'O' => [210,211,212,213,214,216],
|
12
|
+
'o' => [242,243,244,245,246,248],
|
13
|
+
'I' => [204,205,206,207],
|
14
|
+
'i' => [236,237,238,239],
|
15
|
+
'U' => [217,218,219,220],
|
16
|
+
'u' => [249,250,251,252],
|
17
|
+
'N' => [209],
|
18
|
+
'n' => [241],
|
19
|
+
'Y' => [221],
|
20
|
+
'y' => [253,255],
|
21
|
+
'AE' => [306],
|
22
|
+
'ae' => [346],
|
23
|
+
'OE' => [188],
|
24
|
+
'oe' => [189]
|
25
|
+
}
|
26
|
+
|
27
|
+
|
28
|
+
# Remove the accents from the string. Uses String::ACCENTS_MAPPING as the source map.
|
29
|
+
def self.unaccent string
|
30
|
+
str = string.dup
|
31
|
+
ACCENTS_MAPPING.each {|letter,accents|
|
32
|
+
packed = accents.pack('U*')
|
33
|
+
rxp = Regexp.new("[#{packed}]", nil)
|
34
|
+
str.gsub!(rxp, letter)
|
35
|
+
}
|
36
|
+
str
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.only_numbers string
|
40
|
+
string.gsub(/\D*/,'')
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.format_decimal value
|
44
|
+
sprintf('%.2f', Float(value))
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.format_zip value
|
48
|
+
only_numbers(value)
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.format_city value
|
52
|
+
unaccent(value).upcase
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.format_state value
|
56
|
+
value.upcase
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.format_document value
|
60
|
+
only_numbers(value)
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
def self.format_date value
|
65
|
+
value.strftime("%d/%m/%Y")
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.format_time value
|
69
|
+
value.strftime("%H:%M")
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.parse_date value
|
73
|
+
Date.strptime(value, '%d/%m/%y')
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.parse_decimal value
|
77
|
+
Float(value)
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
require 'active_model'
|
3
|
+
|
4
|
+
module Jamef
|
5
|
+
class Package < OpenStruct
|
6
|
+
|
7
|
+
include ActiveModel::Validations
|
8
|
+
|
9
|
+
PRODUCTS_TYPES = [:nf, :livros, :alimentos, :confeccoes, :comesticos, :cirugicos, :jornais, :material_escolar]
|
10
|
+
|
11
|
+
validates :weight, :package_price, :volume, :type, presence: true
|
12
|
+
validates :weight, :package_price, :volume, numericality: true
|
13
|
+
|
14
|
+
validates :type, inclusion: PRODUCTS_TYPES
|
15
|
+
|
16
|
+
def initialize *args
|
17
|
+
super
|
18
|
+
self.type ||= :nf
|
19
|
+
raise ArgumentError, errors.first unless self.valid?
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.type_map package_type
|
24
|
+
value = {
|
25
|
+
|
26
|
+
# CONFORME NOTA FISCAL
|
27
|
+
nf: '000004',
|
28
|
+
|
29
|
+
# LIVROS
|
30
|
+
livros: '000005',
|
31
|
+
|
32
|
+
# ALIMENTOS INDUSTRIALIZADOS
|
33
|
+
alimentos: '000010',
|
34
|
+
|
35
|
+
# CONFECCOES
|
36
|
+
confeccoes: '000008',
|
37
|
+
|
38
|
+
# COSMETICOS
|
39
|
+
comesticos: '000011',
|
40
|
+
|
41
|
+
# MATERIAL CIRURGICO
|
42
|
+
cirugicos: '000011',
|
43
|
+
|
44
|
+
# JORNAIS / REVISTAS
|
45
|
+
jornais: '000006',
|
46
|
+
|
47
|
+
# MATERIAL ESCOLAR
|
48
|
+
material_escolar: '000013'
|
49
|
+
|
50
|
+
}[package_type]
|
51
|
+
value ? value : raise(ArgumentError,"Unknown Jamef Package Type: #{package_type}")
|
52
|
+
end
|
53
|
+
|
54
|
+
def price
|
55
|
+
package_price
|
56
|
+
end
|
57
|
+
|
58
|
+
def price= value
|
59
|
+
self.package_price = value
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
data/lib/jamef/params.rb
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
require 'active_model'
|
3
|
+
|
4
|
+
module Jamef
|
5
|
+
class Params < OpenStruct
|
6
|
+
|
7
|
+
include ActiveModel::Validations
|
8
|
+
|
9
|
+
validates :sender, :package, :receiver, :shipping_in, :service_type, presence: true
|
10
|
+
|
11
|
+
validates :service_type, inclusion: [:road,:air]
|
12
|
+
|
13
|
+
validate :validate_sender
|
14
|
+
validate :validate_receiver
|
15
|
+
validate :validate_package
|
16
|
+
|
17
|
+
# validates :tiptra, :cnpjcpf, :munori, :estori, :segprod, :qtdvol, :peso, :valmer, :metro3, :cepdes, :filcot, presence: true
|
18
|
+
|
19
|
+
def initialize *args
|
20
|
+
super
|
21
|
+
|
22
|
+
raise ArgumentError, errors.full_messages.join("\n") unless self.valid?
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def freight_hash
|
27
|
+
hash = {}
|
28
|
+
hash.store(:tiptra, tiptra)
|
29
|
+
hash.store(:cnpjcpf, cnpjcpf)
|
30
|
+
hash.store(:munori, munori)
|
31
|
+
hash.store(:estori, estori)
|
32
|
+
hash.store(:segprod, segprod)
|
33
|
+
hash.store(:qtdvol, qtdvol)
|
34
|
+
hash.store(:peso, peso)
|
35
|
+
hash.store(:valmer, valmer)
|
36
|
+
hash.store(:metro3, metro3)
|
37
|
+
hash.store(:cnpjdes, cnpjdes)
|
38
|
+
hash.store(:filcot, filcot)
|
39
|
+
hash.store(:cepdes, cepdes)
|
40
|
+
hash.store(:contrib, contrib) if contrib?
|
41
|
+
hash
|
42
|
+
end
|
43
|
+
|
44
|
+
def delivery_hash
|
45
|
+
hash = {}
|
46
|
+
hash.store(:tiptra, tiptra)
|
47
|
+
hash.store(:munori, munori)
|
48
|
+
hash.store(:estori, estori)
|
49
|
+
hash.store(:cnpjcpf, cnpjcpf)
|
50
|
+
hash.store(:segprod, segprod)
|
51
|
+
hash.store(:cdatini, cdatini)
|
52
|
+
hash.store(:chorini, chorini)
|
53
|
+
hash.store(:cnpjdes, cnpjdes)
|
54
|
+
hash.store(:cepdes, cepdes)
|
55
|
+
hash
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
# service type
|
61
|
+
def tiptra
|
62
|
+
service_code
|
63
|
+
end
|
64
|
+
|
65
|
+
# document
|
66
|
+
def cnpjcpf
|
67
|
+
Jamef::Helper.format_document(sender.document)
|
68
|
+
end
|
69
|
+
|
70
|
+
# origin city
|
71
|
+
def munori
|
72
|
+
Jamef::Helper.format_city(sender.city)
|
73
|
+
end
|
74
|
+
|
75
|
+
# origin state
|
76
|
+
def estori
|
77
|
+
Jamef::Helper.format_state(sender.state)
|
78
|
+
end
|
79
|
+
|
80
|
+
# products type
|
81
|
+
def segprod
|
82
|
+
Jamef::Package.type_map(package.type)
|
83
|
+
end
|
84
|
+
|
85
|
+
# volumes quantity
|
86
|
+
def qtdvol
|
87
|
+
package.quantity || 1
|
88
|
+
end
|
89
|
+
|
90
|
+
# package weight
|
91
|
+
def peso
|
92
|
+
Jamef::Helper.format_decimal(package.weight)
|
93
|
+
end
|
94
|
+
|
95
|
+
# package price
|
96
|
+
def valmer
|
97
|
+
Jamef::Helper.format_decimal(package.price)
|
98
|
+
end
|
99
|
+
|
100
|
+
# package volume
|
101
|
+
def metro3
|
102
|
+
Jamef::Helper.format_decimal(package.volume)
|
103
|
+
end
|
104
|
+
|
105
|
+
# destination zip
|
106
|
+
def cepdes
|
107
|
+
Jamef::Helper.format_zip(receiver.zip)
|
108
|
+
end
|
109
|
+
|
110
|
+
# jamef branch
|
111
|
+
def filcot
|
112
|
+
Jamef::Branch.find((branch || jamef_branch) || sender.jamef_branch).code
|
113
|
+
end
|
114
|
+
|
115
|
+
# contrib! pays icms? tem inscrição estadual?
|
116
|
+
def contrib
|
117
|
+
Jamef::Helper.format_boolean(receiver.contrib)
|
118
|
+
end
|
119
|
+
|
120
|
+
def contrib?
|
121
|
+
receiver.contrib.present? and receiver.contrib
|
122
|
+
end
|
123
|
+
|
124
|
+
# receiver document
|
125
|
+
def cnpjdes
|
126
|
+
receiver.document.present? ? Jamef::Helper.format_document(receiver.document) : ''
|
127
|
+
end
|
128
|
+
|
129
|
+
# shipping date
|
130
|
+
def cdatini
|
131
|
+
Jamef::Helper.format_date(shipping_in)
|
132
|
+
end
|
133
|
+
|
134
|
+
# shipping time
|
135
|
+
def chorini
|
136
|
+
Jamef::Helper.format_time(shipping_in)
|
137
|
+
end
|
138
|
+
|
139
|
+
# service type map
|
140
|
+
def service_code
|
141
|
+
value = {
|
142
|
+
road: 1,
|
143
|
+
air: 2
|
144
|
+
}[service_type]
|
145
|
+
value ? value : raise(ArgumentError, "Jamef #{service} service not found")
|
146
|
+
end
|
147
|
+
|
148
|
+
def validate_sender
|
149
|
+
errors.add(:sender,'is not a valid Jamef::Sender') unless (sender.present? and sender.valid?)
|
150
|
+
end
|
151
|
+
|
152
|
+
def validate_receiver
|
153
|
+
errors.add(:receiver,'is not a valid Jamef::Receiver') unless (receiver.present? and receiver.valid?)
|
154
|
+
end
|
155
|
+
|
156
|
+
def validate_package
|
157
|
+
errors.add(:package,'is not a valid Jamef::Package') unless (package.present? and package.valid?)
|
158
|
+
end
|
159
|
+
|
160
|
+
|
161
|
+
end
|
162
|
+
end
|
data/lib/jamef/rating.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'savon'
|
2
|
+
require 'date'
|
3
|
+
require_relative './rating/params'
|
4
|
+
Bundler.require(:pry,:development)
|
5
|
+
|
6
|
+
module Jamef
|
7
|
+
module Rating
|
8
|
+
|
9
|
+
WSDL = 'http://www.jamef.com.br/webservice/JAMW0520.apw?WSDL'
|
10
|
+
|
11
|
+
def self.complete_rate params
|
12
|
+
params = Jamef::Params.new(params)
|
13
|
+
response = send_message(params)
|
14
|
+
parse_response(response)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.rate params
|
18
|
+
simplify_parsed_response(complete_rate(params))
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.savon_client
|
22
|
+
@savon_client ||= ::Savon.client do |globals|
|
23
|
+
globals.convert_request_keys_to :upcase
|
24
|
+
globals.wsdl wsdl
|
25
|
+
end
|
26
|
+
@savon_client
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
|
32
|
+
def self.wsdl
|
33
|
+
WSDL
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.send_message params
|
37
|
+
freight_response = savon_client.call(:jamw0520_05, message: params.freight_hash)
|
38
|
+
delivery_response = savon_client.call(:jamw0520_04, message: params.delivery_hash)
|
39
|
+
{freight: freight_response, delivery: delivery_response}
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.parse_response response
|
43
|
+
{freight: parse_freight_response(response), delivery: parse_delivery_response(response)}
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.parse_freight_response response
|
47
|
+
response[:freight].body.to_h[:jamw0520_05_response][:jamw0520_05_result]
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.parse_delivery_response response
|
51
|
+
response[:delivery].body.to_h[:jamw0520_04_response][:jamw0520_04_result]
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
def self.simplify_parsed_response parsed_response
|
56
|
+
if successful_response?(parsed_response)
|
57
|
+
freight = Jamef::Helper.parse_decimal(parsed_response[:freight][:valfre][:avalfre].last[:total])
|
58
|
+
min_date = Jamef::Helper.parse_date(parsed_response[:delivery][:cdtmin])
|
59
|
+
max_date = Jamef::Helper.parse_date(parsed_response[:delivery][:cdtmax])
|
60
|
+
{
|
61
|
+
success: true,
|
62
|
+
error: false,
|
63
|
+
freight: freight,
|
64
|
+
min_delivery_date: min_date,
|
65
|
+
max_delivery_date: max_date
|
66
|
+
}
|
67
|
+
else
|
68
|
+
{ error: get_error(parsed_response), success: false }
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.successful_response? parsed_response
|
73
|
+
parsed_response[:freight][:msgerro].match?(/^ok/i) and parsed_response[:delivery][:msgerro].match?(/^ok/i)
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.get_error parsed_response
|
77
|
+
parsed_response[:freight][:msgerro].match?(/^ok/i) ? parsed_response[:delivery][:msgerro] : parsed_response[:freight][:msgerro]
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
require 'active_model'
|
3
|
+
|
4
|
+
module Jamef
|
5
|
+
|
6
|
+
class Receiver < OpenStruct
|
7
|
+
|
8
|
+
include ActiveModel::Validations
|
9
|
+
|
10
|
+
validates :zip, presence: true
|
11
|
+
|
12
|
+
def initialize *args
|
13
|
+
super
|
14
|
+
raise ArgumentError, errors.first unless self.valid?
|
15
|
+
self
|
16
|
+
end
|
17
|
+
|
18
|
+
def contrib?
|
19
|
+
contrib.present?
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
data/lib/jamef/sender.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
require 'active_model'
|
3
|
+
|
4
|
+
module Jamef
|
5
|
+
|
6
|
+
class Sender < OpenStruct
|
7
|
+
|
8
|
+
include ActiveModel::Validations
|
9
|
+
|
10
|
+
validates :document, :city, :state, :jamef_branch, presence: true
|
11
|
+
|
12
|
+
validates :state, length: {is: 2}
|
13
|
+
|
14
|
+
validate :validate_branch
|
15
|
+
|
16
|
+
def initialize *args
|
17
|
+
super
|
18
|
+
raise ArgumentError, errors.first unless self.valid?
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def validate_branch
|
23
|
+
errors.add(:jamef_branch,'Unknown branch') if jamef_branch.present? and Jamef::Branch.find(jamef_branch).blank?
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
data/lib/jamef.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'active_support/all'
|
2
|
+
require "jamef/version"
|
3
|
+
require "jamef/branch"
|
4
|
+
require "jamef/package"
|
5
|
+
require "jamef/sender"
|
6
|
+
require "jamef/receiver"
|
7
|
+
require "jamef/params"
|
8
|
+
require 'jamef/rating'
|
9
|
+
require 'jamef/tracking'
|
10
|
+
require 'jamef/helper'
|
11
|
+
|
12
|
+
module Jamef
|
13
|
+
|
14
|
+
def self.rate params
|
15
|
+
Jamef::Rating.rate(params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.complete_rate params
|
19
|
+
Jamef::Rating.complete_rate(params)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.track params
|
23
|
+
Jamef::Tracking.track(params)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
data/lib/jamef_api.rb
ADDED
metadata
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jamef-api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Agilso
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-04-25 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.16'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.16'
|
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.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard-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: activesupport
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
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: activemodel
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rest-client
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: savon
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2.0'
|
139
|
+
description: Ruby wrapper for the Jamef.com.br SOAP API.
|
140
|
+
email:
|
141
|
+
- agilso.b@gmail.com
|
142
|
+
executables: []
|
143
|
+
extensions: []
|
144
|
+
extra_rdoc_files: []
|
145
|
+
files:
|
146
|
+
- ".gitignore"
|
147
|
+
- ".rspec"
|
148
|
+
- ".travis.yml"
|
149
|
+
- Gemfile
|
150
|
+
- Gemfile.lock
|
151
|
+
- Guardfile
|
152
|
+
- LICENSE.txt
|
153
|
+
- README.md
|
154
|
+
- Rakefile
|
155
|
+
- bin/console
|
156
|
+
- bin/setup
|
157
|
+
- jamef.gemspec
|
158
|
+
- lib/jamef.rb
|
159
|
+
- lib/jamef/branch.rb
|
160
|
+
- lib/jamef/helper.rb
|
161
|
+
- lib/jamef/package.rb
|
162
|
+
- lib/jamef/params.rb
|
163
|
+
- lib/jamef/rating.rb
|
164
|
+
- lib/jamef/rating/params.rb
|
165
|
+
- lib/jamef/receiver.rb
|
166
|
+
- lib/jamef/sender.rb
|
167
|
+
- lib/jamef/tracking.rb
|
168
|
+
- lib/jamef/version.rb
|
169
|
+
- lib/jamef_api.rb
|
170
|
+
homepage: https://github.com/agilso/jamef-api
|
171
|
+
licenses:
|
172
|
+
- MIT
|
173
|
+
metadata: {}
|
174
|
+
post_install_message:
|
175
|
+
rdoc_options: []
|
176
|
+
require_paths:
|
177
|
+
- lib
|
178
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
requirements: []
|
189
|
+
rubyforge_project:
|
190
|
+
rubygems_version: 2.7.3
|
191
|
+
signing_key:
|
192
|
+
specification_version: 4
|
193
|
+
summary: Ruby wrapper for the Jamef API
|
194
|
+
test_files: []
|