shoppe 1.1.1 → 1.1.2
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.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/app/assets/stylesheets/shoppe/application.scss +15 -4
- data/app/controllers/shoppe/application_controller.rb +2 -2
- data/app/controllers/shoppe/customers_controller.rb +10 -12
- data/app/models/shoppe/address.rb +14 -14
- data/app/models/shoppe/attachment.rb +9 -9
- data/app/models/shoppe/country.rb +14 -14
- data/app/models/shoppe/customer.rb +11 -8
- data/app/models/shoppe/delivery_service.rb +10 -10
- data/app/models/shoppe/delivery_service_price.rb +15 -15
- data/app/models/shoppe/order.rb +12 -9
- data/app/models/shoppe/order/actions.rb +15 -15
- data/app/models/shoppe/order/billing.rb +10 -10
- data/app/models/shoppe/order/delivery.rb +13 -13
- data/app/models/shoppe/order/states.rb +20 -20
- data/app/models/shoppe/order_item.rb +10 -10
- data/app/models/shoppe/payment.rb +7 -7
- data/app/models/shoppe/product.rb +24 -24
- data/app/models/shoppe/product/product_attributes.rb +5 -5
- data/app/models/shoppe/product/variants.rb +3 -3
- data/app/models/shoppe/product_attribute.rb +20 -20
- data/app/models/shoppe/product_category.rb +6 -6
- data/app/models/shoppe/setting.rb +13 -13
- data/app/models/shoppe/stock_level_adjustment.rb +5 -5
- data/app/models/shoppe/tax_rate.rb +16 -16
- data/app/models/shoppe/user.rb +13 -13
- data/app/uploaders/shoppe/attachment_uploader.rb +0 -1
- data/app/views/shoppe/customers/_addresses.html.haml +5 -5
- data/app/views/shoppe/customers/_form.html.haml +17 -10
- data/app/views/shoppe/customers/_search_form.html.haml +5 -5
- data/app/views/shoppe/customers/edit.html.haml +4 -4
- data/app/views/shoppe/customers/index.html.haml +11 -11
- data/app/views/shoppe/customers/new.html.haml +3 -3
- data/app/views/shoppe/customers/show.html.haml +11 -12
- data/app/views/shoppe/product_categories/index.html.haml +3 -2
- data/app/views/shoppe/variants/form.html.haml +0 -1
- data/config/locales/de.yml +58 -7
- data/config/locales/en.yml +38 -4
- data/config/locales/es-US.yml +656 -0
- data/config/locales/es.yml +372 -281
- data/config/locales/ru.yml +781 -0
- data/db/seeds.rb +113 -98
- data/lib/shoppe.rb +10 -10
- data/lib/shoppe/version.rb +1 -1
- metadata +22 -6
data/db/seeds.rb
CHANGED
@@ -1,137 +1,152 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
3
|
# tax rates
|
4
|
-
tax_rate = Shoppe::TaxRate.
|
5
|
-
exempt_tax = Shoppe::TaxRate.create!(:name => "Exempt VAT", :rate => 0.0)
|
4
|
+
tax_rate = Shoppe::TaxRate.where(name: 'Standard VAT', rate: 20.0).first_or_create
|
6
5
|
|
7
6
|
# delivery services
|
7
|
+
ds = Shoppe::DeliveryService.new(name: 'Next Day Delivery', code: 'ND16', courier: 'AnyCourier', tracking_url: 'http://trackingurl.com/track/{{consignment_number}}')
|
8
|
+
if ds.save
|
9
|
+
ds.delivery_service_prices.create(code: 'Parcel', min_weight: 0, max_weight: 1, price: 5.0, cost_price: 4.50, tax_rate: tax_rate)
|
10
|
+
ds.delivery_service_prices.create(code: 'Parcel', min_weight: 1, max_weight: 5, price: 8.0, cost_price: 7.5, tax_rate: tax_rate)
|
11
|
+
ds.delivery_service_prices.create(code: 'Parcel', min_weight: 5, max_weight: 20, price: 10.0, cost_price: 9.50, tax_rate: tax_rate)
|
12
|
+
end
|
8
13
|
|
9
|
-
ds = Shoppe::DeliveryService.
|
10
|
-
ds.
|
11
|
-
ds.delivery_service_prices.create
|
12
|
-
ds.delivery_service_prices.create
|
13
|
-
|
14
|
-
|
15
|
-
ds.delivery_service_prices.create!(:code => 'Parcel', :min_weight => 0, :max_weight => 1, :price => 27.0, :cost_price => 24.00, :tax_rate => tax_rate)
|
16
|
-
ds.delivery_service_prices.create!(:code => 'Parcel', :min_weight => 1, :max_weight => 5, :price => 29.0, :cost_price => 20.00, :tax_rate => tax_rate)
|
17
|
-
ds.delivery_service_prices.create!(:code => 'Parcel', :min_weight => 5, :max_weight => 20, :price => 37.0, :cost_price => 32.00,:tax_rate => tax_rate)
|
14
|
+
ds = Shoppe::DeliveryService.new(name: 'Saturday Delivery', code: 'NDSA16', courier: 'AnyCourier', tracking_url: 'http://trackingurl.com/track/{{consignment_number}}')
|
15
|
+
if ds.save
|
16
|
+
ds.delivery_service_prices.create(code: 'Parcel', min_weight: 0, max_weight: 1, price: 27.0, cost_price: 24.00, tax_rate: tax_rate)
|
17
|
+
ds.delivery_service_prices.create(code: 'Parcel', min_weight: 1, max_weight: 5, price: 29.0, cost_price: 20.00, tax_rate: tax_rate)
|
18
|
+
ds.delivery_service_prices.create(code: 'Parcel', min_weight: 5, max_weight: 20, price: 37.0, cost_price: 32.00, tax_rate: tax_rate)
|
19
|
+
end
|
18
20
|
|
19
21
|
# categories
|
20
|
-
cat1 = Shoppe::ProductCategory.
|
21
|
-
cat2 = Shoppe::ProductCategory.
|
22
|
-
cat3 = Shoppe::ProductCategory.create!(:name => 'Network Eqipment')
|
22
|
+
cat1 = Shoppe::ProductCategory.where(name: 'VoIP Phones').first_or_create
|
23
|
+
cat2 = Shoppe::ProductCategory.where(name: 'VoIP Accessories').first_or_create
|
23
24
|
|
24
25
|
def get_file(name, content_type = 'image/jpeg')
|
25
|
-
file = ActionDispatch::Http::UploadedFile.new(:
|
26
|
+
file = ActionDispatch::Http::UploadedFile.new(tempfile: File.open(File.join(Shoppe.root, 'db', 'seeds_data', name), 'rb'))
|
26
27
|
file.original_filename = name
|
27
28
|
file.content_type = content_type
|
28
29
|
file
|
29
30
|
end
|
30
31
|
|
31
|
-
lorem = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
|
32
|
+
lorem = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
|
33
|
+
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
34
|
+
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
35
|
+
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
36
|
+
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
37
|
+
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
38
|
+
culpa qui officia deserunt mollit anim id est laborum.'
|
32
39
|
|
33
|
-
pro = Shoppe::Product.new(:
|
40
|
+
pro = Shoppe::Product.new(name: 'Yealink T20P', sku: 'YL-SIP-T20P', description: lorem, short_description: 'If cheap & cheerful is what you’re after, the Yealink T20P is what you’re looking for.', weight: 1.119, price: 54.99, cost_price: 44.99, tax_rate: tax_rate, featured: true)
|
34
41
|
pro.product_category_ids = cat1.id
|
35
42
|
pro.default_image_file = get_file('t20p.jpg')
|
36
|
-
pro.save
|
37
|
-
pro.stock_level_adjustments.create(:
|
38
|
-
pro.product_attributes.create
|
39
|
-
pro.product_attributes.create
|
40
|
-
pro.product_attributes.create
|
41
|
-
pro.product_attributes.create
|
42
|
-
pro.product_attributes.create
|
43
|
-
pro.product_attributes.create
|
44
|
-
|
45
|
-
|
43
|
+
if pro.save
|
44
|
+
pro.stock_level_adjustments.create(description: 'Initial Stock', adjustment: 17)
|
45
|
+
pro.product_attributes.create(key: 'Manufacturer', value: 'Yealink', position: 1)
|
46
|
+
pro.product_attributes.create(key: 'Model', value: 'T20P', position: 1)
|
47
|
+
pro.product_attributes.create(key: 'Colour', value: 'Black', position: 1)
|
48
|
+
pro.product_attributes.create(key: 'Lines', value: '3', position: 1)
|
49
|
+
pro.product_attributes.create(key: 'Colour Screen?', value: 'No', position: 1)
|
50
|
+
pro.product_attributes.create(key: 'Power over ethernet?', value: 'Yes', position: 1)
|
51
|
+
end
|
52
|
+
|
53
|
+
pro = Shoppe::Product.new(name: 'Yealink T22P', sku: 'YL-SIP-T22P', description: lorem, short_description: lorem, weight: 1.419, price: 64.99, cost_price: 56.99, tax_rate: tax_rate)
|
46
54
|
pro.product_category_ids = cat1.id
|
47
55
|
pro.default_image_file = get_file('t22p.jpg')
|
48
|
-
pro.save
|
49
|
-
pro.stock_level_adjustments.create(:
|
50
|
-
pro.product_attributes.create
|
51
|
-
pro.product_attributes.create
|
52
|
-
pro.product_attributes.create
|
53
|
-
pro.product_attributes.create
|
54
|
-
pro.product_attributes.create
|
55
|
-
pro.product_attributes.create
|
56
|
-
|
56
|
+
if pro.save
|
57
|
+
pro.stock_level_adjustments.create(description: 'Initial Stock', adjustment: 200)
|
58
|
+
pro.product_attributes.create(key: 'Manufacturer', value: 'Yealink', position: 1)
|
59
|
+
pro.product_attributes.create(key: 'Model', value: 'T22P', position: 1)
|
60
|
+
pro.product_attributes.create(key: 'Colour', value: 'Black', position: 1)
|
61
|
+
pro.product_attributes.create(key: 'Lines', value: '4', position: 1)
|
62
|
+
pro.product_attributes.create(key: 'Colour Screen?', value: 'No', position: 1)
|
63
|
+
pro.product_attributes.create(key: 'Power over ethernet?', value: 'Yes', position: 1)
|
64
|
+
end
|
57
65
|
|
58
|
-
pro = Shoppe::Product.new(:
|
66
|
+
pro = Shoppe::Product.new(name: 'Yealink T26P', sku: 'YL-SIP-T26P', description: lorem, short_description: lorem, weight: 2.23, price: 88.99, cost_price: 78.99, tax_rate: tax_rate)
|
59
67
|
pro.product_category_ids = cat1.id
|
60
68
|
pro.default_image_file = get_file('t26p.jpg')
|
61
|
-
pro.save
|
62
|
-
pro.stock_level_adjustments.create(:
|
63
|
-
pro.product_attributes.create
|
64
|
-
pro.product_attributes.create
|
65
|
-
pro.product_attributes.create
|
66
|
-
pro.product_attributes.create
|
67
|
-
pro.product_attributes.create
|
68
|
-
pro.product_attributes.create
|
69
|
-
|
70
|
-
|
69
|
+
if pro.save
|
70
|
+
pro.stock_level_adjustments.create(description: 'Initial Stock', adjustment: 100)
|
71
|
+
pro.product_attributes.create(key: 'Manufacturer', value: 'Yealink', position: 1)
|
72
|
+
pro.product_attributes.create(key: 'Model', value: 'T26P', position: 1)
|
73
|
+
pro.product_attributes.create(key: 'Colour', value: 'Black', position: 1)
|
74
|
+
pro.product_attributes.create(key: 'Lines', value: '6', position: 1)
|
75
|
+
pro.product_attributes.create(key: 'Colour Screen?', value: 'No', position: 1)
|
76
|
+
pro.product_attributes.create(key: 'Power over ethernet?', value: 'Yes', position: 1)
|
77
|
+
end
|
78
|
+
|
79
|
+
pro = Shoppe::Product.new(name: 'Yealink T46GN', sku: 'YL-SIP-T46GN', description: lorem, short_description: 'Colourful, sharp, fast & down right sexy. The Yealink T46P will make your scream', weight: 2.23, price: 149.99, cost_price: 139.99, tax_rate: tax_rate, featured: true)
|
71
80
|
pro.product_category_ids = cat1.id
|
72
81
|
pro.default_image_file = get_file('t46gn.jpg')
|
73
|
-
pro.save
|
74
|
-
pro.stock_level_adjustments.create(:
|
75
|
-
pro.product_attributes.create
|
76
|
-
pro.product_attributes.create
|
77
|
-
pro.product_attributes.create
|
78
|
-
pro.product_attributes.create
|
79
|
-
pro.product_attributes.create
|
80
|
-
pro.product_attributes.create
|
81
|
-
|
82
|
-
|
82
|
+
if pro.save
|
83
|
+
pro.stock_level_adjustments.create(description: 'Initial Stock', adjustment: 10)
|
84
|
+
pro.product_attributes.create(key: 'Manufacturer', value: 'Yealink', position: 1)
|
85
|
+
pro.product_attributes.create(key: 'Model', value: 'T46GN', position: 1)
|
86
|
+
pro.product_attributes.create(key: 'Colour', value: 'Black', position: 1)
|
87
|
+
pro.product_attributes.create(key: 'Lines', value: '4', position: 1)
|
88
|
+
pro.product_attributes.create(key: 'Colour Screen?', value: 'Yes', position: 1)
|
89
|
+
pro.product_attributes.create(key: 'Power over ethernet?', value: 'Yes', position: 1)
|
90
|
+
end
|
91
|
+
|
92
|
+
pro = Shoppe::Product.new(name: 'Snom 870', sku: 'SM-870', description: lorem, short_description: 'The perfect & beautiful VoIP phone for the discerning professional desk.', featured: true)
|
83
93
|
pro.product_category_ids = cat1.id
|
84
94
|
pro.default_image_file = get_file('snom-870-grey.jpg')
|
85
|
-
pro.save
|
86
|
-
pro.product_attributes.create
|
87
|
-
pro.product_attributes.create
|
88
|
-
pro.product_attributes.create
|
89
|
-
pro.product_attributes.create
|
90
|
-
pro.product_attributes.create
|
91
|
-
pro.product_attributes.create
|
92
|
-
|
93
|
-
v1 = pro.variants.create(:
|
94
|
-
v1.default_image_file = get_file('snom-870-grey.jpg')
|
95
|
-
v1.save
|
96
|
-
v1.stock_level_adjustments.create(:
|
97
|
-
|
98
|
-
|
99
|
-
v2 = pro.variants.create(:
|
100
|
-
v2.default_image_file = get_file('snom-870-blk.jpg')
|
101
|
-
v2.save
|
102
|
-
v2.stock_level_adjustments.create(:
|
103
|
-
|
95
|
+
if pro.save
|
96
|
+
pro.product_attributes.create(key: 'Manufacturer', value: 'Snom', position: 1)
|
97
|
+
pro.product_attributes.create(key: 'Model', value: '870', position: 1)
|
98
|
+
pro.product_attributes.create(key: 'Colour', value: 'Grey', position: 1)
|
99
|
+
pro.product_attributes.create(key: 'Lines', value: '10', position: 1)
|
100
|
+
pro.product_attributes.create(key: 'Colour Screen?', value: 'Yes', position: 1)
|
101
|
+
pro.product_attributes.create(key: 'Power over ethernet?', value: 'Yes', position: 1)
|
102
|
+
|
103
|
+
v1 = pro.variants.create(name: 'White/Grey', sku: 'SM-870-GREY', price: 230.00, cost_price: 220, tax_rate: tax_rate, weight: 1.35, default: true)
|
104
|
+
v1.default_image_file = get_file('snom-870-grey.jpg')
|
105
|
+
if v1.save
|
106
|
+
v1.stock_level_adjustments.create(description: 'Initial Stock', adjustment: 4)
|
107
|
+
end
|
108
|
+
|
109
|
+
v2 = pro.variants.create(name: 'Black', sku: 'SM-870-BLK', price: 230.00, cost_price: 220, tax_rate: tax_rate, weight: 1.35)
|
110
|
+
v2.default_image_file = get_file('snom-870-blk.jpg')
|
111
|
+
if v2.save
|
112
|
+
v2.stock_level_adjustments.create(description: 'Initial Stock', adjustment: 2)
|
113
|
+
end
|
114
|
+
end
|
104
115
|
|
105
|
-
pro = Shoppe::Product.new(:
|
116
|
+
pro = Shoppe::Product.new(name: 'Yealink Mono Headset', sku: 'YL-YHS32', description: lorem, short_description: 'If you\'re often on the phone, this headset will make your life 100x easier. Guaranteed*.', weight: 0.890, price: 34.99, cost_price: 24.99, tax_rate: tax_rate, featured: true)
|
106
117
|
pro.product_category_ids = cat2.id
|
107
118
|
pro.default_image_file = get_file('yhs32.jpg')
|
108
|
-
pro.save
|
109
|
-
pro.product_attributes.create
|
110
|
-
pro.product_attributes.create
|
119
|
+
if pro.save
|
120
|
+
pro.product_attributes.create(key: 'Manufacturer', value: 'Yealink', position: 1)
|
121
|
+
pro.product_attributes.create(key: 'Model', value: 'YHS32', position: 1)
|
122
|
+
end
|
111
123
|
|
112
|
-
pro = Shoppe::Product.new(:
|
124
|
+
pro = Shoppe::Product.new(name: 'Snom Wired Headset (MM2)', sku: 'SM-MM2', description: lorem, short_description: lorem, weight: 0.780, price: 38.00, cost_price: 30, tax_rate: tax_rate)
|
113
125
|
pro.product_category_ids = cat2.id
|
114
126
|
pro.default_image_file = get_file('snom-mm2.jpg')
|
115
|
-
pro.save
|
116
|
-
pro.stock_level_adjustments.create(:
|
117
|
-
pro.product_attributes.create
|
118
|
-
pro.product_attributes.create
|
127
|
+
if pro.save
|
128
|
+
pro.stock_level_adjustments.create(description: 'Initial Stock', adjustment: 7)
|
129
|
+
pro.product_attributes.create(key: 'Manufacturer', value: 'Snom', position: 1)
|
130
|
+
pro.product_attributes.create(key: 'Model', value: 'MM2', position: 1)
|
131
|
+
end
|
119
132
|
|
120
|
-
pro = Shoppe::Product.new(:
|
133
|
+
pro = Shoppe::Product.new(name: 'Snom Wired Headset (MM3)', sku: 'SM-MM3', description: lorem, short_description: lorem, weight: 0.780, price: 38.00, cost_price: 30, tax_rate: tax_rate)
|
121
134
|
pro.product_category_ids = cat2.id
|
122
135
|
pro.default_image_file = get_file('snom-mm2.jpg')
|
123
|
-
pro.save
|
124
|
-
pro.stock_level_adjustments.create(:
|
125
|
-
pro.product_attributes.create
|
126
|
-
pro.product_attributes.create
|
136
|
+
if pro.save
|
137
|
+
pro.stock_level_adjustments.create(description: 'Initial Stock', adjustment: 5)
|
138
|
+
pro.product_attributes.create(key: 'Manufacturer', value: 'Snom', position: 1)
|
139
|
+
pro.product_attributes.create(key: 'Model', value: 'MM3', position: 1)
|
140
|
+
end
|
127
141
|
|
128
|
-
pro = Shoppe::Product.new(:
|
142
|
+
pro = Shoppe::Product.new(name: 'Yealink W52P', sku: 'TL-SIP-W52P', description: lorem, short_description: 'Wireless SIP phones are hard to come by but this beauty from Yealink is fab.', weight: 1.280, price: 99.99, cost_price: 89.99, tax_rate: tax_rate, featured: true)
|
129
143
|
pro.product_category_ids = cat1.id
|
130
144
|
pro.default_image_file = get_file('w52p.jpg')
|
131
|
-
pro.save
|
132
|
-
pro.stock_level_adjustments.create(:
|
133
|
-
pro.product_attributes.create
|
134
|
-
pro.product_attributes.create
|
135
|
-
pro.product_attributes.create
|
136
|
-
pro.product_attributes.create
|
137
|
-
pro.product_attributes.create
|
145
|
+
if pro.save
|
146
|
+
pro.stock_level_adjustments.create(description: 'Initial Stock', adjustment: 10)
|
147
|
+
pro.product_attributes.create(key: 'Manufacturer', value: 'Snom', position: 1)
|
148
|
+
pro.product_attributes.create(key: 'Model', value: 'W52P', position: 1)
|
149
|
+
pro.product_attributes.create(key: 'Lines', value: '3', position: 1)
|
150
|
+
pro.product_attributes.create(key: 'Colour Screen?', value: 'Yes', position: 1)
|
151
|
+
pro.product_attributes.create(key: 'Power over ethernet?', value: 'No', position: 1)
|
152
|
+
end
|
data/lib/shoppe.rb
CHANGED
@@ -15,45 +15,45 @@ require 'carrierwave'
|
|
15
15
|
|
16
16
|
module Shoppe
|
17
17
|
class << self
|
18
|
-
|
19
|
-
# The path to the root of the Shoppe
|
18
|
+
|
19
|
+
# The path to the root of the Shoppe application
|
20
20
|
#
|
21
21
|
# @return [String]
|
22
22
|
def root
|
23
23
|
File.expand_path('../../', __FILE__)
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
# Shoppe settings as configured in the database
|
27
27
|
#
|
28
28
|
# @return [Shoppe::Settings]
|
29
29
|
def settings
|
30
30
|
Thread.current[:shoppe_settings] ||= Shoppe::Settings.new(Shoppe::Setting.to_hash)
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
# Clears the settings from the thread cache so they will be taken
|
34
34
|
# from the database on next access
|
35
|
-
#
|
35
|
+
#
|
36
36
|
# @return [NilClass]
|
37
37
|
def reset_settings
|
38
38
|
Thread.current[:shoppe_settings] = nil
|
39
39
|
end
|
40
|
-
|
41
|
-
# Defines a new set of settings which should be configrable from the settings page
|
40
|
+
|
41
|
+
# Defines a new set of settings which should be configrable from the settings page
|
42
42
|
# in the Shoppe UI.
|
43
43
|
def add_settings_group(group, fields = [])
|
44
44
|
settings_groups[group] ||= []
|
45
45
|
settings_groups[group] = settings_groups[group] | fields
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
# All settings groups which are available for configuration on the settings page.
|
49
49
|
#
|
50
50
|
# @return [Hash]
|
51
51
|
def settings_groups
|
52
52
|
@settings_groups ||= {}
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
end
|
58
58
|
|
59
59
|
# Start your engines.
|
data/lib/shoppe/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shoppe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Cooke
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-12-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -279,14 +279,28 @@ dependencies:
|
|
279
279
|
requirements:
|
280
280
|
- - "~>"
|
281
281
|
- !ruby/object:Gem::Version
|
282
|
-
version: 1.
|
282
|
+
version: 1.36.0
|
283
283
|
type: :runtime
|
284
284
|
prerelease: false
|
285
285
|
version_requirements: !ruby/object:Gem::Requirement
|
286
286
|
requirements:
|
287
287
|
- - "~>"
|
288
288
|
- !ruby/object:Gem::Version
|
289
|
-
version: 1.
|
289
|
+
version: 1.36.0
|
290
|
+
- !ruby/object:Gem::Dependency
|
291
|
+
name: net-ssh
|
292
|
+
requirement: !ruby/object:Gem::Requirement
|
293
|
+
requirements:
|
294
|
+
- - "~>"
|
295
|
+
- !ruby/object:Gem::Version
|
296
|
+
version: 3.0.1
|
297
|
+
type: :runtime
|
298
|
+
prerelease: false
|
299
|
+
version_requirements: !ruby/object:Gem::Requirement
|
300
|
+
requirements:
|
301
|
+
- - "~>"
|
302
|
+
- !ruby/object:Gem::Version
|
303
|
+
version: 3.0.1
|
290
304
|
- !ruby/object:Gem::Dependency
|
291
305
|
name: mini_magick
|
292
306
|
requirement: !ruby/object:Gem::Requirement
|
@@ -405,14 +419,14 @@ dependencies:
|
|
405
419
|
requirements:
|
406
420
|
- - "~>"
|
407
421
|
- !ruby/object:Gem::Version
|
408
|
-
version: '4.
|
422
|
+
version: '4.5'
|
409
423
|
type: :development
|
410
424
|
prerelease: false
|
411
425
|
version_requirements: !ruby/object:Gem::Requirement
|
412
426
|
requirements:
|
413
427
|
- - "~>"
|
414
428
|
- !ruby/object:Gem::Version
|
415
|
-
version: '4.
|
429
|
+
version: '4.5'
|
416
430
|
description: A full Rails engine providing e-commerce functionality for any Rails
|
417
431
|
4 application.
|
418
432
|
email:
|
@@ -599,9 +613,11 @@ files:
|
|
599
613
|
- app/views/shoppe/variants/index.html.haml
|
600
614
|
- config/locales/de.yml
|
601
615
|
- config/locales/en.yml
|
616
|
+
- config/locales/es-US.yml
|
602
617
|
- config/locales/es.yml
|
603
618
|
- config/locales/pl.yml
|
604
619
|
- config/locales/pt-BR.yml
|
620
|
+
- config/locales/ru.yml
|
605
621
|
- config/routes.rb
|
606
622
|
- db/countries.txt
|
607
623
|
- db/migrate/20130926094549_create_shoppe_initial_schema.rb
|