piggybak 0.6.7 → 0.6.8
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/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
|