spree_ifmb 0.0.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.
data/.gitignore ADDED
@@ -0,0 +1,13 @@
1
+ \#*
2
+ *~
3
+ .#*
4
+ .DS_Store
5
+ .idea
6
+ .project
7
+ coverage
8
+ Gemfile.lock
9
+ tmp
10
+ nbproject
11
+ pkg
12
+ *.swp
13
+ spec/dummy
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2012 [name of plugin creator]
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name Spree nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,21 @@
1
+ SpreeIfmb
2
+ =========
3
+
4
+ Spree extension to add IfMB payment gateway
5
+
6
+
7
+ Example
8
+ =======
9
+
10
+ Example goes here.
11
+
12
+ Testing
13
+ -------
14
+
15
+ Be sure to bundle your dependencies and then create a dummy test app for the specs to run against.
16
+
17
+ $ bundle
18
+ $ bundle exec rake test_app
19
+ $ bundle exec rspec spec
20
+
21
+ Copyright (c) 2012 Sinemys, released under the New BSD License
data/Rakefile ADDED
@@ -0,0 +1,15 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ require 'spree/core/testing_support/common_rake'
6
+
7
+ RSpec::Core::RakeTask.new
8
+
9
+ task :default => [:spec]
10
+
11
+ desc 'Generates a dummy app for testing'
12
+ task :test_app do
13
+ ENV['LIB_NAME'] = 'spree_ifmb'
14
+ Rake::Task['common:test_app'].invoke
15
+ end
data/Versionfile ADDED
@@ -0,0 +1,11 @@
1
+ # This file is used to designate compatibilty with different versions of Spree
2
+ # Please see http://spreecommerce.com/documentation/extensions.html#versionfile for details
3
+
4
+ # Examples
5
+ #
6
+ # '1.2.x' => { :branch => 'master' }
7
+ # '1.1.x' => { :branch => '1-1-stable' }
8
+ # '1.0.x' => { :branch => '1-0-stable' }
9
+ # '0.70.x' => { :branch => '0-70-stable' }
10
+ # '0.40.x' => { :tag => 'v1.0.0', :version => '1.0.0' }
11
+
@@ -0,0 +1 @@
1
+ //= require admin/spree_core
@@ -0,0 +1 @@
1
+ //= require store/spree_core
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require admin/spree_core
3
+ */
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require store/spree_core
3
+ */
@@ -0,0 +1,27 @@
1
+ class IfmbCallbackController < Spree::BaseController
2
+
3
+ skip_before_filter :verify_authenticity_token
4
+ ssl_required
5
+
6
+ def notify
7
+ #chave, entidade, referencia, valor, data, terminal
8
+
9
+ chave = params[:chave]
10
+ entity = params[:entidade]
11
+ reference = params[:referencia]
12
+ order_value = params[:valor]
13
+ payment_date = params[:data]
14
+ terminal = params[:terminal]
15
+
16
+
17
+ payment = Spree::Payment.where(ifmb_reference: reference).first
18
+
19
+ if !payment || payment.payment_method.preferences[:chave] != chave
20
+ render nothing: true, status: 500
21
+ else
22
+ payment.complete
23
+ render nothing:true, status: 200
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,26 @@
1
+ #encoding: utf-8
2
+
3
+ class IfmbController < Spree::BaseController
4
+
5
+ def show
6
+ if params[:payment_method_id] and Spree::PaymentMethod.exists? params[:payment_method_id]
7
+ @payment_method = Spree::PaymentMethod.find params[:payment_method_id]
8
+ else
9
+ flash[:error] = "ERRO, parametro payment_method_id errado, o método de pagamento com id=#{params[:payment_method_id]} não existe!"
10
+ redirect_to checkout_state_url(:payment)
11
+ end
12
+
13
+ if params[:order_id] and Spree::Order.exists? params[:order_id]
14
+ @order = Spree::Order.find params[:order_id]
15
+ else
16
+ flash[:error] = "ERRO, parametro order_id errado, a encomenda id=#{params[:order_id]} não existe!"
17
+ redirect_to checkout_state_url(:payment)
18
+ end
19
+
20
+ @payment_method.generate_ref @order.payment
21
+ @order.next
22
+ @order.save
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,16 @@
1
+ Spree::CheckoutController.class_eval do
2
+
3
+ before_filter :redirect_for_ifmb, :only => :update
4
+
5
+ private
6
+
7
+ def redirect_for_ifmb
8
+ return unless params[:state] == "payment"
9
+ @payment_method = Spree::PaymentMethod.find(params[:order][:payments_attributes].first[:payment_method_id])
10
+ if @payment_method && @payment_method.kind_of?(PaymentMethod::Ifmb)
11
+ @order.update_attributes(object_params)
12
+ redirect_to ifmb_show_path(:order_id => @order.id, :payment_method_id => @payment_method.id)
13
+ end
14
+ end
15
+
16
+ end
@@ -0,0 +1,42 @@
1
+ Spree::Order.class_eval do
2
+
3
+ # def ifmb_reference payment_method_id
4
+ # ifmb_generator(payment_method_id).generate
5
+ # end
6
+
7
+ # def ifmb_html payment_method_id
8
+ # ifmb_generator(payment_method_id).in_html
9
+ # end
10
+
11
+ # private
12
+
13
+ # def ifmb_generator payment_method_id
14
+ # @generator ||= Hash.new
15
+ # return @generator[payment_method_id] if @generator[payment_method_id]
16
+
17
+ # payment_method = PaymentMethod::Ifmb.find(payment_method_id)
18
+ # configuration = payment_method.preferences
19
+
20
+ # order_id = self.id
21
+ # unique = nil
22
+ # while !unique
23
+ # opts = {
24
+ # entidade: configuration[:entity],
25
+ # sub_entidade: configuration[:sub_entity],
26
+ # order_id: order_id,
27
+ # order_value: self.total
28
+ # }
29
+ # @generator[payment_method_id] = Ifmb::Generator.new opts
30
+ # reference = @generator[payment_method_id].generate
31
+
32
+ # if 0 == Spree::Payment.where(ifmb_reference: reference).count
33
+ # unique = true
34
+ # else
35
+ # order_id += 1
36
+ # end
37
+ # end
38
+
39
+ # @generator[payment_method_id]
40
+ # end
41
+
42
+ end
@@ -0,0 +1,106 @@
1
+ class PaymentMethod::Ifmb < Spree::PaymentMethod
2
+
3
+ attr_accessible :preferred_entity, :preferred_sub_entity, :preferred_chave
4
+
5
+ preference :entity, :string
6
+ preference :sub_entity, :string
7
+ preference :chave, :string
8
+
9
+ def actions
10
+ %w{capture void}
11
+ end
12
+
13
+ # Indicates whether its possible to capture the payment
14
+ def can_capture?(payment)
15
+ ['checkout', 'pending'].include?(payment.state)
16
+ end
17
+
18
+ # Indicates whether its possible to void the payment.
19
+ def can_void?(payment)
20
+ payment.state != 'void'
21
+ end
22
+
23
+ def capture(*args)
24
+ ActiveMerchant::Billing::Response.new(true, "", {}, {})
25
+ end
26
+
27
+ def void(*args)
28
+ ActiveMerchant::Billing::Response.new(true, "", {}, {})
29
+ end
30
+
31
+ def payment_profiles_supported?
32
+ false
33
+ end
34
+
35
+ def source_required?
36
+ false
37
+ end
38
+
39
+ def generate_ref payment
40
+ configuration = payment.payment_method.preferences
41
+ order = payment.order
42
+ order_id = order.id
43
+ unique = nil
44
+ while !unique
45
+ opts = {
46
+ entidade: configuration[:entity],
47
+ sub_entidade: configuration[:sub_entity],
48
+ order_id: order_id,
49
+ order_value: order.total
50
+ }
51
+ generator = Ifmb::Generator.new opts
52
+ reference = generator.generate
53
+
54
+ if 0 == Spree::Payment.where(ifmb_reference: reference).count
55
+ unique = true
56
+ else
57
+ order_id += 1
58
+ end
59
+ end
60
+ reference
61
+ end
62
+
63
+ def generate_ref payment
64
+ configuration = payment.payment_method.preferences
65
+ order = payment.order
66
+ order_id = order.id
67
+ unique = nil
68
+ while !unique
69
+ opts = {
70
+ entidade: configuration[:entity],
71
+ sub_entidade: configuration[:sub_entity],
72
+ order_id: order_id,
73
+ order_value: order.total
74
+ }
75
+ generator = Ifmb::Generator.new opts
76
+ reference = generator.generate
77
+
78
+ if 0 == Spree::Payment.where(ifmb_reference: reference).count
79
+ unique = true
80
+ else
81
+ order_id += 1
82
+ end
83
+ end
84
+ payment.update_attribute :ifmb_reference, reference
85
+ reference
86
+ end
87
+
88
+ def html_reference payment, size = :small
89
+ ref = Ifmb::Reference.new
90
+ configs = payment.payment_method.preferences
91
+ ref.entidade = configs[:entity]
92
+ ref.order_value = payment.amount
93
+ if payment.ifmb_reference.present?
94
+ ref.referencia = payment.ifmb_reference
95
+ else
96
+ ref.referencia = generate_ref(payment)
97
+ end
98
+ if size == :small
99
+ Ifmb::HtmlFormatter.new(ref).small_html
100
+ else
101
+ Ifmb::HtmlFormatter.new(ref).html
102
+ end
103
+ end
104
+
105
+
106
+ end
@@ -0,0 +1,4 @@
1
+ # Deface::Override.new(:virtual_path => "admin/general_settings/edit",
2
+ # :insert_bottom => "#preferences",
3
+ # :partial => "admin/general_settings/ifmb",
4
+ # :name => "ifmb")
@@ -0,0 +1,13 @@
1
+ <!--
2
+ insert_bottom '.payment-info'
3
+ original 'cd012ef486088f2543371329dde5d4f8f3d4191b'
4
+ -->
5
+
6
+ <% order.payments.with_state('checkout').each do |payment| %>
7
+ <% if payment.payment_method.is_a?(PaymentMethod::Ifmb) %>
8
+ <span class="cc-type">
9
+ <%= raw payment.payment_method.html_reference(payment) %>
10
+ </span>
11
+ <br />
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,22 @@
1
+ <div class="clear"></div>
2
+
3
+ <h2 class="title">
4
+ <%= t(:payment_text) %>
5
+ </h2>
6
+
7
+ <fieldset id="order_details">
8
+ <div class="clear"></div>
9
+ <legend><%= t(:order_summary) %> <%= @order.number %></legend>
10
+ <%= render :partial => 'spree/shared/order_details', :locals => {:order => @order} %>
11
+ </fieldset>
12
+ <p>
13
+ <%= link_to "Confirm" ,order_path(@order, {:checkout_complete => true, :order_token => @order.token}), class: 'button' %>
14
+ </p>
15
+ <p>
16
+ <%= link_to t(:cancel_and_back), checkout_state_url(:payment), :class => "ifmb link cancel" %>
17
+ </p>
18
+
19
+
20
+
21
+
22
+
@@ -0,0 +1,10 @@
1
+ <h3>
2
+ <%= t(:state) %>: <%= @payment.state %>
3
+ </h3>
4
+
5
+ <% # TODO: Place this in a proper place %>
6
+ <% if @payment.ifmb_reference.blank? %>
7
+ <% @payment.payment_method.generate_ref @payment %>
8
+ <% end %>
9
+ <% # ----------------------------- %>
10
+ <%= raw @payment.payment_method.html_reference @payment, :big %>
@@ -0,0 +1,2 @@
1
+
2
+ Os dados para pagar por MB serão apresentados de seguida
@@ -0,0 +1,5 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: "Hello world"
data/config/routes.rb ADDED
@@ -0,0 +1,5 @@
1
+ Spree::Core::Engine.routes.draw do
2
+ # Add your extension routes here
3
+ match '/ifmb' => 'ifmb_callback#notify', :via => [:get, :post]
4
+ match '/ifmb/show/:order_id/:payment_method_id' => 'ifmb#show', :as => :ifmb_show
5
+ end
@@ -0,0 +1,10 @@
1
+ class AddIfmbReferenceToPayments < ActiveRecord::Migration
2
+ def up
3
+ add_column :spree_payments, :ifmb_reference, :string
4
+ add_index :spree_payments, :ifmb_reference
5
+ end
6
+
7
+ def down
8
+ remove_column :spree_payments, :ifmb_reference, :string
9
+ end
10
+ end
@@ -0,0 +1,29 @@
1
+ module SpreeIfmb
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+
5
+ # def add_javascripts
6
+ # append_file 'app/assets/javascripts/store/all.js', "//= require store/spree_ifmb\n"
7
+ # append_file 'app/assets/javascripts/admin/all.js', "//= require admin/spree_ifmb\n"
8
+ # end
9
+
10
+ # def add_stylesheets
11
+ # inject_into_file 'app/assets/stylesheets/store/all.css', " *= require store/spree_ifmb\n", :before => /\*\//, :verbose => true
12
+ # inject_into_file 'app/assets/stylesheets/admin/all.css', " *= require admin/spree_ifmb\n", :before => /\*\//, :verbose => true
13
+ # end
14
+
15
+ def add_migrations
16
+ run 'bundle exec rake railties:install:migrations FROM=spree_ifmb'
17
+ end
18
+
19
+ def run_migrations
20
+ res = ask 'Would you like to run the migrations now? [Y/n]'
21
+ if res == '' || res.downcase == 'y'
22
+ run 'bundle exec rake db:migrate'
23
+ else
24
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,28 @@
1
+ module SpreeIfmb
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ isolate_namespace Spree
5
+ engine_name 'spree_ifmb'
6
+
7
+ config.autoload_paths += %W(#{config.root}/lib)
8
+
9
+ # use rspec for tests
10
+ config.generators do |g|
11
+ g.test_framework :rspec
12
+ end
13
+
14
+ def self.activate
15
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
16
+ Rails.configuration.cache_classes ? require(c) : load(c)
17
+ end
18
+
19
+ # Dir.glob(File.join(File.dirname(__FILE__), "../../app/overrides/*.rb")) do |c|
20
+ # Rails.application.config.cache_classes ? require(c) : load(c)
21
+ # end
22
+
23
+ Rails.application.config.spree.payment_methods.push(PaymentMethod::Ifmb)
24
+ end
25
+
26
+ config.to_prepare &method(:activate).to_proc
27
+ end
28
+ end
data/lib/spree_ifmb.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'spree_core'
2
+ require 'spree_ifmb/engine'
data/script/rails ADDED
@@ -0,0 +1,7 @@
1
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
2
+
3
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
4
+ ENGINE_PATH = File.expand_path('../../lib/spree_ifmb/engine', __FILE__)
5
+
6
+ require 'rails/all'
7
+ require 'rails/engine/commands'
@@ -0,0 +1,44 @@
1
+ # Configure Rails Environment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
5
+
6
+ require 'rspec/rails'
7
+ require 'ffaker'
8
+
9
+ # Requires supporting ruby files with custom matchers and macros, etc,
10
+ # in spec/support/ and its subdirectories.
11
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
12
+
13
+ # Requires factories defined in spree_core
14
+ require 'spree/core/testing_support/factories'
15
+ require 'spree/core/url_helpers'
16
+
17
+ RSpec.configure do |config|
18
+ config.include FactoryGirl::Syntax::Methods
19
+
20
+ # == URL Helpers
21
+ #
22
+ # Allows access to Spree's routes in specs:
23
+ #
24
+ # visit spree.admin_path
25
+ # current_path.should eql(spree.products_path)
26
+ config.include Spree::Core::UrlHelpers
27
+
28
+ # == Mock Framework
29
+ #
30
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
31
+ #
32
+ # config.mock_with :mocha
33
+ # config.mock_with :flexmock
34
+ # config.mock_with :rr
35
+ config.mock_with :rspec
36
+
37
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
38
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
39
+
40
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
41
+ # examples within a transaction, remove the following line or assign false
42
+ # instead of true.
43
+ config.use_transactional_fixtures = true
44
+ end
@@ -0,0 +1,27 @@
1
+ Gem::Specification.new do |s|
2
+ s.platform = Gem::Platform::RUBY
3
+ s.name = 'spree_ifmb'
4
+ s.version = '0.0.1'
5
+ s.summary = 'IFMB payments for spree'
6
+ # s.description = 'TODO: Add (optional) gem description here'
7
+ s.required_ruby_version = '>= 1.9.2'
8
+
9
+ s.author = 'Sinemys'
10
+ s.email = 'info@sinemys.pt'
11
+ s.homepage = 'http://github.com/sinemys/spree_ifmb'
12
+
13
+ s.files = `git ls-files`.split("\n")
14
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ s.require_path = 'lib'
16
+ s.requirements << 'none'
17
+
18
+ s.add_dependency 'spree_core', '~> 1.2.0'
19
+ s.add_dependency 'ifmb', '~> 0.0.4'
20
+ # s.add_development_dependency('spree_sample', '~> 1.2.0')
21
+ s.add_development_dependency 'capybara', '1.0.1'
22
+ s.add_development_dependency 'factory_girl', '~> 2.6.4'
23
+ s.add_development_dependency 'ffaker'
24
+ s.add_development_dependency 'rspec-rails', '~> 2.9'
25
+ s.add_development_dependency 'guard'
26
+ s.add_development_dependency 'sqlite3'
27
+ end
metadata ADDED
@@ -0,0 +1,206 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_ifmb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Sinemys
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: spree_core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.2.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: ifmb
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 0.0.4
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.0.4
46
+ - !ruby/object:Gem::Dependency
47
+ name: capybara
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - '='
52
+ - !ruby/object:Gem::Version
53
+ version: 1.0.1
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.1
62
+ - !ruby/object:Gem::Dependency
63
+ name: factory_girl
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 2.6.4
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 2.6.4
78
+ - !ruby/object:Gem::Dependency
79
+ name: ffaker
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rspec-rails
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: '2.9'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '2.9'
110
+ - !ruby/object:Gem::Dependency
111
+ name: guard
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: sqlite3
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ description:
143
+ email: info@sinemys.pt
144
+ executables: []
145
+ extensions: []
146
+ extra_rdoc_files: []
147
+ files:
148
+ - .gitignore
149
+ - .rspec
150
+ - Gemfile
151
+ - LICENSE
152
+ - README.md
153
+ - Rakefile
154
+ - Versionfile
155
+ - app/assets/javascripts/admin/spree_ifmb.js
156
+ - app/assets/javascripts/store/spree_ifmb.js
157
+ - app/assets/stylesheets/admin/spree_ifmb.css
158
+ - app/assets/stylesheets/store/spree_ifmb.css
159
+ - app/controllers/ifmb_callback_controller.rb
160
+ - app/controllers/ifmb_controller.rb
161
+ - app/controllers/spree/checkout_controller_decorator.rb
162
+ - app/models/order_decorator.rb
163
+ - app/models/payment_method/ifmb.rb
164
+ - app/overrides/ifmb_admin_override.rb
165
+ - app/overrides/spree/shared/_order_details/add_ifmb_details.html.erb.deface
166
+ - app/views/ifmb/show.html.erb
167
+ - app/views/spree/admin/payments/source_forms/_ifmb.html.erb
168
+ - app/views/spree/admin/payments/source_views/_ifmb.html.erb
169
+ - app/views/spree/checkout/payment/_ifmb.html.erb
170
+ - config/locales/en.yml
171
+ - config/routes.rb
172
+ - db/migrate/20121122152848_add_ifmb_reference_to_payments.rb
173
+ - lib/generators/spree_ifmb/install/install_generator.rb
174
+ - lib/spree_ifmb.rb
175
+ - lib/spree_ifmb/engine.rb
176
+ - script/rails
177
+ - spec/spec_helper.rb
178
+ - spree_ifmb.gemspec
179
+ homepage: http://github.com/sinemys/spree_ifmb
180
+ licenses: []
181
+ post_install_message:
182
+ rdoc_options: []
183
+ require_paths:
184
+ - lib
185
+ required_ruby_version: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: 1.9.2
191
+ required_rubygems_version: !ruby/object:Gem::Requirement
192
+ none: false
193
+ requirements:
194
+ - - ! '>='
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ requirements:
198
+ - none
199
+ rubyforge_project:
200
+ rubygems_version: 1.8.23
201
+ signing_key:
202
+ specification_version: 3
203
+ summary: IFMB payments for spree
204
+ test_files:
205
+ - spec/spec_helper.rb
206
+ has_rdoc: