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 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
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in spree_bcash.gemspec
4
+ gemspec
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,7 @@
1
+ Spree::Order.class_eval do
2
+
3
+ def self.bcash_payment_method
4
+ Spree::PaymentMethod.where(type: "Spree::PaymentMethod::BcashMethod").first
5
+ end
6
+
7
+ 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,6 @@
1
+ Deface::Override.new(
2
+ virtual_path: "spree/shared/_order_details",
3
+ name: "replace_payment_info_bcash",
4
+ insert_bottom: ".payment-info",
5
+ partial: "spree/checkout/payment/order_details_bcash"
6
+ )
@@ -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
@@ -0,0 +1,3 @@
1
+ module SpreeBcash
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,4 @@
1
+ require "spree_bcash/version"
2
+ require 'bcash'
3
+ require 'spree_core'
4
+ require 'spree_bcash/engine'
@@ -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: []