akatus-rb 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NWUxODQwMTBjNTg4ZTJiNTU3ZjI5MTQzODBjNTdjMzk5ZTc2YzdkZA==
5
+ data.tar.gz: !binary |-
6
+ MWU4ZmMwMGVkNjQ3YzMwZWQyZmZiMDk0MTE3Nzc4MDUwODc0ZTI5Mg==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZTM4NTlmZWE1YzIzMjRlMjE0NzU2YzI1ODMxYjgxNDIzYTQ0ZDY3MTY0NGM4
10
+ NTUzMjFmNTBlZmNkZTRkZWZjNzQzMjVhNmU4MmMyM2ZhM2U3ZjFkYzYyODNh
11
+ OWM3OTRiNzFjNmVmOTAzYWEyZGU3ZTU4MTRiZjFkOTU3NDFiYmE=
12
+ data.tar.gz: !binary |-
13
+ ZDk1MTczZTM4N2I4ZDljZWU0ZmY1YmMzZTczNWUxYmE0NjgzOTU0MmQ2MTNh
14
+ YTZlZTcwYmZlNjlhOTY1ZGJhN2Y5MmE1YmJkNWFiYzg1YzE3YTcxOTkxZDIy
15
+ MjIxNGM3ZWU4YTFjMTFjODE4ZDJiNTkxODBmMmRmZDI3ZGQ0ZDk=
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+ bin
15
+
16
+ # YARD artifacts
17
+ .yardoc
18
+ _yardoc
19
+ doc/
20
+ dump.rdb
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,45 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ akatus-rb (0.0.1)
5
+ httpi
6
+ nokogiri
7
+ rack
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activesupport (3.2.11)
13
+ i18n (~> 0.6)
14
+ multi_json (~> 1.0)
15
+ diff-lcs (1.1.3)
16
+ factory_girl (2.5.2)
17
+ activesupport (>= 2.3.9)
18
+ httpi (2.1.0)
19
+ rack
20
+ rubyntlm (~> 0.3.2)
21
+ i18n (0.6.1)
22
+ mini_portile (0.5.2)
23
+ multi_json (1.5.0)
24
+ nokogiri (1.6.0)
25
+ mini_portile (~> 0.5.0)
26
+ rack (1.5.2)
27
+ rake (10.0.3)
28
+ rspec (2.12.0)
29
+ rspec-core (~> 2.12.0)
30
+ rspec-expectations (~> 2.12.0)
31
+ rspec-mocks (~> 2.12.0)
32
+ rspec-core (2.12.2)
33
+ rspec-expectations (2.12.1)
34
+ diff-lcs (~> 1.1.3)
35
+ rspec-mocks (2.12.1)
36
+ rubyntlm (0.3.4)
37
+
38
+ PLATFORMS
39
+ ruby
40
+
41
+ DEPENDENCIES
42
+ akatus-rb!
43
+ factory_girl
44
+ rake
45
+ rspec
data/README.md ADDED
@@ -0,0 +1,42 @@
1
+ # akatus-rb
2
+
3
+ Client oficial de integração com Akatus em Ruby
4
+
5
+ [Documentação](https://connect.akatus.com) | [Sandbox](https://sandbox.akatus.com)
6
+
7
+
8
+ ## Installation
9
+
10
+ akatus gem is available through [Rubygems](http://rubygems.org/gems/akatus-rb) and can be installed via:
11
+
12
+ ```
13
+ $ gem install akatus-rb
14
+ ```
15
+
16
+ or add it to your Gemfile like this:
17
+
18
+ ```
19
+ gem 'akatus-rb', '~> 0.0.1'
20
+ ```
21
+
22
+ and generate the config:
23
+
24
+ ```
25
+ $ rails generate akatus:config
26
+ ```
27
+
28
+ ## Usage example
29
+
30
+
31
+ ``` ruby
32
+ require "akatus-rb"
33
+
34
+ order = Akatus::Order.new(
35
+ ...
36
+ )
37
+ transaction = Akatus::Transaction.process(order)
38
+
39
+ puts transaction.uuid
40
+ # => 1234-abcd-9876abc
41
+
42
+ ```
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require "bundler"
2
+ require "rspec/core/rake_task"
3
+
4
+ Bundler::GemHelper.install_tasks
5
+ RSpec::Core::RakeTask.new
6
+
7
+ task :default => :spec
data/akatus-rb.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ #encoding: UTF-8
2
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
3
+
4
+ require "akatus/version"
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = 'akatus-rb'
8
+ gem.version = Akatus::VERSION
9
+ gem.date = '2012-01-14'
10
+ gem.summary = "Akatus Meios de Pagamento"
11
+ gem.description = "Client de integração para Akatus Meios de Pagamento"
12
+ gem.authors = ["Rodrigo Panachi", "Diego Charles"]
13
+ gem.email = 'desenvolvimento@akatus.com'
14
+ gem.files = ["lib/akatus.rb"]
15
+ gem.homepage = 'https://github.com/Akatus/akatus-rb'
16
+
17
+ gem.files = `git ls-files`.split("\n")
18
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
20
+ gem.require_paths = ["lib"]
21
+
22
+ gem.add_runtime_dependency "rack"
23
+ gem.add_runtime_dependency "httpi"
24
+ gem.add_runtime_dependency "nokogiri"
25
+
26
+ gem.add_development_dependency "rake"
27
+ gem.add_development_dependency "rspec"
28
+ gem.add_development_dependency "factory_girl"
29
+ end
data/lib/akatus.rb ADDED
@@ -0,0 +1,27 @@
1
+ require 'yaml'
2
+
3
+ require 'akatus/base'
4
+ require 'akatus/installments'
5
+ require 'akatus/payment_methods'
6
+ require 'akatus/transactions'
7
+ require 'akatus/product'
8
+ require 'akatus/order'
9
+ require 'akatus/credit_card'
10
+ require 'akatus/address'
11
+ require 'akatus/phone'
12
+
13
+ module Akatus
14
+ autoload :Installments, 'akatus/installments'
15
+ autoload :PaymentMethods, 'akatus/payment_methods'
16
+ autoload :Transactions, 'akatus/transactions'
17
+ autoload :Product, 'akatus/product'
18
+ autoload :Order, 'akatus/order'
19
+ autoload :CreditCard, 'akatus/credit_card'
20
+ autoload :Address, 'akatus/address'
21
+ autoload :Phone, 'akatus/phone'
22
+ end
23
+
24
+ if defined?(Rails)
25
+ Akatus.env = Rails.env
26
+ Akatus.config_file = Rails.root || Pathname.new('').join("config/akatus.yml")
27
+ end
@@ -0,0 +1,13 @@
1
+ module Akatus
2
+ class Address
3
+
4
+ attr_accessor :postal_code, :neighborhood, :complement, :number, :street, :city,
5
+ :state, :country, :kind
6
+
7
+ def initialize(attributes = {})
8
+ attributes.each do |name, value|
9
+ send("#{name}=", value)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,38 @@
1
+ module Akatus
2
+
3
+ class InvalidEnvironment < Exception; end
4
+ class MissingConfiguration < Exception; end
5
+
6
+ extend self
7
+
8
+ attr_accessor :env, :config_file
9
+
10
+ def config
11
+ validate!
12
+ @config ||= YAML.load_file(config_file)[env]
13
+ end
14
+
15
+ def config!
16
+ @config = nil
17
+ config
18
+ end
19
+
20
+ def seller_email
21
+ config["email"]
22
+ end
23
+ def seller_api_key
24
+ config["api_key"]
25
+ end
26
+ def akatus_uri
27
+ config["uri"]
28
+ end
29
+ def akatus_api_uri
30
+ akatus_uri + "/api/v1"
31
+ end
32
+
33
+ private
34
+ def validate!
35
+ raise InvalidEnvironment unless %(production development test).include?(env)
36
+ raise MissingConfiguration unless File.exist?(config_file)
37
+ end
38
+ end
@@ -0,0 +1,12 @@
1
+ module Akatus
2
+ class CreditCard
3
+
4
+ attr_accessor :number, :flag, :cvv, :expires_at, :holder_name, :holder_cpf, :holder_phone
5
+
6
+ def initialize(attributes = {})
7
+ attributes.each do |name, value|
8
+ send("#{name}=", value)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,34 @@
1
+ module Akatus
2
+ class Installments
3
+
4
+ SIMULATION_URI =
5
+
6
+ def self.simulate(payment_method_code, amount)
7
+ url = "#{Akatus.akatus_api_uri}/parcelamento/simulacao.json?email=#{Akatus.seller_email}&api_key=#{Akatus.seller_api_key}&payment_method=#{payment_method_code}&amount=#{amount}"
8
+ request = HTTPI::Request.new
9
+ request.url = url
10
+ request.open_timeout = 10 # sec
11
+ request.read_timeout = 30 # sec
12
+ response = HTTPI.get request
13
+ translate_installments_keys_to_english(response)
14
+ end
15
+
16
+ private
17
+
18
+ def self.translate_installments_keys_to_english(response)
19
+ parsed_response = JSON.parse(response.raw_body)['resposta']
20
+ translated = {}
21
+ translated[:description] = parsed_response['descricao']
22
+ translated[:assumed_installments] = parsed_response['parcelas_assumidas']
23
+ translated[:installments] = []
24
+ parsed_response['parcelas'].each do |p|
25
+ installment = {}
26
+ installment[:installments_number] = p['quantidade'].to_i
27
+ installment[:installments_amount] = p['valor'].to_f
28
+ installment[:total_amount] = p['total'].to_f
29
+ translated[:installments] << installment
30
+ end
31
+ translated
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,63 @@
1
+ module Akatus
2
+ class Order
3
+ attr_accessor :buyer_name, :buyer_email, :discount_amount, :freight_amount, :weight,
4
+ :payment_method, :installments, :products, :reference, :credit_card, :address,
5
+ :phone
6
+
7
+ def initialize(attributes = {})
8
+ attributes.each do |name, value|
9
+ send("#{name}=", value)
10
+ end
11
+ self.products = []
12
+ end
13
+
14
+ def add_product(attributes = {})
15
+ self.products << Product.new({
16
+ :code => attributes[:code],
17
+ :name => attributes[:name],
18
+ :weight => attributes[:weight],
19
+ :quantity => attributes[:quantity],
20
+ :freight_amount => attributes[:freight_amount],
21
+ :discount_amount => attributes[:discount_amount],
22
+ :price => attributes[:price]
23
+ })
24
+ end
25
+
26
+ def credit_card(attributes = {})
27
+ @credit_card ||= CreditCard.new({
28
+ :number => attributes[:number],
29
+ :cvv => attributes[:cvv],
30
+ :expires_at => attributes[:expires_at],
31
+ :flag => attributes[:flag],
32
+ :holder_name => attributes[:holder_name],
33
+ :holder_cpf => attributes[:holder_cpf],
34
+ :holder_phone => attributes[:holder_phone]
35
+ })
36
+ end
37
+
38
+ def address(attributes = {})
39
+ @address ||= Address.new({
40
+ :postal_code => attributes[:postal_code],
41
+ :neighborhood => attributes[:neighborhood],
42
+ :street => attributes[:street],
43
+ :number => attributes[:number],
44
+ :complement => attributes[:complement],
45
+ :kind => attributes[:kind],
46
+ :city => attributes[:city],
47
+ :state => attributes[:state],
48
+ :country => attributes[:country]
49
+ })
50
+ end
51
+
52
+ def phone(attributes = {})
53
+ @phone ||= Phone.new({
54
+ :kind => attributes[:kind],
55
+ :number => attributes[:number]
56
+ })
57
+ end
58
+
59
+ def credit_card?
60
+ %w{cartao_visa cartao_master cartao_amex cartao_diners cartao_elo cartao_hipercard}.include? payment_method
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,74 @@
1
+ #encoding: UTF-8
2
+
3
+ module Akatus
4
+ class PaymentMethods
5
+
6
+ ALL = [
7
+ MASTER = :master,
8
+ VISA = :visa,
9
+ AMEX = :amex,
10
+ ELO = :elo,
11
+ DINERS = :diners,
12
+ BOLETO = :boleto,
13
+ ITAU = :itau,
14
+ BB = :bb,
15
+ BRADESCO = :bradesco
16
+ ].freeze
17
+
18
+ def self.available
19
+ builder = Nokogiri::XML::Builder.new do |xml|
20
+ xml.meios_de_pagamento {
21
+ xml.correntista {
22
+ xml.api_key Akatus.seller_api_key
23
+ xml.email Akatus.seller_email
24
+ }
25
+ }
26
+ end
27
+ request = HTTPI::Request.new(Akatus.akatus_api_uri + '/meios-de-pagamento.xml')
28
+ request.body = builder.to_xml
29
+ request.open_timeout = 10 # sec
30
+ request.read_timeout = 30 # sec
31
+
32
+ parsed_response = parse_response(HTTPI.post request)
33
+ splited_payment_methods = split_by_kind(parsed_response)
34
+ end
35
+
36
+ private
37
+
38
+ def self.split_by_kind(parsed_response)
39
+ splited_payment_methods = {}
40
+ parsed_response.each do |pr|
41
+ if pr['descricao'] == 'Cartão de Crédito' || pr['descricao'] == 'TEF'
42
+ payment_methods = []
43
+ pr['bandeiras']['bandeira'].each do |pm|
44
+ payment_method = {}
45
+ payment_method[:code] = pm['codigo']
46
+ payment_method[:description] = pm['descricao']
47
+ payment_method[:installments] = pm['parcelas'].to_i
48
+ payment_methods << payment_method
49
+ end
50
+ if pr['descricao'] == 'Cartão de Crédito'
51
+ splited_payment_methods[:credit_card] = payment_methods
52
+ else
53
+ splited_payment_methods[:eft] = payment_methods
54
+ end
55
+ else
56
+ bills = []
57
+ bill = {}
58
+ bill[:code] = pr['codigo']
59
+ bill[:description] = pr['descricao']
60
+ bill[:installments] = pr['parcelas'].to_i
61
+ bills << bill
62
+ splited_payment_methods[:bill] = bills
63
+ end
64
+ end
65
+ splited_payment_methods
66
+ end
67
+
68
+ def self.parse_response(response)
69
+ parsed_response = Hash.from_xml(Nokogiri.XML(response.raw_body).to_s)
70
+ raise StandardError, 'Akatus account not found' if parsed_response['resposta']['status'] == 'erro'
71
+ parsed_response['resposta']['meios_de_pagamento']['meio_de_pagamento']
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,12 @@
1
+ module Akatus
2
+ class Phone
3
+
4
+ attr_accessor :kind, :number
5
+
6
+ def initialize(attributes = {})
7
+ attributes.each do |name, value|
8
+ send("#{name}=", value)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ module Akatus
2
+ class Product
3
+ attr_accessor :code, :name, :quantity, :weight, :freight_amount, :discount_amount, :price
4
+
5
+ def initialize(attributes = {})
6
+ attributes.each do |name, value|
7
+ send("#{name}=", value)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,118 @@
1
+ module Akatus
2
+ class Transactions
3
+ def self.process(order)
4
+ xml = prepare_xml_to_send order
5
+ url = "#{Akatus.akatus_api_uri}/carrinho.xml"
6
+ request = HTTPI::Request.new
7
+ request.body = xml
8
+ request.url = url
9
+ request.open_timeout = 10 # sec
10
+ request.read_timeout = 30 # sec
11
+ response = HTTPI.post request
12
+
13
+ Hash.from_xml(Nokogiri::XML(response.raw_body).to_s)['resposta']
14
+ end
15
+
16
+ def self.status(akatus_uuid)
17
+ url = "#{Akatus.akatus_api_uri}/transacao-simplificada/#{akatus_uuid}.json?email=#{seller_email}&api_key=#{seller_api_key}"
18
+ request = HTTPI::Request.new
19
+ request.url = url
20
+ request.open_timeout = 10 # sec
21
+ request.read_timeout = 30 # sec
22
+ @response ||= HTTPI.get request
23
+ #TODO Finish to implement this
24
+ end
25
+
26
+ # private
27
+
28
+ def self.prepare_xml_to_send(order)
29
+ builder = Nokogiri::XML::Builder.new do |xml|
30
+ xml.carrinho {
31
+ xml.recebedor {
32
+ xml.api_key Akatus.seller_api_key
33
+ xml.email Akatus.seller_email
34
+ }
35
+ xml.pagador {
36
+ xml.nome order.buyer_name
37
+ xml.email order.buyer_email
38
+ xml.enderecos {
39
+ xml.endereco {
40
+ xml.tipo order.address.kind || 'cobranca'
41
+ xml.logradouro order.address.street
42
+ xml.numero order.address.number
43
+ xml.bairro order.address.neighborhood
44
+ xml.cidade order.address.city
45
+ xml.estado order.address.state
46
+ xml.pais order.address.country || 'BRA'
47
+ xml.cep order.address.postal_code
48
+ }
49
+ }
50
+
51
+ xml.telefones {
52
+ xml.telefone {
53
+ xml.tipo order.phone.kind
54
+ xml.numero order.phone.number
55
+ }
56
+ }
57
+ }
58
+ xml.produtos {
59
+ order.products.each do |product|
60
+ xml.produto {
61
+ xml.codigo product.code
62
+ xml.descricao product.name
63
+ xml.quantidade product.quantity || 1
64
+ xml.peso product.weight || 0.0
65
+ xml.frete product.freight_amount || 0.0
66
+ xml.preco '%.2f' % product.price
67
+ }
68
+ end
69
+ }
70
+
71
+ xml.transacao {
72
+ xml.desconto order.discount_amount || 0.0
73
+ xml.peso order.weight || 0.0
74
+ xml.frete order.freight_amount || 0.0
75
+ xml.moeda 'BRL'
76
+ xml.meio_de_pagamento map_payment_method(order.payment_method)
77
+ xml.parcelas order.installments || 1
78
+ xml.referencia order.reference
79
+ if order.credit_card?
80
+ xml.numero order.credit_card.number
81
+ xml.expiracao order.credit_card.expires_at
82
+ xml.codigo_de_seguranca order.credit_card.cvv
83
+ xml.portador {
84
+ xml.nome order.credit_card.holder_name
85
+ xml.cpf order.credit_card.holder_cpf
86
+ xml.telefone order.credit_card.holder_phone
87
+ }
88
+ end
89
+ }
90
+ }
91
+ end
92
+ # Rails.logger.info "---------------GENERATED XML TO SEND FOR AKATUS--------------"
93
+ # Rails.logger.info builder.to_xml
94
+ builder.to_xml
95
+ end
96
+
97
+ def self.map_payment_method(payment_method)
98
+ case payment_method.to_sym
99
+ when :bill
100
+ 'boleto'
101
+ when :eft
102
+ 'tef'
103
+ when :master
104
+ 'cartao_master'
105
+ when :visa
106
+ 'cartao_visa'
107
+ when :amex
108
+ 'cartao_amex'
109
+ when :diners
110
+ 'cartao_diners'
111
+ when :elo
112
+ 'cartao_elo'
113
+ else
114
+ payment_method.to_s
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,3 @@
1
+ module Akatus
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,5 @@
1
+ class AkatusGenerator < Rails::Generators::Base
2
+ def create_yml_file
3
+ copy_file "templates/akatus.yml", "config/akatus.yml"
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ development:
2
+ uri: https://dev.akatus.com
3
+ email: (your akatus sandbox's email here)
4
+ api_key: (your api key here)
5
+
6
+ test:
7
+ uri: https://dev.akatus.com
8
+ email: (your akatus sandbox's email here)
9
+ api_key: (your api key here)
10
+
11
+ production:
12
+ uri: https://www.akatus.com
13
+ email: (your akatus email here)
14
+ api_key: (your api key here)
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe Akatus do
4
+
5
+ context "config" do
6
+
7
+ it "valid configuration" do
8
+ subject.config.should_not be_empty
9
+ end
10
+ it "email" do
11
+ subject.seller_email.should == "seller@store.com"
12
+ end
13
+ it "api_key key" do
14
+ subject.seller_api_key.should == "1234-000000000-987654321"
15
+ end
16
+ it "uri key" do
17
+ subject.akatus_uri.should == "https://test.akatus.com"
18
+ end
19
+ it "akatus api key" do
20
+ subject.akatus_api_uri.should == "https://test.akatus.com/api/v1"
21
+ end
22
+
23
+ it "invalid environment" do
24
+ Akatus.env = "blah"
25
+ expect { Akatus.config }.to raise_error(Akatus::InvalidEnvironment)
26
+ end
27
+ it "invalid configuration" do
28
+ Akatus.config_file = "/tmp/a-file-that-dont-exist"
29
+ expect { Akatus.config }.to raise_error(Akatus::MissingConfiguration)
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,51 @@
1
+ Factory.define :order do |f|
2
+ f.buyer_email 'user@mailer.com'
3
+ f.buyer_name 'Homer Simpson'
4
+ f.discount_amount 1.98
5
+ f.weight 0.99
6
+ f.freight_amount 1.78
7
+ f.payment_method 'cartao_master'
8
+ f.installments 3
9
+ f.reference 'referencia-01'
10
+
11
+ 2.times { f.products << Factory(:product) }
12
+ f.credit_card Factory(:credit_card)
13
+ f.address Factory(:address)
14
+ f.phone Factory(:phone)
15
+ end
16
+
17
+ Factory.define :product do |f|
18
+ f.code '0001'
19
+ f.name 'Produto Tabajara'
20
+ f.quantity 1
21
+ f.weight 2.5
22
+ f.freight_amount 10.0
23
+ f.discount_amount 1.99
24
+ f.price 55.99
25
+ end
26
+
27
+ Factory.define :credit_card do |f|
28
+ f.number '5453010000066167'
29
+ f.flag 'master'
30
+ f.cvv '123'
31
+ f.expires_at '05/2018'
32
+ f.holder_name 'AUTORIZAR'
33
+ f.holder_cpf '13786614431'
34
+ f.holder_phone '1133331111'
35
+ end
36
+
37
+ Factory.define :address do |f|
38
+ f.postal_code '03222000'
39
+ f.street 'Evergreen Al.'
40
+ f.number '30'
41
+ f.complement 'apto 23'
42
+ f.neighborhood 'Centro'
43
+ f.city 'London'
44
+ f.state 'AC'
45
+ f.kind 'residencial'
46
+ end
47
+
48
+ Factory.define :phone do |f|
49
+ f.kind 'residencial'
50
+ f.number '1133331111'
51
+ end
@@ -0,0 +1,5 @@
1
+ require "rspec"
2
+ require "akatus"
3
+
4
+ Akatus.env = "test"
5
+ Akatus.config_file = File.join(File.dirname(__FILE__), "support/config/akatus.yml")
@@ -0,0 +1,4 @@
1
+ test:
2
+ uri: https://test.akatus.com
3
+ email: seller@store.com
4
+ api_key: 1234-000000000-987654321
metadata ADDED
@@ -0,0 +1,155 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: akatus-rb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Rodrigo Panachi
8
+ - Diego Charles
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rack
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ! '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: httpi
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: nokogiri
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: factory_girl
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ description: Client de integração para Akatus Meios de Pagamento
99
+ email: desenvolvimento@akatus.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - .gitignore
105
+ - Gemfile
106
+ - Gemfile.lock
107
+ - README.md
108
+ - Rakefile
109
+ - akatus-rb.gemspec
110
+ - lib/akatus.rb
111
+ - lib/akatus/address.rb
112
+ - lib/akatus/base.rb
113
+ - lib/akatus/credit_card.rb
114
+ - lib/akatus/installments.rb
115
+ - lib/akatus/order.rb
116
+ - lib/akatus/payment_methods.rb
117
+ - lib/akatus/phone.rb
118
+ - lib/akatus/product.rb
119
+ - lib/akatus/transactions.rb
120
+ - lib/akatus/version.rb
121
+ - lib/generators/akatus_generator.rb
122
+ - lib/generators/templates/akatus.yml
123
+ - spec/akatus/base_spec.rb
124
+ - spec/factories/factories.rb
125
+ - spec/spec_helper.rb
126
+ - spec/support/config/akatus.yml
127
+ homepage: https://github.com/Akatus/akatus-rb
128
+ licenses: []
129
+ metadata: {}
130
+ post_install_message:
131
+ rdoc_options: []
132
+ require_paths:
133
+ - lib
134
+ required_ruby_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ! '>='
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ requirements: []
145
+ rubyforge_project:
146
+ rubygems_version: 2.1.5
147
+ signing_key:
148
+ specification_version: 4
149
+ summary: Akatus Meios de Pagamento
150
+ test_files:
151
+ - spec/akatus/base_spec.rb
152
+ - spec/factories/factories.rb
153
+ - spec/spec_helper.rb
154
+ - spec/support/config/akatus.yml
155
+ has_rdoc: