piggybak 0.6.7 → 0.6.8
Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -65,8 +65,6 @@ TODO
|
|
65
65
|
|
66
66
|
* Ensure that changes in nested addresses are recorded on order notes.
|
67
67
|
|
68
|
-
* Add admin side validation to limit 1 payment at a time
|
69
|
-
|
70
68
|
* Add/check validation to ensure sufficient inventory
|
71
69
|
|
72
70
|
* Add copy from billing above shipping address section button in admin
|
@@ -18,6 +18,7 @@ module Piggybak
|
|
18
18
|
validates_presence_of :status, :email, :phone, :total, :total_due, :created_at, :ip_address, :user_agent
|
19
19
|
|
20
20
|
after_initialize :initialize_defaults
|
21
|
+
validate :number_payments
|
21
22
|
before_save :postprocess_order, :update_status, :set_new_record
|
22
23
|
after_save :record_order_note
|
23
24
|
|
@@ -43,6 +44,16 @@ module Piggybak
|
|
43
44
|
self.disable_order_notes = false
|
44
45
|
end
|
45
46
|
|
47
|
+
def number_payments
|
48
|
+
number_payments = self.line_items.select { |li| li.new_record? && li.line_item_type == "payment" }.size
|
49
|
+
if number_payments > 1
|
50
|
+
self.errors.add(:base, "Only one payment may be created at a time.")
|
51
|
+
self.line_items.select { |li| li.new_record? && li.line_item_type == "payment" }.each do |li|
|
52
|
+
li.errors.add(:line_item_type, "Only one payment may be created at a time.")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
46
57
|
def initialize_user(user, on_post)
|
47
58
|
if user
|
48
59
|
self.user = user
|
@@ -1,6 +1,10 @@
|
|
1
1
|
class AddPriceToLineItem < ActiveRecord::Migration
|
2
2
|
def up
|
3
3
|
add_column :line_items, :price, :decimal, :null => false, :default => 0.0
|
4
|
+
|
5
|
+
change_table(:line_items) do |t|
|
6
|
+
t.timestamps
|
7
|
+
end
|
4
8
|
|
5
9
|
Piggybak::LineItem.all.each do |line_item|
|
6
10
|
line_item.update_attribute(:price, line_item.total/line_item.quantity)
|
@@ -5,9 +5,6 @@ class LineItemRearchitecture < ActiveRecord::Migration
|
|
5
5
|
rename_column :line_items, :total, :price
|
6
6
|
change_column :line_items, :sellable_id, :integer, :null => true
|
7
7
|
add_column :line_items, :sort, :integer, :null => false, :default => 0
|
8
|
-
change_table(:line_items) do |t|
|
9
|
-
t.timestamps
|
10
|
-
end
|
11
8
|
|
12
9
|
add_column :shipments, :line_item_id, :integer
|
13
10
|
add_column :payments, :line_item_id, :integer
|
data/lib/piggybak/cli.rb
CHANGED
@@ -6,19 +6,31 @@ module Piggybak
|
|
6
6
|
|
7
7
|
desc "install", "install and configure piggybak"
|
8
8
|
def install
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
if already_installed?
|
10
|
+
update
|
11
|
+
else
|
12
|
+
inject_devise
|
13
|
+
inject_rails_admin
|
14
|
+
run('bundle install')
|
15
|
+
run('rake piggybak_engine:install:migrations')
|
16
|
+
run('rake db:migrate')
|
17
|
+
run('rails generate devise:install')
|
18
|
+
run('rails generate devise User')
|
19
|
+
run('rake db:migrate')
|
20
|
+
run('rails g rails_admin:install')
|
21
|
+
run('rake db:migrate')
|
22
|
+
mount_piggybak_route
|
23
|
+
add_javascript_include_tag
|
24
|
+
say_welcome
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "update", "update piggybak"
|
29
|
+
def update
|
30
|
+
say "Piggybak install detected"
|
31
|
+
say "Updating current Piggybak install"
|
12
32
|
run('rake piggybak_engine:install:migrations')
|
13
|
-
|
14
|
-
run('rails generate devise:install')
|
15
|
-
run('rails generate devise User')
|
16
|
-
run('rake db:migrate')
|
17
|
-
run('rails g rails_admin:install')
|
18
|
-
run('rake db:migrate')
|
19
|
-
mount_piggybak_route
|
20
|
-
add_javascript_include_tag
|
21
|
-
welcome
|
33
|
+
say_upgraded
|
22
34
|
end
|
23
35
|
|
24
36
|
desc "inject_devise", "add devise"
|
@@ -34,9 +46,9 @@ module Piggybak
|
|
34
46
|
insert_into_file "Gemfile", "gem 'rails_admin'\n", :after => "gem 'devise'\n"
|
35
47
|
end
|
36
48
|
|
37
|
-
desc "mount_piggybak_route", "mount
|
49
|
+
desc "mount_piggybak_route", "mount piggybak route"
|
38
50
|
def mount_piggybak_route
|
39
|
-
insert_into_file "config/routes.rb", "\n mount Piggybak::Engine => '/checkout', :as => 'piggybak'\n", :after => "
|
51
|
+
insert_into_file "config/routes.rb", "\n mount Piggybak::Engine => '/checkout', :as => 'piggybak'\n", :after => "Application.routes.draw do\n"
|
40
52
|
end
|
41
53
|
|
42
54
|
desc "add_javascript_include_tag", "add javascript include tag to application layout"
|
@@ -71,5 +83,24 @@ module Piggybak
|
|
71
83
|
say " acts_as_sellable"
|
72
84
|
say "end"
|
73
85
|
end
|
86
|
+
|
87
|
+
desc "say_upgraded", "piggybak upgraded"
|
88
|
+
def say_upgraded
|
89
|
+
say ""
|
90
|
+
say ""
|
91
|
+
say ""
|
92
|
+
say "******************************************************************"
|
93
|
+
say "******************************************************************"
|
94
|
+
say "Piggybak Successfully Upgraded!"
|
95
|
+
say "******************************************************************"
|
96
|
+
end
|
97
|
+
|
98
|
+
private
|
99
|
+
|
100
|
+
def already_installed?
|
101
|
+
open('config/routes.rb') { |f| f.grep(/Piggybak\:\:Engine/) }.any?
|
102
|
+
end
|
103
|
+
|
104
|
+
|
74
105
|
end
|
75
106
|
end
|
data/lib/piggybak/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: piggybak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-10-
|
14
|
+
date: 2012-10-25 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
@@ -96,7 +96,8 @@ dependencies:
|
|
96
96
|
description: Mountable Ruby on Rails Ecommerce.
|
97
97
|
email:
|
98
98
|
- piggybak@endpoint.com
|
99
|
-
executables:
|
99
|
+
executables:
|
100
|
+
- piggybak
|
100
101
|
extensions: []
|
101
102
|
extra_rdoc_files: []
|
102
103
|
files:
|
@@ -210,7 +211,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
210
211
|
version: '0'
|
211
212
|
segments:
|
212
213
|
- 0
|
213
|
-
hash:
|
214
|
+
hash: 3697325078829363009
|
214
215
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
216
|
none: false
|
216
217
|
requirements:
|
@@ -219,7 +220,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
220
|
version: '0'
|
220
221
|
segments:
|
221
222
|
- 0
|
222
|
-
hash:
|
223
|
+
hash: 3697325078829363009
|
223
224
|
requirements: []
|
224
225
|
rubyforge_project:
|
225
226
|
rubygems_version: 1.8.23
|