spree_core 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/app/assets/images/credit_cards/icons/diners_club.png +0 -0
- data/app/assets/javascripts/admin/calculator.js +2 -2
- data/app/assets/javascripts/admin/checkouts/edit.js +1 -1
- data/app/assets/stylesheets/admin/admin.css.erb +5 -0
- data/app/controllers/spree/admin/adjustments_controller.rb +7 -3
- data/app/controllers/spree/admin/orders/customer_details_controller.rb +3 -2
- data/app/controllers/spree/admin/orders_controller.rb +1 -1
- data/app/controllers/spree/checkout_controller.rb +1 -1
- data/app/controllers/spree/orders_controller.rb +1 -1
- data/app/helpers/spree/base_helper.rb +2 -2
- data/app/helpers/spree/products_helper.rb +7 -3
- data/app/mailers/spree/order_mailer.rb +17 -6
- data/app/mailers/spree/shipment_mailer.rb +8 -3
- data/app/mailers/spree/test_mailer.rb +5 -0
- data/app/models/spree/adjustment.rb +1 -1
- data/app/models/spree/app_configuration.rb +3 -0
- data/app/models/spree/calculator/default_tax.rb +5 -1
- data/app/models/spree/credit_card.rb +1 -1
- data/app/models/spree/gateway.rb +3 -1
- data/app/models/spree/order.rb +2 -2
- data/app/models/spree/order/checkout.rb +4 -0
- data/app/models/spree/preferences/store.rb +4 -0
- data/app/models/spree/product.rb +1 -1
- data/app/models/spree/product/scopes.rb +17 -8
- data/app/models/spree/shipment.rb +1 -1
- data/app/models/spree/taxon.rb +5 -0
- data/app/models/spree/variant.rb +1 -1
- data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +2 -1
- data/app/views/spree/admin/general_settings/edit.html.erb +2 -2
- data/app/views/spree/admin/general_settings/show.html.erb +1 -1
- data/app/views/spree/admin/shared/_tabs.html.erb +0 -1
- data/app/views/spree/admin/taxons/edit.html.erb +1 -1
- data/app/views/spree/order_mailer/confirm_email.text.erb +4 -4
- data/app/views/spree/products/index.html.erb +1 -1
- data/app/views/spree/shared/_google_analytics.html.erb +1 -1
- data/app/views/spree/shared/_order_details.html.erb +3 -3
- data/db/migrate/20130222032153_add_order_id_index_to_shipments.rb +5 -0
- data/lib/generators/spree/dummy/templates/rails/database.yml +9 -6
- data/lib/spree/core/calculated_adjustments.rb +1 -1
- data/lib/spree/core/controller_helpers.rb +1 -1
- data/lib/spree/core/engine.rb +5 -1
- data/lib/spree/core/testing_support/preferences.rb +12 -6
- data/lib/spree/core/validators/email.rb +1 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/money.rb +19 -2
- data/lib/spree/product_filters.rb +1 -1
- metadata +45 -58
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 16d58098294c8bf04bef89c6b99752f87946df0b
|
4
|
+
data.tar.gz: c4e00836ddc65709877257f29d4fd0f6f5bac591
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 35394a723cf2c3d50c612fcc83616b966af998b53e26feaefb975045855baf63c7de18052bc0d4ba99185cd6d5943ef1c608af14588af091865a3bcc27353831
|
7
|
+
data.tar.gz: 9bff71faf94f7bcf0c192454e66327afe83a5db91368069d5b1e363837a73372bb2b7f7a6201e15e9b6090593e507a370397cabd6b113041ceedbcdde4c82526
|
Binary file
|
@@ -6,11 +6,11 @@ $(function() {
|
|
6
6
|
if (calculator_select.attr('value') == original_calc_type) {
|
7
7
|
$('div.calculator-settings').show();
|
8
8
|
$('div#calculator-settings-warning').hide();
|
9
|
-
$('.calculator-settings
|
9
|
+
$('.calculator-settings').find('input,textarea').prop("disabled", false);
|
10
10
|
} else {
|
11
11
|
$('div.calculator-settings').hide();
|
12
12
|
$('div#calculator-settings-warning').show();
|
13
|
-
$('.calculator-settings
|
13
|
+
$('.calculator-settings').find('input,textarea').prop("disabled", true);
|
14
14
|
}
|
15
15
|
});
|
16
16
|
})
|
@@ -49,7 +49,7 @@ $(document).ready(function(){
|
|
49
49
|
source: function(request, response) {
|
50
50
|
var params = { q: $('#customer_search').val(),
|
51
51
|
authenticity_token: AUTH_TOKEN }
|
52
|
-
$.get(Spree.routes.user_search + '
|
52
|
+
$.get(Spree.routes.user_search + '?' + jQuery.param(params), function(data) {
|
53
53
|
result = prep_user_autocomplete_data(data)
|
54
54
|
response(result);
|
55
55
|
});
|
@@ -25,14 +25,15 @@ module Spree
|
|
25
25
|
@order.user_id = params[:user_id]
|
26
26
|
@order.user true
|
27
27
|
end
|
28
|
-
|
29
|
-
@order.
|
28
|
+
|
29
|
+
while @order.next; end
|
30
30
|
flash[:notice] = t('customer_details_updated')
|
31
31
|
redirect_to edit_admin_order_shipment_path(@order, @order.shipment)
|
32
32
|
else
|
33
33
|
flash[:error] = t('errors.messages.no_shipping_methods_available')
|
34
34
|
redirect_to admin_order_customer_path(@order)
|
35
35
|
end
|
36
|
+
|
36
37
|
else
|
37
38
|
render :action => :edit
|
38
39
|
end
|
@@ -102,7 +102,7 @@ module Spree
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def resend
|
105
|
-
OrderMailer.confirm_email(@order, true).deliver
|
105
|
+
OrderMailer.confirm_email(@order.id, true).deliver
|
106
106
|
flash.notice = t(:order_email_resent)
|
107
107
|
|
108
108
|
respond_with(@order) { |format| format.html { redirect_to :back } }
|
@@ -76,7 +76,7 @@ module Spree
|
|
76
76
|
|
77
77
|
def object_params
|
78
78
|
# For payment step, filter order parameters to produce the expected nested attributes for a single payment and its source, discarding attributes for payment methods other than the one selected
|
79
|
-
if @order.payment?
|
79
|
+
if @order.has_checkout_step?("payment") && @order.payment?
|
80
80
|
if params[:payment_source].present? && source_params = params.delete(:payment_source)[params[:order][:payments_attributes].first[:payment_method_id].underscore]
|
81
81
|
params[:order][:payments_attributes].first[:source_attributes] = source_params
|
82
82
|
end
|
@@ -64,7 +64,7 @@ module Spree
|
|
64
64
|
end
|
65
65
|
|
66
66
|
if meta[:description].blank? && object.kind_of?(Spree::Product)
|
67
|
-
meta[:description] = strip_tags(object.description)
|
67
|
+
meta[:description] = strip_tags(truncate(object.description, :length => 160, :separator => ' '))
|
68
68
|
end
|
69
69
|
|
70
70
|
meta.reverse_merge!({
|
@@ -165,7 +165,7 @@ module Spree
|
|
165
165
|
end
|
166
166
|
|
167
167
|
def money(amount)
|
168
|
-
Spree::Money.new(amount)
|
168
|
+
Spree::Money.new(amount).to_html
|
169
169
|
end
|
170
170
|
|
171
171
|
def method_missing(method_name, *args, &block)
|
@@ -6,15 +6,19 @@ module Spree
|
|
6
6
|
diff = variant.price - variant.product.price
|
7
7
|
return nil if diff == 0
|
8
8
|
if diff > 0
|
9
|
-
"(#{t(:add)}: #{Spree::Money.new(diff.abs)})"
|
9
|
+
"(#{t(:add)}: #{Spree::Money.new(diff.abs).to_html})".html_safe
|
10
10
|
else
|
11
|
-
"(#{t(:subtract)}: #{Spree::Money.new(diff.abs)})"
|
11
|
+
"(#{t(:subtract)}: #{Spree::Money.new(diff.abs).to_html})".html_safe
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
# converts line breaks in product description into <p> tags (for html display purposes)
|
16
16
|
def product_description(product)
|
17
|
-
|
17
|
+
if Spree::Config[:show_raw_product_description]
|
18
|
+
raw(product.description)
|
19
|
+
else
|
20
|
+
raw(product.description.gsub(/(.*?)\r?\n\r?\n/m, '<p>\1</p>'))
|
21
|
+
end
|
18
22
|
end
|
19
23
|
|
20
24
|
def line_item_description(variant)
|
@@ -2,20 +2,31 @@ module Spree
|
|
2
2
|
class OrderMailer < ActionMailer::Base
|
3
3
|
helper 'spree/base'
|
4
4
|
|
5
|
+
def from_address
|
6
|
+
MailMethod.current.preferred_mails_from
|
7
|
+
end
|
8
|
+
|
5
9
|
def confirm_email(order, resend = false)
|
6
|
-
|
10
|
+
find_order(order)
|
7
11
|
subject = (resend ? "[#{t(:resend).upcase}] " : '')
|
8
|
-
subject += "#{Spree::Config[:site_name]} #{t('order_mailer.confirm_email.subject')} ##{order.number}"
|
9
|
-
mail(:to => order.email,
|
12
|
+
subject += "#{Spree::Config[:site_name]} #{t('order_mailer.confirm_email.subject')} ##{@order.number}"
|
13
|
+
mail(:to => @order.email,
|
14
|
+
:from => from_address,
|
10
15
|
:subject => subject)
|
11
16
|
end
|
12
17
|
|
13
18
|
def cancel_email(order, resend = false)
|
14
|
-
|
19
|
+
find_order(order)
|
15
20
|
subject = (resend ? "[#{t(:resend).upcase}] " : '')
|
16
|
-
subject += "#{Spree::Config[:site_name]} #{t('order_mailer.cancel_email.subject')} ##{order.number}"
|
17
|
-
mail(:to => order.email,
|
21
|
+
subject += "#{Spree::Config[:site_name]} #{t('order_mailer.cancel_email.subject')} ##{@order.number}"
|
22
|
+
mail(:to => @order.email,
|
23
|
+
:from => from_address,
|
18
24
|
:subject => subject)
|
19
25
|
end
|
26
|
+
|
27
|
+
def find_order(order)
|
28
|
+
@order = order.is_a?(Spree::Order) ? order : Spree::Order.find(order)
|
29
|
+
end
|
30
|
+
|
20
31
|
end
|
21
32
|
end
|
@@ -2,11 +2,16 @@ module Spree
|
|
2
2
|
class ShipmentMailer < ActionMailer::Base
|
3
3
|
helper 'spree/base'
|
4
4
|
|
5
|
+
def from_address
|
6
|
+
MailMethod.current.preferred_mails_from
|
7
|
+
end
|
8
|
+
|
5
9
|
def shipped_email(shipment, resend = false)
|
6
|
-
@shipment = shipment
|
10
|
+
@shipment = shipment.is_a?(Spree::Shipment) ? shipment : Spree::Shipment.find(shipment)
|
7
11
|
subject = (resend ? "[#{t(:resend).upcase}] " : '')
|
8
|
-
subject += "#{Spree::Config[:site_name]} #{t('shipment_mailer.shipped_email.subject')} ##{shipment.order.number}"
|
9
|
-
mail(:to => shipment.order.email,
|
12
|
+
subject += "#{Spree::Config[:site_name]} #{t('shipment_mailer.shipped_email.subject')} ##{@shipment.order.number}"
|
13
|
+
mail(:to => @shipment.order.email,
|
14
|
+
:from => from_address,
|
10
15
|
:subject => subject)
|
11
16
|
end
|
12
17
|
end
|
@@ -1,9 +1,14 @@
|
|
1
1
|
module Spree
|
2
2
|
class TestMailer < ActionMailer::Base
|
3
|
+
def from_address
|
4
|
+
MailMethod.current.preferred_mails_from
|
5
|
+
end
|
6
|
+
|
3
7
|
def test_email(mail_method, user)
|
4
8
|
@mail_method = mail_method
|
5
9
|
subject = "#{Spree::Config[:site_name]} #{t('test_mailer.test_email.subject')}"
|
6
10
|
mail(:to => user.email,
|
11
|
+
:from => from_address,
|
7
12
|
:subject => subject)
|
8
13
|
end
|
9
14
|
end
|
@@ -50,6 +50,8 @@ module Spree
|
|
50
50
|
preference :default_meta_keywords, :string, :default => 'spree, demo'
|
51
51
|
preference :default_seo_title, :string, :default => ''
|
52
52
|
preference :dismissed_spree_alerts, :string, :default => ''
|
53
|
+
preference :emails_sent_from, :string, :default => 'spree@example.com'
|
54
|
+
preference :hide_cents, :boolean, :default => false
|
53
55
|
preference :last_check_for_spree_alerts, :string, :default => nil
|
54
56
|
preference :layout, :string, :default => 'spree/layouts/spree_application'
|
55
57
|
preference :logo, :string, :default => 'admin/bg/spree_50.png'
|
@@ -62,6 +64,7 @@ module Spree
|
|
62
64
|
preference :shipping_instructions, :boolean, :default => false # Request instructions/info for shipping
|
63
65
|
preference :show_descendents, :boolean, :default => true
|
64
66
|
preference :show_only_complete_orders_by_default, :boolean, :default => true
|
67
|
+
preference :show_raw_product_description, :boolean, :default => false
|
65
68
|
preference :show_zero_stock_products, :boolean, :default => true
|
66
69
|
preference :site_name, :string, :default => 'Spree Demo Site'
|
67
70
|
preference :site_url, :string, :default => 'demo.spreecommerce.com'
|
@@ -33,7 +33,11 @@ module Spree
|
|
33
33
|
|
34
34
|
def compute_line_item(line_item)
|
35
35
|
if line_item.product.tax_category == rate.tax_category
|
36
|
-
|
36
|
+
if rate.included_in_price
|
37
|
+
deduced_total_by_rate(line_item.total, rate)
|
38
|
+
else
|
39
|
+
round_to_two_places(line_item.total * rate.amount)
|
40
|
+
end
|
37
41
|
else
|
38
42
|
0
|
39
43
|
end
|
data/app/models/spree/gateway.rb
CHANGED
@@ -21,7 +21,9 @@ module Spree
|
|
21
21
|
def provider
|
22
22
|
gateway_options = options
|
23
23
|
gateway_options.delete :login if gateway_options.has_key?(:login) and gateway_options[:login].nil?
|
24
|
-
|
24
|
+
if gateway_options[:server]
|
25
|
+
ActiveMerchant::Billing::Base.gateway_mode = gateway_options[:server].to_sym
|
26
|
+
end
|
25
27
|
@provider ||= provider_class.new(gateway_options)
|
26
28
|
end
|
27
29
|
|
data/app/models/spree/order.rb
CHANGED
@@ -388,7 +388,7 @@ module Spree
|
|
388
388
|
|
389
389
|
def deliver_order_confirmation_email
|
390
390
|
begin
|
391
|
-
OrderMailer.confirm_email(self).deliver
|
391
|
+
OrderMailer.confirm_email(self.id).deliver
|
392
392
|
rescue Exception => e
|
393
393
|
logger.error("#{e.class.name}: #{e.message}")
|
394
394
|
logger.error(e.backtrace * "\n")
|
@@ -637,7 +637,7 @@ module Spree
|
|
637
637
|
restock_items!
|
638
638
|
|
639
639
|
#TODO: make_shipments_pending
|
640
|
-
OrderMailer.cancel_email(self).deliver
|
640
|
+
OrderMailer.cancel_email(self.id).deliver
|
641
641
|
unless %w(partial shipped).include?(shipment_state)
|
642
642
|
self.payment_state = 'credit_owed'
|
643
643
|
end
|
data/app/models/spree/product.rb
CHANGED
@@ -64,8 +64,13 @@ module Spree
|
|
64
64
|
#
|
65
65
|
# SELECT COUNT(*) ...
|
66
66
|
add_search_scope :in_taxon do |taxon|
|
67
|
-
|
68
|
-
|
67
|
+
if ActiveRecord::Base.connection.adapter_name == "PostgreSQL"
|
68
|
+
scope = select("DISTINCT ON (spree_products.id) spree_products.*")
|
69
|
+
else
|
70
|
+
scope = select("DISTINCT(spree_products.id), spree_products.*")
|
71
|
+
end
|
72
|
+
|
73
|
+
scope.joins(:taxons).
|
69
74
|
where(Taxon.table_name => { :id => taxon.self_and_descendants.map(&:id) })
|
70
75
|
end
|
71
76
|
|
@@ -206,14 +211,18 @@ module Spree
|
|
206
211
|
group("spree_products.id").joins(:taxons).where(Taxon.arel_table[:name].eq(name))
|
207
212
|
end
|
208
213
|
|
209
|
-
|
210
|
-
|
211
|
-
|
214
|
+
# This method needs to be defined *as a method*, otherwise it will cause the
|
215
|
+
# problem shown in #1247.
|
216
|
+
def self.group_by_products_id
|
217
|
+
if (ActiveRecord::Base.connection.adapter_name == 'PostgreSQL')
|
218
|
+
# Need to check, otherwise `column_names` will fail
|
219
|
+
if table_exists?
|
220
|
+
group(column_names.map { |col_name| "#{table_name}.#{col_name}"})
|
221
|
+
end
|
222
|
+
else
|
223
|
+
group("#{self.quoted_table_name}.id")
|
212
224
|
end
|
213
|
-
else
|
214
|
-
scope :group_by_products_id, { :group => "#{self.quoted_table_name}.id" }
|
215
225
|
end
|
216
|
-
search_scopes << :group_by_products_id
|
217
226
|
|
218
227
|
private
|
219
228
|
|
data/app/models/spree/taxon.rb
CHANGED
data/app/models/spree/variant.rb
CHANGED
@@ -22,7 +22,7 @@ module Spree
|
|
22
22
|
validates :count_on_hand, :numericality => true
|
23
23
|
|
24
24
|
after_save :process_backorders
|
25
|
-
after_save :recalculate_product_on_hand
|
25
|
+
after_save :recalculate_product_on_hand
|
26
26
|
|
27
27
|
# default variant scope only lists non-deleted variants
|
28
28
|
scope :active, lambda { where(:deleted_at => nil) }
|
@@ -5,7 +5,8 @@
|
|
5
5
|
<th><%= t(:amount) %></th>
|
6
6
|
<th></th>
|
7
7
|
</tr>
|
8
|
-
|
8
|
+
|
9
|
+
<% @collection.each do |adjustment|
|
9
10
|
@edit_url = edit_admin_order_adjustment_path(@order, adjustment)
|
10
11
|
@delete_url = admin_order_adjustment_path(@order, adjustment)
|
11
12
|
%>
|
@@ -19,9 +19,9 @@
|
|
19
19
|
<p>
|
20
20
|
<strong><%= t(:currency_symbol_position) %></strong><br>
|
21
21
|
<%= radio_button_tag :currency_symbol_position, "before" %>
|
22
|
-
<%= label_tag :currency_symbol_position_before, Spree::Money.new(10, :symbol_position => "before") %><br>
|
22
|
+
<%= label_tag :currency_symbol_position_before, Spree::Money.new(10, :symbol_position => "before").to_html %><br>
|
23
23
|
<%= radio_button_tag :currency_symbol_position, "after" %>
|
24
|
-
<%= label_tag :currency_symbol_position_after, Spree::Money.new(10, :symbol_position => "after") %>
|
24
|
+
<%= label_tag :currency_symbol_position_after, Spree::Money.new(10, :symbol_position => "after").to_html %>
|
25
25
|
</p>
|
26
26
|
</fieldset>
|
27
27
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<h1><%= t(:taxon_edit) %></h1>
|
4
4
|
|
5
|
-
<%= form_for [:admin, @taxonomy, @taxon], :method => :put, :html => { :multipart => true } do |f| %>
|
5
|
+
<%= form_for [:admin, @taxonomy, @taxon], :url => admin_taxonomy_taxon_path(@taxonomy, @taxon.id), :method => :put, :html => { :multipart => true } do |f| %>
|
6
6
|
<%= render :partial => 'form', :locals => { :f => f } %>
|
7
7
|
|
8
8
|
<p class="form-buttons" data-hook="buttons">
|
@@ -6,15 +6,15 @@
|
|
6
6
|
<%= t('order_mailer.confirm_email.order_summary') %>
|
7
7
|
============================================================
|
8
8
|
<% @order.line_items.each do |item| %>
|
9
|
-
<%= item.variant.sku %> <%= raw(item.variant.product.name) %> <%= raw(item.variant.options_text) -%> (<%=item.quantity%>) @ <%=
|
9
|
+
<%= item.variant.sku %> <%= raw(item.variant.product.name) %> <%= raw(item.variant.options_text) -%> (<%=item.quantity%>) @ <%= Spree::Money.new(item.price) %> = <%= Spree::Money.new(item.price * item.quantity) %>
|
10
10
|
<% end %>
|
11
11
|
============================================================
|
12
|
-
<%= t('order_mailer.confirm_email.subtotal')
|
12
|
+
<%= t('order_mailer.confirm_email.subtotal') %> <%= Spree::Money.new @order.item_total %>
|
13
13
|
|
14
14
|
<% @order.adjustments.eligible.each do |adjustment| %>
|
15
|
-
<%= raw(adjustment.label) %> <%=
|
15
|
+
<%= raw(adjustment.label) %> <%= adjustment.display_amount %>
|
16
16
|
<% end %>
|
17
17
|
|
18
|
-
<%= t('order_mailer.confirm_email.total')
|
18
|
+
<%= t('order_mailer.confirm_email.total') %> <%= @order.display_total.to_s %>
|
19
19
|
|
20
20
|
<%= t('order_mailer.confirm_email.thanks') %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% content_for :sidebar do %>
|
2
2
|
<div data-hook="homepage_sidebar_navigation">
|
3
|
-
<% if "products" == params[:controller] && @taxon %>
|
3
|
+
<% if "spree/products" == params[:controller] && @taxon %>
|
4
4
|
<%= render :partial => 'spree/shared/filters' %>
|
5
5
|
<% else %>
|
6
6
|
<%= render :partial => 'spree/shared/taxonomies' %>
|
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
(function() {
|
34
34
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
35
|
-
ga.src =
|
35
|
+
ga.src = '//google-analytics.com/ga.js';
|
36
36
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
37
37
|
})();
|
38
38
|
<% end %>
|
@@ -48,14 +48,14 @@
|
|
48
48
|
|
49
49
|
<hr />
|
50
50
|
|
51
|
-
<table class="index columns alpha omega sixteen" data-hook="order_details">
|
51
|
+
<table id='line-items' class="index columns alpha omega sixteen" data-hook="order_details">
|
52
52
|
<col width="15%" valign="middle" halign="center">
|
53
53
|
<col width="70%" valign="middle">
|
54
54
|
<col width="5%" valign="middle" halign="center">
|
55
55
|
<col width="5%" valign="middle" halign="center">
|
56
56
|
<col width="5%" valign="middle" halign="center">
|
57
57
|
|
58
|
-
<thead
|
58
|
+
<thead data-hook>
|
59
59
|
<tr data-hook="order_details_line_items_headers">
|
60
60
|
<th colspan="2"><%= t(:item) %></th>
|
61
61
|
<th class="price"><%= t(:price) %></th>
|
@@ -64,7 +64,7 @@
|
|
64
64
|
</tr>
|
65
65
|
</thead>
|
66
66
|
|
67
|
-
<tbody
|
67
|
+
<tbody data-hook>
|
68
68
|
<% @order.line_items.each do |item| %>
|
69
69
|
<tr data-hook="order_details_line_item_row">
|
70
70
|
<td data-hook="order_item_image">
|
@@ -1,3 +1,6 @@
|
|
1
|
+
<% if agent_number = ENV['TC_AGENT_NUMBER']
|
2
|
+
database_prefix = agent_number + "_"
|
3
|
+
end %>
|
1
4
|
<% case ENV['DB']
|
2
5
|
when 'sqlite' %>
|
3
6
|
development:
|
@@ -12,33 +15,33 @@ production:
|
|
12
15
|
<% when 'mysql' %>
|
13
16
|
development:
|
14
17
|
adapter: mysql2
|
15
|
-
database: spree_development
|
18
|
+
database: <%= database_prefix %>spree_development
|
16
19
|
username:
|
17
20
|
encoding: utf8
|
18
21
|
test:
|
19
22
|
adapter: mysql2
|
20
|
-
database: spree_test
|
23
|
+
database: <%= database_prefix %>spree_test
|
21
24
|
username:
|
22
25
|
encoding: utf8
|
23
26
|
production:
|
24
27
|
adapter: mysql2
|
25
|
-
database: spree_production
|
28
|
+
database: <%= database_prefix %>spree_production
|
26
29
|
username:
|
27
30
|
encoding: utf8
|
28
31
|
<% when 'postgres' %>
|
29
32
|
development:
|
30
33
|
adapter: postgresql
|
31
|
-
database: spree_development
|
34
|
+
database: <%= database_prefix %>spree_development
|
32
35
|
username: postgres
|
33
36
|
min_messages: warning
|
34
37
|
test:
|
35
38
|
adapter: postgresql
|
36
|
-
database: spree_test
|
39
|
+
database: <%= database_prefix %>spree_test
|
37
40
|
username: postgres
|
38
41
|
min_messages: warning
|
39
42
|
production:
|
40
43
|
adapter: postgresql
|
41
|
-
database: spree_production
|
44
|
+
database: <%= database_prefix %>spree_production
|
42
45
|
username: postgres
|
43
46
|
min_messages: warning
|
44
47
|
<% else %>
|
@@ -3,7 +3,7 @@ module Spree
|
|
3
3
|
module CalculatedAdjustments
|
4
4
|
module ClassMethods
|
5
5
|
def calculated_adjustments
|
6
|
-
has_one :calculator, :as => :calculable, :dependent => :destroy
|
6
|
+
has_one :calculator, :class_name => "Spree::Calculator", :as => :calculable, :dependent => :destroy
|
7
7
|
accepts_nested_attributes_for :calculator
|
8
8
|
attr_accessible :calculator_type, :calculator_attributes
|
9
9
|
validates :calculator, :presence => true
|
@@ -26,7 +26,7 @@ module Spree
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
# can be used in views as well as controllers.
|
29
|
-
# e.g. <% title = 'This is a custom title for this view' %>
|
29
|
+
# e.g. <% self.title = 'This is a custom title for this view' %>
|
30
30
|
attr_writer :title
|
31
31
|
|
32
32
|
# proxy method to *possible* spree_current_user method
|
data/lib/spree/core/engine.rb
CHANGED
@@ -65,7 +65,11 @@ module Spree
|
|
65
65
|
|
66
66
|
# filter sensitive information during logging
|
67
67
|
initializer "spree.params.filter" do |app|
|
68
|
-
app.config.filter_parameters += [
|
68
|
+
app.config.filter_parameters += [
|
69
|
+
:password,
|
70
|
+
:password_confirmation,
|
71
|
+
:number,
|
72
|
+
:verification_value]
|
69
73
|
end
|
70
74
|
|
71
75
|
# sets the manifests / assets to be precompiled, even when initialize_on_precompile is false
|
@@ -2,17 +2,23 @@ module Spree
|
|
2
2
|
module Core
|
3
3
|
module TestingSupport
|
4
4
|
module Preferences
|
5
|
-
|
6
|
-
|
5
|
+
def reset_spree_preferences(&config_block)
|
6
|
+
Spree::Preferences::Store.instance.persistence = false
|
7
|
+
Spree::Preferences::Store.instance.clear_cache
|
8
|
+
|
9
|
+
configure_spree_preferences &config_block if block_given?
|
10
|
+
end
|
11
|
+
|
12
|
+
# The preference cache is cleared before each test, so the
|
13
|
+
# default values will be used. You can define preferences
|
14
|
+
# for your spec with:
|
7
15
|
#
|
8
|
-
#
|
16
|
+
# configure_spree_preferences do |config|
|
9
17
|
# config.site_name = "my fancy pants store"
|
10
18
|
# end
|
11
19
|
#
|
12
|
-
def
|
13
|
-
Spree::Preferences::Store.instance.persistence = false
|
20
|
+
def configure_spree_preferences
|
14
21
|
config = Rails.application.config.spree.preferences
|
15
|
-
config.reset
|
16
22
|
yield(config) if block_given?
|
17
23
|
end
|
18
24
|
|
@@ -18,6 +18,6 @@ class EmailValidator < ActiveModel::EachValidator
|
|
18
18
|
rescue Exception => e
|
19
19
|
r = false
|
20
20
|
end
|
21
|
-
record.errors
|
21
|
+
record.errors.add(attribute, :invalid, {:value => value}.merge!(options)) unless r
|
22
22
|
end
|
23
23
|
end
|
data/lib/spree/core/version.rb
CHANGED
data/lib/spree/money.rb
CHANGED
@@ -2,11 +2,14 @@ require 'money'
|
|
2
2
|
|
3
3
|
module Spree
|
4
4
|
class Money
|
5
|
+
attr_reader :money
|
6
|
+
|
5
7
|
def initialize(amount, options={})
|
6
|
-
@money = ::Money.parse([amount, Spree::Config[:currency]].join)
|
8
|
+
@money = ::Money.parse([amount, (options[:currency] || Spree::Config[:currency])].join)
|
7
9
|
@options = {}
|
8
|
-
@options[:with_currency] =
|
10
|
+
@options[:with_currency] = Spree::Config[:display_currency]
|
9
11
|
@options[:symbol_position] = Spree::Config[:currency_symbol_position].to_sym
|
12
|
+
@options[:no_cents] = Spree::Config[:hide_cents]
|
10
13
|
@options.merge!(options)
|
11
14
|
# Must be a symbol because the Money gem doesn't do the conversion
|
12
15
|
@options[:symbol_position] = @options[:symbol_position].to_sym
|
@@ -15,5 +18,19 @@ module Spree
|
|
15
18
|
def to_s
|
16
19
|
@money.format(@options)
|
17
20
|
end
|
21
|
+
|
22
|
+
def to_html(options = { :html => true })
|
23
|
+
output = @money.format(@options.merge(options))
|
24
|
+
if options[:html]
|
25
|
+
# 1) prevent blank, breaking spaces
|
26
|
+
# 2) prevent escaping of HTML character entities
|
27
|
+
output = output.gsub(" ", " ").html_safe
|
28
|
+
end
|
29
|
+
output
|
30
|
+
end
|
31
|
+
|
32
|
+
def ==(obj)
|
33
|
+
@money == obj.money
|
34
|
+
end
|
18
35
|
end
|
19
36
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Sean Schofield
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-06-12 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: acts_as_list
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - '='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - '='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: awesome_nested_set
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - '='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - '='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: jquery-rails
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: select2-rails
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: select2-rails
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: highline
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - '='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - '='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: state_machine
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - '='
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - '='
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: ffaker
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ~>
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,7 +118,6 @@ dependencies:
|
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ~>
|
140
123
|
- !ruby/object:Gem::Version
|
@@ -142,7 +125,6 @@ dependencies:
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: paperclip
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - ~>
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - ~>
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,7 +139,6 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: aws-sdk
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - ~>
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :runtime
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - ~>
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,55 +153,62 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: ransack
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
|
-
- -
|
157
|
+
- - '='
|
180
158
|
- !ruby/object:Gem::Version
|
181
159
|
version: 0.7.2
|
182
160
|
type: :runtime
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
|
-
- -
|
164
|
+
- - '='
|
188
165
|
- !ruby/object:Gem::Version
|
189
166
|
version: 0.7.2
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: activemerchant
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
171
|
- - ~>
|
196
172
|
- !ruby/object:Gem::Version
|
197
|
-
version: 1.
|
173
|
+
version: '1.31'
|
198
174
|
type: :runtime
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
178
|
- - ~>
|
204
179
|
- !ruby/object:Gem::Version
|
205
|
-
version: 1.
|
180
|
+
version: '1.31'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: json
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - '>='
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 1.5.5
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - '>='
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 1.5.5
|
206
195
|
- !ruby/object:Gem::Dependency
|
207
196
|
name: rails
|
208
197
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
198
|
requirements:
|
211
199
|
- - ~>
|
212
200
|
- !ruby/object:Gem::Version
|
213
|
-
version: 3.2.
|
201
|
+
version: 3.2.13
|
214
202
|
type: :runtime
|
215
203
|
prerelease: false
|
216
204
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
205
|
requirements:
|
219
206
|
- - ~>
|
220
207
|
- !ruby/object:Gem::Version
|
221
|
-
version: 3.2.
|
208
|
+
version: 3.2.13
|
222
209
|
- !ruby/object:Gem::Dependency
|
223
210
|
name: kaminari
|
224
211
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
212
|
requirements:
|
227
213
|
- - '='
|
228
214
|
- !ruby/object:Gem::Version
|
@@ -230,7 +216,6 @@ dependencies:
|
|
230
216
|
type: :runtime
|
231
217
|
prerelease: false
|
232
218
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
219
|
requirements:
|
235
220
|
- - '='
|
236
221
|
- !ruby/object:Gem::Version
|
@@ -238,23 +223,20 @@ dependencies:
|
|
238
223
|
- !ruby/object:Gem::Dependency
|
239
224
|
name: deface
|
240
225
|
requirement: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
226
|
requirements:
|
243
|
-
- -
|
227
|
+
- - '>='
|
244
228
|
- !ruby/object:Gem::Version
|
245
229
|
version: 0.9.0
|
246
230
|
type: :runtime
|
247
231
|
prerelease: false
|
248
232
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
-
none: false
|
250
233
|
requirements:
|
251
|
-
- -
|
234
|
+
- - '>='
|
252
235
|
- !ruby/object:Gem::Version
|
253
236
|
version: 0.9.0
|
254
237
|
- !ruby/object:Gem::Dependency
|
255
238
|
name: stringex
|
256
239
|
requirement: !ruby/object:Gem::Requirement
|
257
|
-
none: false
|
258
240
|
requirements:
|
259
241
|
- - ~>
|
260
242
|
- !ruby/object:Gem::Version
|
@@ -262,7 +244,6 @@ dependencies:
|
|
262
244
|
type: :runtime
|
263
245
|
prerelease: false
|
264
246
|
version_requirements: !ruby/object:Gem::Requirement
|
265
|
-
none: false
|
266
247
|
requirements:
|
267
248
|
- - ~>
|
268
249
|
- !ruby/object:Gem::Version
|
@@ -270,7 +251,6 @@ dependencies:
|
|
270
251
|
- !ruby/object:Gem::Dependency
|
271
252
|
name: cancan
|
272
253
|
requirement: !ruby/object:Gem::Requirement
|
273
|
-
none: false
|
274
254
|
requirements:
|
275
255
|
- - '='
|
276
256
|
- !ruby/object:Gem::Version
|
@@ -278,7 +258,6 @@ dependencies:
|
|
278
258
|
type: :runtime
|
279
259
|
prerelease: false
|
280
260
|
version_requirements: !ruby/object:Gem::Requirement
|
281
|
-
none: false
|
282
261
|
requirements:
|
283
262
|
- - '='
|
284
263
|
- !ruby/object:Gem::Version
|
@@ -286,7 +265,6 @@ dependencies:
|
|
286
265
|
- !ruby/object:Gem::Dependency
|
287
266
|
name: money
|
288
267
|
requirement: !ruby/object:Gem::Requirement
|
289
|
-
none: false
|
290
268
|
requirements:
|
291
269
|
- - '='
|
292
270
|
- !ruby/object:Gem::Version
|
@@ -294,7 +272,6 @@ dependencies:
|
|
294
272
|
type: :runtime
|
295
273
|
prerelease: false
|
296
274
|
version_requirements: !ruby/object:Gem::Requirement
|
297
|
-
none: false
|
298
275
|
requirements:
|
299
276
|
- - '='
|
300
277
|
- !ruby/object:Gem::Version
|
@@ -302,7 +279,6 @@ dependencies:
|
|
302
279
|
- !ruby/object:Gem::Dependency
|
303
280
|
name: rabl
|
304
281
|
requirement: !ruby/object:Gem::Requirement
|
305
|
-
none: false
|
306
282
|
requirements:
|
307
283
|
- - '='
|
308
284
|
- !ruby/object:Gem::Version
|
@@ -310,11 +286,24 @@ dependencies:
|
|
310
286
|
type: :runtime
|
311
287
|
prerelease: false
|
312
288
|
version_requirements: !ruby/object:Gem::Requirement
|
313
|
-
none: false
|
314
289
|
requirements:
|
315
290
|
- - '='
|
316
291
|
- !ruby/object:Gem::Version
|
317
292
|
version: 0.7.2
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: truncate_html
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ~>
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: 0.5.5
|
300
|
+
type: :runtime
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ~>
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: 0.5.5
|
318
307
|
description: Required dependency for Spree
|
319
308
|
email: sean@spreecommerce.com
|
320
309
|
executables: []
|
@@ -408,6 +397,7 @@ files:
|
|
408
397
|
- app/assets/images/credit_cards/icons/american_express.png
|
409
398
|
- app/assets/images/credit_cards/icons/cirrus.png
|
410
399
|
- app/assets/images/credit_cards/icons/delta.png
|
400
|
+
- app/assets/images/credit_cards/icons/diners_club.png
|
411
401
|
- app/assets/images/credit_cards/icons/dinersclub.png
|
412
402
|
- app/assets/images/credit_cards/icons/directdebit.png
|
413
403
|
- app/assets/images/credit_cards/icons/discover.png
|
@@ -1035,6 +1025,7 @@ files:
|
|
1035
1025
|
- db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb
|
1036
1026
|
- db/migrate/20121124203911_add_position_to_taxonomies.rb
|
1037
1027
|
- db/migrate/20130203232234_add_identifier_to_spree_payments.rb
|
1028
|
+
- db/migrate/20130222032153_add_order_id_index_to_shipments.rb
|
1038
1029
|
- db/seeds.rb
|
1039
1030
|
- vendor/assets/images/datepicker/cal.gif
|
1040
1031
|
- vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png
|
@@ -1117,30 +1108,26 @@ files:
|
|
1117
1108
|
homepage: http://spreecommerce.com
|
1118
1109
|
licenses:
|
1119
1110
|
- BSD-3
|
1111
|
+
metadata: {}
|
1120
1112
|
post_install_message:
|
1121
1113
|
rdoc_options: []
|
1122
1114
|
require_paths:
|
1123
1115
|
- lib
|
1124
1116
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1125
|
-
none: false
|
1126
1117
|
requirements:
|
1127
|
-
- -
|
1118
|
+
- - '>='
|
1128
1119
|
- !ruby/object:Gem::Version
|
1129
1120
|
version: 1.8.7
|
1130
1121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1131
|
-
none: false
|
1132
1122
|
requirements:
|
1133
|
-
- -
|
1123
|
+
- - '>='
|
1134
1124
|
- !ruby/object:Gem::Version
|
1135
1125
|
version: '0'
|
1136
|
-
segments:
|
1137
|
-
- 0
|
1138
|
-
hash: -97604365585348825
|
1139
1126
|
requirements:
|
1140
1127
|
- none
|
1141
1128
|
rubyforge_project: spree_core
|
1142
|
-
rubygems_version:
|
1129
|
+
rubygems_version: 2.0.0
|
1143
1130
|
signing_key:
|
1144
|
-
specification_version:
|
1131
|
+
specification_version: 4
|
1145
1132
|
summary: Core e-commerce functionality for the Spree project.
|
1146
1133
|
test_files: []
|