spree_bcash 0.0.2
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 +4 -0
- data/Gemfile +4 -0
- data/Rakefile +1 -0
- data/app/models/spree/bcash_payment.rb +37 -0
- data/app/models/spree/order_decorator.rb +7 -0
- data/app/models/spree/payment_method/bcash_method.rb +43 -0
- data/app/overrides/replace_payment_info.rb +6 -0
- data/app/views/spree/checkout/payment/_bcashmethod.html.erb +1 -0
- data/app/views/spree/checkout/payment/_order_details_bcash.html.erb +5 -0
- data/lib/spree_bcash/engine.rb +26 -0
- data/lib/spree_bcash/version.rb +3 -0
- data/lib/spree_bcash.rb +4 -0
- data/spree_bcash.gemspec +27 -0
- metadata +98 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8bb2a4f0e510bf29d5bc57174afe0d9863843952
|
4
|
+
data.tar.gz: 29641287081589d6539779135c795c8626372a6e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 84b972831a2cc2b3ec4597b45fb0c55bde934a8835288c3d4d13ddbfaa8895f737031e362d24994a3e34ed0afbff4bcf860f7dd4c5369d3cef1b3ce8281ba5c4
|
7
|
+
data.tar.gz: 1e8fb03e459222ad5be84f10d7f1cfec9c67db4cf3e13191fbf7069834d2b9e8ece9e4c9d9b4220609ea8f9d8727c8a97b5c87c1b84c2d129769c758e9f0b63d
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Spree
|
2
|
+
class BcashPayment
|
3
|
+
def process!(payment)
|
4
|
+
order = payment.order
|
5
|
+
|
6
|
+
items = []
|
7
|
+
items = order.line_items.map do |item|
|
8
|
+
bcash_item = ::Bcash::Item.new(
|
9
|
+
{
|
10
|
+
id: item.id,
|
11
|
+
description: item.product.name,
|
12
|
+
amount: item.quantity,
|
13
|
+
price: format("%.2f", item.price.round(2))
|
14
|
+
}
|
15
|
+
)
|
16
|
+
|
17
|
+
bcash_item
|
18
|
+
end
|
19
|
+
|
20
|
+
::Bcash::Package.create(items, tax(order))
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def tax(order)
|
26
|
+
taxes = 0
|
27
|
+
|
28
|
+
order.adjustments.eligible.each do |adjustment|
|
29
|
+
next if adjustment.originator_type == 'Spree::TaxRate' && adjustment.amount == 0
|
30
|
+
taxes += adjustment.amount
|
31
|
+
end
|
32
|
+
|
33
|
+
taxes
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Spree
|
2
|
+
class PaymentMethod::BcashMethod < PaymentMethod
|
3
|
+
attr_protected
|
4
|
+
preference :email, :string
|
5
|
+
|
6
|
+
attr_accessor :order_id
|
7
|
+
has_many :payments, :as => :source
|
8
|
+
|
9
|
+
def payment_source_class
|
10
|
+
self.class
|
11
|
+
end
|
12
|
+
|
13
|
+
def source_required?
|
14
|
+
false
|
15
|
+
end
|
16
|
+
|
17
|
+
def actions
|
18
|
+
%w{capture void}
|
19
|
+
end
|
20
|
+
|
21
|
+
def can_capture?(payment)
|
22
|
+
['checkout', 'pending'].include?(payment.state)
|
23
|
+
end
|
24
|
+
|
25
|
+
def can_void?(payment)
|
26
|
+
payment.state != 'void'
|
27
|
+
end
|
28
|
+
|
29
|
+
def capture(*args)
|
30
|
+
ActiveMerchant::Billing::Response.new(true, "", {}, {})
|
31
|
+
end
|
32
|
+
|
33
|
+
def void(*args)
|
34
|
+
ActiveMerchant::Billing::Response.new(true, "", {}, {})
|
35
|
+
end
|
36
|
+
|
37
|
+
def package(payment)
|
38
|
+
bcash_payment = Spree::BcashPayment.new
|
39
|
+
bcash_payment.process!(payment)
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag('https://a248.e.akamai.net/f/248/96284/12h/www.bcash.com.br/webroot/banners/site/bc90x95px.png', :alt => 'Bcash')%>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<br />
|
2
|
+
<%if @order.payment_method.instance_of? Spree::PaymentMethod::BcashMethod%>
|
3
|
+
Clique no botão abaixo para fazer seu pagamento usando o Bcash
|
4
|
+
<%= Bcash::Payment.new(@order.payment_method.package(@order.payment), {:email_loja => Spree::Order.bcash_payment_method.preferred_email}).html%>
|
5
|
+
<%end%>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Spree
|
2
|
+
module Bcash
|
3
|
+
class Engine < Rails::Engine
|
4
|
+
engine_name 'spree_bcash'
|
5
|
+
|
6
|
+
initializer "spree.register.bcash_method", after: "spree.register.payment_methods" do |app|
|
7
|
+
app.config.spree.payment_methods << Spree::PaymentMethod::BcashMethod
|
8
|
+
end
|
9
|
+
|
10
|
+
config.autoload_paths += %W(#{config.root}/lib)
|
11
|
+
|
12
|
+
# use rspec for tests
|
13
|
+
config.generators do |g|
|
14
|
+
g.test_framework :rspec
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.activate
|
18
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
|
19
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
config.to_prepare &method(:activate).to_proc
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/spree_bcash.rb
ADDED
data/spree_bcash.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "spree_bcash/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "spree_bcash"
|
7
|
+
s.version = SpreeBcash::VERSION
|
8
|
+
s.authors = ["Matheus Caceres"]
|
9
|
+
s.email = ["matheus@formaweb.com.br"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{Support bcash in spree. Base: spree_pag_seguro}
|
12
|
+
s.description = %q{Support bcash}
|
13
|
+
|
14
|
+
s.rubyforge_project = "spree_bcash"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_dependency 'bcash', '~>0.5.0'
|
22
|
+
s.add_dependency 'spree_core'
|
23
|
+
|
24
|
+
# specify any dependencies here; for example:
|
25
|
+
s.add_development_dependency "rspec"
|
26
|
+
# s.add_runtime_dependency "rest-client"
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: spree_bcash
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matheus Caceres
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bcash
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.5.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.5.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: spree_core
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '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: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Support bcash
|
56
|
+
email:
|
57
|
+
- matheus@formaweb.com.br
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- Gemfile
|
64
|
+
- Rakefile
|
65
|
+
- app/models/spree/bcash_payment.rb
|
66
|
+
- app/models/spree/order_decorator.rb
|
67
|
+
- app/models/spree/payment_method/bcash_method.rb
|
68
|
+
- app/overrides/replace_payment_info.rb
|
69
|
+
- app/views/spree/checkout/payment/_bcashmethod.html.erb
|
70
|
+
- app/views/spree/checkout/payment/_order_details_bcash.html.erb
|
71
|
+
- lib/spree_bcash.rb
|
72
|
+
- lib/spree_bcash/engine.rb
|
73
|
+
- lib/spree_bcash/version.rb
|
74
|
+
- spree_bcash.gemspec
|
75
|
+
homepage: ''
|
76
|
+
licenses: []
|
77
|
+
metadata: {}
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options: []
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ! '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
requirements: []
|
93
|
+
rubyforge_project: spree_bcash
|
94
|
+
rubygems_version: 2.0.3
|
95
|
+
signing_key:
|
96
|
+
specification_version: 4
|
97
|
+
summary: ! 'Support bcash in spree. Base: spree_pag_seguro'
|
98
|
+
test_files: []
|