wepay-rails 0.1.83 → 0.1.84

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/README.rdoc CHANGED
@@ -1,23 +1,42 @@
1
+ = IMPORTANT - This gem is under heavy development and is in extreme alpha phase. As soon as it's in a release state (very soon), I will update the MAJOR version to 1. If you are interested in helping, please drop me a message.
2
+
1
3
  = wepay-rails
2
4
 
3
5
  Wepay-Rails allows your rails app to accept payments with Wepay (http://www.wepay.com).
4
6
 
7
+ To install it, add this to your Gemfile
8
+
9
+ gem 'wepay-rails'
10
+
5
11
  Since Wepay uses Oauth2 to authenticate, wepay-rails has been built to handle this for you. You will need to
6
12
  add a column to one of your models to hold the authentication token. For example, if you have a user model:
7
13
 
8
14
  Your migration:
9
15
 
10
- add_column :users, :wepay_auth_code, :string
16
+ add_column :my_model, :wepay_auth_code, :string
17
+
18
+ Now, tell wepay_rails where it should store/retrieve the auth code.
19
+
20
+ You will need a wepay.yml file added to your config directory. Please copy one from the lib/examples folder of the
21
+ wepay-rails gem and modify it to your needs. In a future release, the copy will happen via a generator. For now, please
22
+ manually copy it over.
23
+
24
+ Snippet of wepay.yml showing the auth_code_location directive:
25
+
26
+ production:
27
+ auth_code_location: MyModel.wepay_auth_code
11
28
 
12
29
  Your model:
13
30
 
14
- class User < ActiveRecord::Base
15
- wepayable :wepay_auth_code
31
+ class MyModel < ActiveRecord::Base
32
+ wepayable
16
33
  end
17
34
 
18
- Adding wepayable to your model also adds some helpful methods to your model, like save_<your column name>
35
+ Now you will have some convenience methods added to your model, such as save_<your column name> (eg. save_wepay_auth_code)
19
36
 
20
- You need to also create a new model called WepayCheckoutRecord. In future versions, I'll include a generator - but for now, here's the migration to use:
37
+ You need to also create a new model called WepayCheckoutRecord. It will be updated by wepay's IPN system as changes to the checkout change - such as the status.
38
+ Wepay-rails handles those IPN notifications for you. You can write observers watching the WepayCheckoutRecord model if you need to have
39
+ something specific occur when the checkout changes. In future versions, I'll include a generator - but for now, here's the migration to use:
21
40
 
22
41
  class CreateWepayCheckoutRecords < ActiveRecord::Migration
23
42
  def self.up
@@ -61,26 +80,18 @@ You need to also create a new model called WepayCheckoutRecord. In future versio
61
80
 
62
81
 
63
82
  You will have to set up a few new controllers to handle callbacks and redirects from wepay back to your app.
64
- One is for handling the Oauth handshake. I called mine authorize_controller.rb
83
+ I created one called finalize_controller and I use it for a landing page when the customer is finished paying
84
+ their order. The other controller I created is a checkout_controller - this controller glues all of the auth
85
+ stuff together - it checks if the user has an auth code and access token so it can do the checkout for you. I am
86
+ going to look into ways to have wepay-rails do most of the heavy lifting - look for this to change in future versions.
87
+ For now, here's how to handle it...
65
88
 
66
- I created a directory under my controllers directory called wepay so I can keep my wepay callback controllers in one place.
67
89
  app
68
90
  |_ controllers
69
- |_ wepay
70
- |_ authorize_controller.rb
71
91
  |_ purchase
72
92
  |_ checkout_controller.rb
73
93
  |_ finalize_controller.rb
74
94
 
75
- class Wepay::AuthorizeController < Wepay::ApplicationController
76
- def index
77
- current_profile.save_wepay_auth_code params[:code]
78
- initialize_wepay_access_token(params[:code])
79
-
80
- redirect_to purchase_checkout_index_path
81
- end
82
- end
83
-
84
95
  The wepay-rails gem comes with an IpnController already built in for
85
96
  handling requests from wepay about a specific checkout. If you wish to override it,
86
97
  you can create an IpnController in your rails app.
@@ -91,11 +102,6 @@ you can create an IpnController in your rails app.
91
102
  end
92
103
  end
93
104
 
94
- Routes for these:
95
- namespace :wepay do
96
- resources :authorize, :only => [:index]
97
- end
98
-
99
105
  wepay.yml will also need these directives. See the section on wepay.yml
100
106
 
101
107
  When you include WepayRails::Payments, you get the controller actions you need. For instance, initialize_wepay_access_token(auth_code)
@@ -104,10 +110,24 @@ which completes the Oauth2 handshake with Wepay and get's the access token for f
104
110
  Finally, your checkout controller (or some controller that will interact with the Wepay API):
105
111
 
106
112
  class Purchase::CheckoutController < Purchase::PurchaseController
107
- before_filter :authenticate_account!
113
+ before_filter :authenticate_account! # I am using devise - this line depends on your authentication scheme
114
+
115
+ # PLEASE READ
116
+ # Notes: (By the way, I am looking into putting most of this heavy lifting into the actual wepay-rails gem
117
+ # it's self - stay tuned for that)
118
+ # I am saving the wepay_auth_code in my Profile model. Somewhere in my rails app, I have a method called
119
+ # current_profile which I use to return the Profile object of my user - this is why I can use current_profile.wepay_auth_code
120
+ # please dress this up to work for your application.
121
+
122
+ # Please pay attention to the flow here though (Note, I am going to find a way to move most of this pain to wepay-rails - stay tuned):
123
+ # Step 1: check and see if we have saved a wepay_auth_code for the customer. If not, redirect them to wepay to get one
124
+ # Step 2: check to see if we have a wepay access token to use for Oauth Communications. If not, go get one
125
+ # Step 3: now do a checkout using the method init_checkout_and_send_user_to_wepay. When they are done paying you, they will be redirected
126
+ # back to your application - you will set the location they will be redirected back to using the redirect_uri directive
127
+ # either here - or in wepay.yml. Using it here overrides wepay.yml.
108
128
 
109
129
  def index
110
- if current_profile.wepay_auth_code.present? # Semi-permanent code used to get the Oauth Access Token
130
+ if current_profile.wepay_auth_code.present? # Code used to get the Oauth Access Token
111
131
  if wepay_access_token_exists? # Temporary Oauth Access token from wepay
112
132
 
113
133
  cart = current_account.cart # EXAMPLE - get my shopping cart
@@ -125,16 +145,21 @@ Finally, your checkout controller (or some controller that will interact with th
125
145
  initialize_wepay_access_token(current_profile.wepay_auth_code) # No access token - so go get one
126
146
  end
127
147
  else
128
- redirect_to_wepay_for_auth # Customer doesn't have an auth code yet from Wepay - so go get one
148
+ redirect_to_wepay_for_auth(current_profile) # Customer doesn't have an auth code yet from Wepay - so go get one
129
149
  end
130
150
  end
131
151
  end
132
152
 
133
153
  The controller I use for finalizing the checkout - AKA - the controller the user is sent back to after his/her trip to
134
- wepay.
154
+ wepay to checkout.
135
155
  class Purchase::FinalizeController < ApplicationController
136
156
  def index
137
- Do something - the user has come back from wepay and need an acknowlegement or something.
157
+ # Do something - the user has come back from wepay and need an acknowlegement or something.
158
+ # For example - my app does something like:
159
+
160
+ cart = Cart.find_by_transaction_id(params[:txID])
161
+ # my redirect_uri included a txID so that I can look up the
162
+ # cart when the customer came back.
138
163
  end
139
164
  end
140
165
 
@@ -152,7 +177,9 @@ Configuration is done through config/wepay.yml:
152
177
  production:
153
178
  client_id: <your client_id from wepay>
154
179
  client_secret: <your client_secret from wepay>
155
- authorize_redirect_uri: "http://www.example.com/wepay/authorize"
180
+ auth_code_location: MyModel.wepay_auth_code
181
+ redirect_uri: "http://www.example.com/wepay/authorize"
182
+ after_authorize_redirect_uri: "http://www.example.com/purchase/checkout"
156
183
  scope: ['refund_payments','collect_payments','view_balance','view_user']
157
184
  #wepay_api_uri: "https://api.wepay.com"
158
185
  wepay_api_uri: "https://stage.wepay.com"
@@ -170,7 +197,9 @@ Configuration is done through config/wepay.yml:
170
197
  development:
171
198
  client_id: <your client_id from wepay>
172
199
  client_secret: <your client_secret from wepay>
200
+ auth_code_location: MyModel.wepay_auth_code
173
201
  redirect_uri: "http://dev.example.com/wepay/authorize"
202
+ after_authorize_redirect_uri: "http://dev.example.com/purchase/checkout"
174
203
  scope: ['refund_payments','collect_payments','view_balance','view_user']
175
204
  wepay_api_uri: "https://stage.wepay.com"
176
205
  wepay_api_version: "v2"
@@ -187,12 +216,14 @@ Configuration is done through config/wepay.yml:
187
216
  test:
188
217
  client_id: <your client_id from wepay>
189
218
  client_secret: <your client_secret from wepay>
190
- redirect_uri: "http://dev.example.com/wepay/authorize"
219
+ auth_code_location: MyModel.wepay_auth_code
220
+ redirect_uri: "http://test.example.com/wepay/authorize"
221
+ after_authorize_redirect_uri: "http://test.example.com/purchase/checkout"
191
222
  scope: ['refund_payments','collect_payments','view_balance','view_user']
192
223
  wepay_api_uri: "https://stage.wepay.com"
193
224
  wepay_api_version: "v2"
194
225
  ipn_callback_uri: "http://test.example.com/wepay/ipn"
195
- checkout_redirect_uri: "http://dev.example.com/purchase/finalize"
226
+ checkout_redirect_uri: "http://test.example.com/purchase/finalize"
196
227
  fee_payer: Payee
197
228
  checkout_type: GOODS
198
229
  charge_tax: false
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.83
1
+ 0.1.84
@@ -0,0 +1,12 @@
1
+ class Wepay::AuthorizeController < Wepay::ApplicationController
2
+ def index
3
+ ref_id = params[:refID]
4
+ wepayable = @wepayable_class.find(:conditions => ["#{@wepayable_column} = ?", ref_id])
5
+ rescue => e
6
+ raise AuthorizationError.new("WepayRails was unable to find the record to save the auth code to. : #{e.message}") unless wepayable.present?
7
+
8
+ wepayable.update_attribute(@wepayable_column.to_sym, params[:code])
9
+
10
+ redirect_to @wepay_config[:after_authorize_redirect_uri]
11
+ end
12
+ end
data/config/routes.rb CHANGED
@@ -2,5 +2,6 @@
2
2
  Rails.application.routes.draw do |map|
3
3
  namespace :wepay do
4
4
  resources :ipn
5
+ resources :authorize
5
6
  end
6
7
  end
@@ -1,7 +1,9 @@
1
1
  production:
2
2
  client_id: <your client_id from wepay>
3
3
  client_secret: <your client_secret from wepay>
4
- authorize_redirect_uri: "http://www.example.com/wepay/authorize"
4
+ auth_code_location: MyModel.wepay_auth_code
5
+ redirect_uri: "http://www.example.com/wepay/authorize"
6
+ after_authorize_redirect_uri: "http://www.example.com/purchase/checkout"
5
7
  scope: ['refund_payments','collect_payments','view_balance','view_user']
6
8
  #wepay_api_uri: "https://api.wepay.com"
7
9
  wepay_api_uri: "https://stage.wepay.com"
@@ -19,7 +21,9 @@ production:
19
21
  development:
20
22
  client_id: <your client_id from wepay>
21
23
  client_secret: <your client_secret from wepay>
24
+ auth_code_location: MyModel.wepay_auth_code
22
25
  redirect_uri: "http://dev.noisebytes.com/wepay/authorize"
26
+ after_authorize_redirect_uri: "http://www.example.com/purchase/checkout"
23
27
  scope: ['refund_payments','collect_payments','view_balance','view_user']
24
28
  wepay_api_uri: "https://stage.wepay.com"
25
29
  wepay_api_version: "v2"
@@ -36,7 +40,9 @@ development:
36
40
  test:
37
41
  client_id: <your client_id from wepay>
38
42
  client_secret: <your client_secret from wepay>
43
+ auth_code_location: MyModel.wepay_auth_code
39
44
  redirect_uri: "http://dev.noisebytes.com/wepay/authorize"
45
+ after_authorize_redirect_uri: "http://www.example.com/purchase/checkout"
40
46
  scope: ['refund_payments','collect_payments','view_balance','view_user']
41
47
  wepay_api_uri: "https://stage.wepay.com"
42
48
  wepay_api_version: "v2"
@@ -2,8 +2,8 @@ module WepayRails
2
2
  module Helpers
3
3
  module ControllerHelpers
4
4
 
5
- def redirect_to_wepay_for_auth(scope=wepay_gateway.scope)
6
- redirect_to wepay_gateway.auth_code_url(scope)
5
+ def redirect_to_wepay_for_auth(wepayable_object, scope=wepay_gateway.scope)
6
+ redirect_to wepay_gateway.auth_code_url(wepayable_object, scope)
7
7
  end
8
8
 
9
9
  # @deprecated Use wepay_gateway instead of gateway
@@ -55,17 +55,17 @@ module WepayRails
55
55
  # so when this method is called. The following list of key values are pulled
56
56
  # in for you from your wepay.yml file:
57
57
  #
58
- # Note: @config is your wepay.yml as a Hash
59
- # :callback_uri => @config[:ipn_callback_uri],
60
- # :redirect_uri => @config[:checkout_redirect_uri],
61
- # :fee_payer => @config[:fee_payer],
62
- # :type => @config[:checkout_type],
63
- # :charge_tax => @config[:charge_tax] ? 1 : 0,
64
- # :app_fee => @config[:app_fee],
65
- # :auto_capture => @config[:auto_capture] ? 1 : 0,
66
- # :require_shipping => @config[:require_shipping] ? 1 : 0,
67
- # :shipping_fee => @config[:shipping_fee],
68
- # :charge_tax => @config[:charge_tax],
58
+ # Note: @wepay_config is your wepay.yml as a Hash
59
+ # :callback_uri => @wepay_config[:ipn_callback_uri],
60
+ # :redirect_uri => @wepay_config[:checkout_redirect_uri],
61
+ # :fee_payer => @wepay_config[:fee_payer],
62
+ # :type => @wepay_config[:checkout_type],
63
+ # :charge_tax => @wepay_config[:charge_tax] ? 1 : 0,
64
+ # :app_fee => @wepay_config[:app_fee],
65
+ # :auto_capture => @wepay_config[:auto_capture] ? 1 : 0,
66
+ # :require_shipping => @wepay_config[:require_shipping] ? 1 : 0,
67
+ # :shipping_fee => @wepay_config[:shipping_fee],
68
+ # :charge_tax => @wepay_config[:charge_tax],
69
69
  # :account_id => wepay_user['account_id'] # wepay-rails goes and gets this for you, but you can override it if you want to.
70
70
  #
71
71
  #
@@ -13,18 +13,21 @@ module WepayRails
13
13
  # wepayable :wepay_auth_code
14
14
  # end
15
15
  def wepayable(*args)
16
- @params = args.last if args.last.is_a?(Hash)
17
- @@wepayable_column ||= args.first.to_s
18
16
 
19
- define_method "has_#{@@wepayable_column}?" do
20
- self.send(@@wepayable_column.to_sym).present?
17
+ # @wepayable_column is initilized in the Rails::Engine now
18
+ # and pulled from the wepay.yml file
19
+ define_method "has_#{@wepayable_column}?" do
20
+ self.send(@wepayable_column.to_sym).present?
21
21
  end
22
22
 
23
- define_method "save_#{@@wepayable_column}" do |value|
24
- self.update_attribute(@@wepayable_column.to_sym, value)
23
+ define_method "save_#{@wepayable_column}" do |value|
24
+ self.update_attribute(@wepayable_column.to_sym, value)
25
25
  end
26
26
  end
27
27
 
28
+ def wepayable_column
29
+ @wepayable_column
30
+ end
28
31
  end
29
32
  end
30
33
  end
data/lib/wepay-rails.rb CHANGED
@@ -4,12 +4,20 @@ require 'helpers/controller_helpers'
4
4
  module WepayRails
5
5
 
6
6
  class Engine < Rails::Engine
7
+ # Initializers
8
+ initializer "WepayRails.initialize_wepay_rails" do |app|
9
+ yml = Rails.root.join('config', 'wepay.yml').to_s
10
+ @wepay_config = YAML.load_file(yml)[Rails.env].symbolize_keys
11
+ klass, @wepayable_column = @wepay_config[:auth_code_location].split('.')
12
+ @wepayable_class = eval(klass)
13
+ end
7
14
  end
8
15
 
9
16
  module Exceptions
10
17
  class AccessTokenError < StandardError; end
11
18
  class ExpiredTokenError < StandardError; end
12
19
  class InitializeCheckoutError < StandardError; end
20
+ class AuthorizationError < StandardError; end
13
21
  end
14
22
 
15
23
  module Payments
@@ -29,15 +37,15 @@ module WepayRails
29
37
  def initialize(*args)
30
38
  @wepay_access_token = args.first
31
39
 
32
- yml = Rails.root.join('config', 'wepay.yml').to_s
33
- @config = YAML.load_file(yml)[Rails.env].symbolize_keys
40
+ #yml = Rails.root.join('config', 'wepay.yml').to_s
41
+ #@config = YAML.load_file(yml)[Rails.env].symbolize_keys
34
42
 
35
- @scope = @config.delete(:scope)
43
+ @scope = @wepay_config.delete(:scope)
36
44
 
37
45
  # Build the base uri
38
46
  # Default if there isn't a setting for version and/or api uri
39
- version = @config[:wepay_api_version].present? ? @config[:wepay_api_version] : "v2"
40
- api_uri = @config[:wepay_api_uri].present? ? @config[:wepay_api_uri] : "https://wepayapi.com"
47
+ version = @wepay_config[:wepay_api_version].present? ? @wepay_config[:wepay_api_version] : "v2"
48
+ api_uri = @wepay_config[:wepay_api_uri].present? ? @wepay_config[:wepay_api_uri] : "https://wepayapi.com"
41
49
 
42
50
  @base_uri = "#{api_uri}/#{version}"
43
51
  end
@@ -45,9 +53,9 @@ module WepayRails
45
53
  def access_token(auth_code)
46
54
  @wepay_auth_code = auth_code
47
55
  query = {
48
- :client_id => @config[:client_id],
49
- :client_secret => @config[:client_secret],
50
- :redirect_uri => @config[:redirect_uri],
56
+ :client_id => @wepay_config[:client_id],
57
+ :client_secret => @wepay_config[:client_secret],
58
+ :redirect_uri => @wepay_config[:redirect_uri],
51
59
  :code => auth_code
52
60
  }
53
61
  response = self.class.get("#{@base_uri}/oauth2/token", :query => query)
@@ -65,11 +73,22 @@ module WepayRails
65
73
  @wepay_access_token = json["access_token"]
66
74
  end
67
75
 
68
- # Get the auth code for the customer
76
+ # Get the auth code url that will be used to fetch the auth code for the customer
69
77
  # arguments are the redirect_uri and an array of permissions that your application needs
70
78
  # ex. ['manage_accounts','collect_payments','view_balance','view_user']
71
- def auth_code_url(permissions)
72
- params = @config.merge(:scope => permissions.join(','))
79
+ def auth_code_url(wepayable_object, permissions)
80
+ params = @wepay_config.merge(:scope => permissions.join(','))
81
+
82
+ # Initially set a reference ID to the column created for the wepayable
83
+ # so that when the redirect back from wepay happens, we can reference
84
+ # the original wepayable, and then save the new auth code into the reference ID's
85
+ # place
86
+ ref_id = Digest::SHA1.hexdigest("#{Time.now.to_i+rand(4)}")
87
+
88
+ wepayable_object.update_attribute(wepayable_object.wepayable_column.to_sym, ref_id)
89
+
90
+ params[:authorize_redirect_uri] += (params[:authorize_redirect_uri] =~ /\?/ ? "&" : "?") + "refID=#{ref_id}"
91
+ params[:authorize_redirect_uri] = CGI::escape(params[:authorize_redirect_uri])
73
92
 
74
93
  query = params.map do |k, v|
75
94
  "#{k.to_s}=#{v}"
@@ -79,7 +98,7 @@ module WepayRails
79
98
  end
80
99
 
81
100
  def token_url
82
- query = @config.map do |k, v|
101
+ query = @wepay_config.map do |k, v|
83
102
  "#{k.to_s}=#{v}"
84
103
  end.join('&')
85
104
 
@@ -107,17 +126,17 @@ module WepayRails
107
126
  # so when this method is called. The following list of key values are pulled
108
127
  # in for you from your wepay.yml file:
109
128
  #
110
- # Note: @config is your wepay.yml as a Hash
111
- # :callback_uri => @config[:ipn_callback_uri],
112
- # :redirect_uri => @config[:checkout_redirect_uri],
113
- # :fee_payer => @config[:fee_payer],
114
- # :type => @config[:checkout_type],
115
- # :charge_tax => @config[:charge_tax] ? 1 : 0,
116
- # :app_fee => @config[:app_fee],
117
- # :auto_capture => @config[:auto_capture] ? 1 : 0,
118
- # :require_shipping => @config[:require_shipping] ? 1 : 0,
119
- # :shipping_fee => @config[:shipping_fee],
120
- # :charge_tax => @config[:charge_tax],
129
+ # Note: @wepay_config is your wepay.yml as a Hash
130
+ # :callback_uri => @wepay_config[:ipn_callback_uri],
131
+ # :redirect_uri => @wepay_config[:checkout_redirect_uri],
132
+ # :fee_payer => @wepay_config[:fee_payer],
133
+ # :type => @wepay_config[:checkout_type],
134
+ # :charge_tax => @wepay_config[:charge_tax] ? 1 : 0,
135
+ # :app_fee => @wepay_config[:app_fee],
136
+ # :auto_capture => @wepay_config[:auto_capture] ? 1 : 0,
137
+ # :require_shipping => @wepay_config[:require_shipping] ? 1 : 0,
138
+ # :shipping_fee => @wepay_config[:shipping_fee],
139
+ # :charge_tax => @wepay_config[:charge_tax],
121
140
  # :account_id => wepay_user['account_id'] # wepay-rails goes and gets this for you, but you can override it if you want to.
122
141
  #
123
142
  #
@@ -139,16 +158,16 @@ module WepayRails
139
158
  # :charge_tax No A boolean value (0 or 1). If set to 1 and the account has a relevant tax entry (see /account/set_tax), then tax will be charged.
140
159
  def perform_checkout(parms)
141
160
  defaults = {
142
- :callback_uri => @config[:ipn_callback_uri],
143
- :redirect_uri => @config[:checkout_redirect_uri],
144
- :fee_payer => @config[:fee_payer],
145
- :type => @config[:checkout_type],
146
- :charge_tax => @config[:charge_tax] ? 1 : 0,
147
- :app_fee => @config[:app_fee],
148
- :auto_capture => @config[:auto_capture] ? 1 : 0,
149
- :require_shipping => @config[:require_shipping] ? 1 : 0,
150
- :shipping_fee => @config[:shipping_fee],
151
- :account_id => @config[:account_id]
161
+ :callback_uri => @wepay_config[:ipn_callback_uri],
162
+ :redirect_uri => @wepay_config[:checkout_redirect_uri],
163
+ :fee_payer => @wepay_config[:fee_payer],
164
+ :type => @wepay_config[:checkout_type],
165
+ :charge_tax => @wepay_config[:charge_tax] ? 1 : 0,
166
+ :app_fee => @wepay_config[:app_fee],
167
+ :auto_capture => @wepay_config[:auto_capture] ? 1 : 0,
168
+ :require_shipping => @wepay_config[:require_shipping] ? 1 : 0,
169
+ :shipping_fee => @wepay_config[:shipping_fee],
170
+ :account_id => @wepay_config[:account_id]
152
171
  }.merge(parms)
153
172
 
154
173
  response = self.class.get("#{@base_uri}/checkout/create", {:headers => wepay_auth_header}.merge!(:query => defaults))
data/wepay-rails.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{wepay-rails}
8
- s.version = "0.1.83"
8
+ s.version = "0.1.84"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Adam Medeiros}]
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
27
27
  "Rakefile",
