spree_account_recurring 1.0.7 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 [name of plugin creator]
1
+ Copyright (c) 2014 Vinsol
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- Spree Account Recurring [![Code Climate](https://codeclimate.com/github/vinsol/spree-account-recurring.png)](https://codeclimate.com/github/vinsol/spree-account-recurring) [![Build Status](https://travis-ci.org/vinsol/spree-account-recurring.svg?branch=2-1-stable)](https://travis-ci.org/vinsol/spree-account-recurring)
1
+ Spree Account Recurring [![Code Climate](https://codeclimate.com/github/vinsol/spree-account-recurring.png)](https://codeclimate.com/github/vinsol/spree-account-recurring) [![Build Status](https://travis-ci.org/vinsol/spree-account-recurring.svg?branch=2-2-stable)](https://travis-ci.org/vinsol/spree-account-recurring)
2
2
  =========================
3
3
 
4
4
  Spree extension to manage recurring payments/subscriptions using [Stripe Payment Gateway](https://stripe.com/).
@@ -10,11 +10,18 @@ Installation
10
10
 
11
11
  Install `spree_account_recurring` by adding the following to your `Gemfile`:
12
12
 
13
+ ```ruby
14
+ gem 'spree_account_recurring'
15
+ ```
16
+
17
+ For older version of Spree
18
+
13
19
  ```ruby
14
20
  # Spree 2.1.x
15
- gem 'spree_account_recurring', '~> 1.0'
21
+ gem 'spree_account_recurring', '1.0.1'
16
22
  ```
17
23
 
24
+
18
25
  Bundle your dependencies and run the installation generator:
19
26
 
20
27
  ```shell
@@ -106,4 +113,4 @@ Credits
106
113
 
107
114
  [![vinsol.com: Ruby on Rails, iOS and Android developers](http://vinsol.com/vin_logo.png "Ruby on Rails, iOS and Android developers")](http://vinsol.com)
108
115
 
109
- Copyright (c) 2014 [vinsol.com](http://vinsol.com "Ruby on Rails, iOS and Android developers"), released under the New MIT License
116
+ Copyright (c) 2014 [vinsol.com](http://vinsol.com "Ruby on Rails, iOS and Android developers"), released under the New MIT License
@@ -0,0 +1 @@
1
+ //= require spree/backend
@@ -0,0 +1 @@
1
+ //= require spree/frontend
@@ -20,6 +20,10 @@ $(document).ready(function(){
20
20
  // For errors that happen later.
21
21
  Spree.stripePaymentMethod.prepend("<div id='stripeError' class='errorExplanation' style='display:none'></div>")
22
22
 
23
+ $(".cardNumber").payment('formatCardNumber');
24
+ $(".cardExpiry").payment('formatCardExpiry');
25
+ $(".cardCode").payment('formatCardCVC');
26
+
23
27
  $('.continue').on('click', function(){
24
28
  $('#stripeError').hide();
25
29
  if(Spree.stripePaymentMethod.is(':visible')){
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require spree/backend
3
+ */
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require spree/frontend
3
+ */
@@ -0,0 +1,21 @@
1
+ module BeforeEach
2
+ extend ActiveSupport::Concern
3
+
4
+ module ClassMethods
5
+ def method_added(method)
6
+ method = method.to_s.gsub(/_with(out)?_before$/, '')
7
+ with_method, without_method = "#{method}_with_before", "#{method}_without_before"
8
+
9
+ return if method == 'before_each' or method_defined?(with_method)
10
+
11
+ define_method(with_method) do |*args, &block|
12
+ before_each
13
+ send(without_method, *args, &block)
14
+ end
15
+ alias_method_chain(method, :before)
16
+ end
17
+ end
18
+
19
+ def before_each
20
+ end
21
+ end
@@ -5,6 +5,7 @@ module Spree
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
+ include BeforeEach
8
9
  include PlanApiHandler
9
10
  include SubscriptionApiHandler
10
11
  include SubscriptionEventApiHandler
@@ -10,8 +10,6 @@ module Spree
10
10
  has_many :plans
11
11
  attr_readonly :type
12
12
  validates :type, :name, presence: true
13
- validates :type, uniqueness: { message: 'of provider recurring already exists' }
14
-
15
13
  scope :active, -> { undeleted.where(active: true) }
16
14
 
17
15
  def self.display_name
@@ -25,9 +23,5 @@ module Spree
25
23
  def default_plan
26
24
  plans.default
27
25
  end
28
-
29
- def has_preferred_keys?
30
- preferred_secret_key.present? && preferred_public_key.present?
31
- end
32
26
  end
33
27
  end
@@ -8,7 +8,9 @@ module Spree
8
8
  INTERVAL = { week: 'Weekly', month: 'Monthly', year: 'Annually' }
9
9
  CURRENCY = { usd: 'USD', gbp: 'GBP', jpy: 'JPY', eur: 'EUR', aud: 'AUD', hkd: 'HKD', sek: 'SEK', nok: 'NOK', dkk: 'DKK', pen: 'PEN', cad: 'CAD'}
10
10
 
11
- after_initialize :set_api_key
11
+ def before_each
12
+ set_api_key
13
+ end
12
14
  end
13
15
  end
14
16
  end
@@ -1,13 +1,9 @@
1
1
  Spree::User.class_eval do
2
2
  has_many :subscriptions
3
3
 
4
- def find_or_create_stripe_customer(token=nil)
4
+ def find_or_create_stripe_customer(token)
5
5
  return api_customer if stripe_customer_id?
6
- customer = if token
7
- Stripe::Customer.create(description: email, email: email, card: token)
8
- else
9
- Stripe::Customer.create(description: email, email: email)
10
- end
6
+ customer = Stripe::Customer.create(description: email, email: email, card: token)
11
7
  update_column(:stripe_customer_id, customer.id)
12
8
  customer
13
9
  end
@@ -5,7 +5,7 @@
5
5
  <div class="alpha four columns">
6
6
  <div id="preference-settings" data-hook class="field">
7
7
  <%= label_tag nil, Spree.t(:provider) %>
8
- <%= select(:recurring, :type, Rails.application.config.spree.recurring_providers.collect {|pro| [pro.display_name, pro]}, {}, {disabled: !@recurring.new_record?, class: 'select2 fullwidth'}) %>
8
+ <%= select(:recurring, :type, Spree::Recurring.subclasses.collect {|pro| [pro.display_name, pro]}, {}, {disabled: !@recurring.new_record?, class: 'select2 fullwidth'}) %>
9
9
 
10
10
  <% unless @recurring.new_record? %>
11
11
  <%= preference_fields(@recurring, f) %>
@@ -16,9 +16,7 @@
16
16
  <fieldset class="no-border-top">
17
17
  <%= render :partial => 'form', :locals => { :f => f } %>
18
18
  <div data-hook="buttons" class="filter-actions actions">
19
- <% if @recurring.has_preferred_keys? %>
20
- <%= button_link_to Spree.t(:manage_plans), admin_recurring_plans_url(@recurring) %>
21
- <% end %>
19
+ <%= button_link_to Spree.t(:manage_plans), admin_recurring_plans_url(@recurring) %>
22
20
  <%= button Spree.t('actions.update'), 'icon-refresh' %>
23
21
  </div>
24
22
  </fieldset>
@@ -33,4 +33,4 @@
33
33
  <script type="text/javascript" src="https://js.stripe.com/v2/"></script>
34
34
  <script type="text/javascript">Stripe.setPublishableKey("<%= @plan.provider.preferred_public_key %>");</script>
35
35
  <script>Spree.stripePaymentMethod = $('#plan_' + <%= @plan.id %> + '_subscribe')</script>
36
- <%= javascript_include_tag "store/stripe" %>
36
+ <%= javascript_include_tag "spree/frontend/stripe" %>
data/config/routes.rb CHANGED
@@ -4,8 +4,12 @@ Spree::Core::Engine.routes.draw do
4
4
  resources :plans, except: :show
5
5
  end
6
6
 
7
- resources :subscriptions, only: :index
8
- resources :subscription_events, only: :index
7
+ resources :reports, only: :index do
8
+ collection do
9
+ resources :subscriptions, only: :index
10
+ resources :subscription_events, only: :index
11
+ end
12
+ end
9
13
  end
10
14
 
11
15
  resources :recurring_hooks, only: :none do
@@ -6,4 +6,4 @@ class ChangeDatatypeForAmountInSpreePlans < ActiveRecord::Migration
6
6
  def down
7
7
  change_column :spree_plans, :amount, :integer
8
8
  end
9
- end
9
+ end
@@ -5,13 +5,13 @@ module SpreeAccountRecurring
5
5
  class_option :auto_run_migrations, :type => :boolean, :default => false
6
6
 
7
7
  def add_javascripts
8
- append_file 'app/assets/javascripts/store/all.js', "//= require store/spree_account_recurring\n"
9
- append_file 'app/assets/javascripts/admin/all.js', "//= require admin/spree_account_recurring\n"
8
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_account_recurring\n"
9
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/spree_account_recurring\n"
10
10
  end
11
11
 
12
12
  def add_stylesheets
13
- inject_into_file 'app/assets/stylesheets/store/all.css', " *= require store/spree_account_recurring\n", :before => /\*\//, :verbose => true
14
- inject_into_file 'app/assets/stylesheets/admin/all.css', " *= require admin/spree_account_recurring\n", :before => /\*\//, :verbose => true
13
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/spree_account_recurring\n", :before => /\*\//, :verbose => true
14
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/spree_account_recurring\n", :before => /\*\//, :verbose => true
15
15
  end
16
16
 
17
17
  def add_migrations
@@ -1,18 +1,11 @@
1
1
  module SpreeAccountRecurring
2
2
  class Engine < Rails::Engine
3
3
  require 'spree/core'
4
- require 'spree/core/environment_extension.rb'
5
- require 'spree/core/environment.rb'
6
-
7
4
  isolate_namespace Spree
8
5
  engine_name 'spree_account_recurring'
9
6
 
10
7
  config.autoload_paths += %W(#{config.root}/lib)
11
8
 
12
- Spree::Core::Environment.class_eval do
13
- attr_accessor :recurring_providers
14
- end
15
-
16
9
  # use rspec for tests
17
10
  config.generators do |g|
18
11
  g.test_framework :rspec
@@ -25,9 +18,5 @@ module SpreeAccountRecurring
25
18
  end
26
19
 
27
20
  config.to_prepare &method(:activate).to_proc
28
-
29
- initializer "spree.register.recurring_providers" do |app|
30
- app.config.spree.recurring_providers = [Spree::Recurring::StripeRecurring]
31
- end
32
21
  end
33
22
  end
metadata CHANGED
@@ -1,94 +1,98 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: spree_account_recurring
3
- version: !ruby/object:Gem::Version
4
- version: 1.0.7
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 1
9
+ - 0
10
+ version: 1.1.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Priyank Gupta
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2015-06-18 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2014-04-07 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: spree_core
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '2.1'
22
- type: :runtime
23
22
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
- requirements:
25
+ requirements:
27
26
  - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '2.1'
30
- - !ruby/object:Gem::Dependency
31
- name: stripe
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - '='
36
- - !ruby/object:Gem::Version
37
- version: 1.10.1
27
+ - !ruby/object:Gem::Version
28
+ hash: 7
29
+ segments:
30
+ - 2
31
+ - 2
32
+ version: "2.2"
38
33
  type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: stripe
39
37
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
38
+ requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - '='
44
- - !ruby/object:Gem::Version
40
+ requirements:
41
+ - - "="
42
+ - !ruby/object:Gem::Version
43
+ hash: 61
44
+ segments:
45
+ - 1
46
+ - 10
47
+ - 1
45
48
  version: 1.10.1
46
- - !ruby/object:Gem::Dependency
47
- name: stripe_tester
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
49
  type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: stripe_tester
55
53
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
54
+ requirement: &id003 !ruby/object:Gem::Requirement
57
55
  none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :runtime
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
63
66
  name: rspec-rails
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '2.13'
70
- type: :development
71
67
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
68
+ requirement: &id004 !ruby/object:Gem::Requirement
73
69
  none: false
74
- requirements:
70
+ requirements:
75
71
  - - ~>
76
- - !ruby/object:Gem::Version
77
- version: '2.13'
78
- description: Spree extension to manage recurring payments/subscriptions using Stripe
79
- Payment Gateway.
72
+ - !ruby/object:Gem::Version
73
+ hash: 25
74
+ segments:
75
+ - 2
76
+ - 13
77
+ version: "2.13"
78
+ type: :development
79
+ version_requirements: *id004
80
+ description: Spree extension to manage recurring payments/subscriptions using Stripe Payment Gateway.
80
81
  email: info@vinsol.com
81
82
  executables: []
83
+
82
84
  extensions: []
85
+
83
86
  extra_rdoc_files: []
84
- files:
87
+
88
+ files:
85
89
  - LICENSE
86
90
  - README.md
87
- - app/assets/javascripts/admin/spree_account_recurring.js
88
- - app/assets/javascripts/store/spree_account_recurring.js
89
- - app/assets/javascripts/store/stripe.js
90
- - app/assets/stylesheets/admin/spree_account_recurring.css
91
- - app/assets/stylesheets/store/spree_account_recurring.css
91
+ - app/assets/javascripts/spree/backend/spree_account_recurring.js
92
+ - app/assets/javascripts/spree/frontend/spree_account_recurring.js
93
+ - app/assets/javascripts/spree/frontend/stripe.js
94
+ - app/assets/stylesheets/spree/backend/spree_account_recurring.css
95
+ - app/assets/stylesheets/spree/frontend/spree_account_recurring.css
92
96
  - app/controllers/concerns/spree/admin/ransack_date_search.rb
93
97
  - app/controllers/spree/admin/plans_controller.rb
94
98
  - app/controllers/spree/admin/recurrings_controller.rb
@@ -97,6 +101,7 @@ files:
97
101
  - app/controllers/spree/plans_controller.rb
98
102
  - app/controllers/spree/recurring_hooks_controller.rb
99
103
  - app/controllers/spree/subscriptions_controller.rb
104
+ - app/models/concerns/before_each.rb
100
105
  - app/models/concerns/restrictive_destroyer.rb
101
106
  - app/models/concerns/spree/plan/api_handler.rb
102
107
  - app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
@@ -147,28 +152,38 @@ files:
147
152
  - db/migrate/20140404114919_change_datatype_for_amount_in_spree_plans.rb
148
153
  homepage: http://vinsol.com
149
154
  licenses: []
155
+
150
156
  post_install_message:
151
157
  rdoc_options: []
152
- require_paths:
158
+
159
+ require_paths:
153
160
  - lib
154
- required_ruby_version: !ruby/object:Gem::Requirement
161
+ required_ruby_version: !ruby/object:Gem::Requirement
155
162
  none: false
156
- requirements:
157
- - - ! '>='
158
- - !ruby/object:Gem::Version
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ hash: 53
167
+ segments:
168
+ - 1
169
+ - 9
170
+ - 3
159
171
  version: 1.9.3
160
- required_rubygems_version: !ruby/object:Gem::Requirement
172
+ required_rubygems_version: !ruby/object:Gem::Requirement
161
173
  none: false
162
- requirements:
163
- - - ! '>='
164
- - !ruby/object:Gem::Version
165
- version: '0'
166
- requirements:
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ hash: 3
178
+ segments:
179
+ - 0
180
+ version: "0"
181
+ requirements:
167
182
  - none
168
183
  rubyforge_project:
169
- rubygems_version: 1.8.23
184
+ rubygems_version: 1.8.24
170
185
  signing_key:
171
186
  specification_version: 3
172
- summary: Spree extension to manage recurring payments/subscriptions using Stripe Payment
173
- Gateway.
187
+ summary: Spree extension to manage recurring payments/subscriptions using Stripe Payment Gateway.
174
188
  test_files: []
189
+
@@ -1 +0,0 @@
1
- //= require admin/spree_backend
@@ -1 +0,0 @@
1
- //= require store/spree_frontend
@@ -1,3 +0,0 @@
1
- /*
2
- *= require admin/spree_backend
3
- */
@@ -1,3 +0,0 @@
1
- /*
2
- *= require store/spree_frontend
3
- */