spree_core 1.2.4 → 1.2.5
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 +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: []
|