28
28
  "VERSION",
29
29
  "app/controllers/wepay/application_controller.rb",
30
+ "app/controllers/wepay/authorize_controller.rb",
30
31
  "app/controllers/wepay/ipn_controller.rb",
31
32
  "config/routes.rb",
32
33
  "lib/examples/wepay.yml",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wepay-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.83
4
+ version: 0.1.84
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-09-04 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &19031220 !ruby/object:Gem::Requirement
16
+ requirement: &24170840 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *19031220
24
+ version_requirements: *24170840
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: shoulda
27
- requirement: &19030640 !ruby/object:Gem::Requirement
27
+ requirement: &24170240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *19030640
35
+ version_requirements: *24170240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &19030120 !ruby/object:Gem::Requirement
38
+ requirement: &24169500 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *19030120
46
+ version_requirements: *24169500
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &19029520 !ruby/object:Gem::Requirement
49
+ requirement: &24168940 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.6.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *19029520
57
+ version_requirements: *24168940
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rcov
60
- requirement: &19028920 !ruby/object:Gem::Requirement
60
+ requirement: &24168440 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *19028920
68
+ version_requirements: *24168440
69
69
  description: Rails gem that interfaces with the WePay API
70
70
  email: adammede@gmail.com
71
71
  executables: []
@@ -84,6 +84,7 @@ files:
84
84
  - Rakefile
85
85
  - VERSION
86
86
  - app/controllers/wepay/application_controller.rb
87
+ - app/controllers/wepay/authorize_controller.rb
87
88
  - app/controllers/wepay/ipn_controller.rb
88
89
  - config/routes.rb
89
90
  - lib/examples/wepay.yml
@@ -108,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
109
  version: '0'
109
110
  segments:
110
111
  - 0
111
- hash: -782813271623262101
112
+ hash: -3382167149595370739
112
113
  required_rubygems_version: !ruby/object:Gem::Requirement
113
114
  none: false
114
115
  requirements: