spree_core 0.60.0.RC1 → 0.60.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/admin/line_items_controller.rb +12 -13
- data/app/controllers/admin/orders_controller.rb +11 -3
- data/app/controllers/admin/payment_methods_controller.rb +3 -3
- data/app/controllers/admin/payments_controller.rb +12 -5
- data/app/controllers/admin/product_groups_controller.rb +1 -1
- data/app/controllers/admin/product_scopes_controller.rb +12 -8
- data/app/controllers/admin/products_controller.rb +7 -7
- data/app/controllers/admin/properties_controller.rb +3 -1
- data/app/controllers/admin/prototypes_controller.rb +4 -2
- data/app/controllers/admin/reports_controller.rb +5 -1
- data/app/controllers/admin/resource_controller.rb +40 -31
- data/app/controllers/admin/return_authorizations_controller.rb +1 -1
- data/app/controllers/admin/shipments_controller.rb +7 -8
- data/app/controllers/admin/states_controller.rb +3 -3
- data/app/controllers/admin/taxonomies_controller.rb +5 -2
- data/app/controllers/admin/taxons_controller.rb +39 -18
- data/app/controllers/admin/users_controller.rb +5 -5
- data/app/controllers/admin/variants_controller.rb +4 -4
- data/app/controllers/admin/zones_controller.rb +3 -2
- data/app/controllers/checkout_controller.rb +6 -5
- data/app/controllers/content_controller.rb +8 -2
- data/app/controllers/orders_controller.rb +8 -5
- data/app/controllers/products_controller.rb +9 -5
- data/app/controllers/spree/base_controller.rb +1 -0
- data/app/controllers/taxons_controller.rb +5 -1
- data/app/helpers/admin/taxons_helper.rb +14 -1
- data/app/helpers/spree/base_helper.rb +2 -1
- data/app/models/app_configuration.rb +1 -0
- data/app/models/creditcard.rb +1 -1
- data/app/views/admin/orders/history.html.erb +1 -1
- data/app/views/admin/reports/index.html.erb +3 -3
- data/app/views/admin/taxons/available.js.erb +2 -2
- data/app/views/admin/taxons/selected.html.erb +1 -0
- data/app/views/orders/show.html.erb +10 -12
- data/app/views/products/show.html.erb +1 -1
- data/app/views/taxons/show.html.erb +1 -1
- data/config/locales/en.yml +1 -3
- data/config/routes.rb +1 -0
- data/lib/product_filters.rb +2 -2
- data/lib/spree_base.rb +1 -0
- data/lib/spree_core.rb +6 -0
- data/lib/spree_core/ext/hash.rb +75 -0
- data/lib/spree_core/spree_custom_responder.rb +29 -0
- data/lib/spree_core/spree_respond_with.rb +57 -0
- data/lib/spree_core/version.rb +1 -1
- data/public/javascripts/taxonomy.js +8 -4
- data/public/stylesheets/admin/admin-reset.css +2 -0
- metadata +20 -22
@@ -55,7 +55,8 @@ module Spree::BaseHelper
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def meta_data_tags
|
58
|
-
|
58
|
+
object = instance_variable_get('@'+controller_name.singularize)
|
59
|
+
return unless object
|
59
60
|
"".tap do |tags|
|
60
61
|
if object.respond_to?(:meta_keywords) and object.meta_keywords.present?
|
61
62
|
tags << tag('meta', :name => 'keywords', :content => object.meta_keywords) + "\n"
|
@@ -34,6 +34,7 @@ class AppConfiguration < Configuration
|
|
34
34
|
preference :cache_static_content, :boolean, :default => true
|
35
35
|
preference :use_content_controller, :boolean, :default => true
|
36
36
|
preference :allow_checkout_on_gateway_error, :boolean, :default => false
|
37
|
+
preference :select_taxons_from_tree, :boolean, :default => false # provide opportunity to select taxons from tree instead of search with autocomplete
|
37
38
|
|
38
39
|
validates :name, :presence => true, :uniqueness => true
|
39
40
|
|
data/app/models/creditcard.rb
CHANGED
@@ -96,7 +96,7 @@ class Creditcard < ActiveRecord::Base
|
|
96
96
|
gateway_error(response) unless response.success?
|
97
97
|
end
|
98
98
|
rescue ActiveMerchant::ConnectionError
|
99
|
-
gateway_error t(:unable_to_connect_to_gateway)
|
99
|
+
gateway_error I18n.t(:unable_to_connect_to_gateway)
|
100
100
|
end
|
101
101
|
|
102
102
|
def capture(payment)
|
@@ -7,11 +7,11 @@
|
|
7
7
|
<th><%= t("description") %></th>
|
8
8
|
</tr>
|
9
9
|
</thead>
|
10
|
-
<tbody>
|
10
|
+
<tbody>
|
11
11
|
<% @reports.each do |key, value| %>
|
12
12
|
<tr>
|
13
|
-
<td><%= link_to
|
14
|
-
<td><%=
|
13
|
+
<td><%= link_to value[:name], send("#{key}_admin_reports_url".to_sym) %></td>
|
14
|
+
<td><%= value[:description] %></td>
|
15
15
|
</tr>
|
16
16
|
<% end %>
|
17
17
|
</tbody>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
</tr>
|
16
16
|
</thead>
|
17
17
|
<tbody>
|
18
|
-
<% @
|
18
|
+
<% @taxons.each do |taxon| %>
|
19
19
|
<tr id="<%= dom_id(taxon, :sel) %>">
|
20
20
|
<td><%= taxon.name %></td>
|
21
21
|
<td><%= taxon_path taxon %></td>
|
@@ -26,7 +26,7 @@
|
|
26
26
|
</td>
|
27
27
|
</tr>
|
28
28
|
<% end %>
|
29
|
-
<% if @
|
29
|
+
<% if @taxons.empty? %>
|
30
30
|
<tr><td colspan="3"><%= t('no_match_found') %>.</td></tr>
|
31
31
|
<% end %>
|
32
32
|
</tbody>
|
@@ -1,16 +1,14 @@
|
|
1
|
-
<
|
2
|
-
<%= link_to t('back_to_store'), products_path %>
|
1
|
+
<h1><%= accurate_title %></h1>
|
3
2
|
|
3
|
+
<div id="order">
|
4
4
|
<% if params.has_key? :checkout_complete %>
|
5
|
-
<
|
6
|
-
<h3><%= t('thank_you_for_your_order') %></h3>
|
7
|
-
<% else %>
|
8
|
-
| <%= link_to t('my_account'), account_path if current_user%>
|
5
|
+
<h3><%= t('thank_you_for_your_order') %></h3>
|
9
6
|
<% end %>
|
10
|
-
<br/><br/>
|
11
|
-
|
12
7
|
<%= render :partial => 'shared/order_details', :locals => {:order => @order} %>
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
8
|
+
<p>
|
9
|
+
<%= link_to t('back_to_store'), root_path %>
|
10
|
+
<% unless params.has_key? :checkout_complete %>
|
11
|
+
| <%= link_to t('my_account'), account_path if current_user%>
|
12
|
+
<% end %>
|
13
|
+
</p>
|
14
|
+
</div>
|
data/config/locales/en.yml
CHANGED
@@ -822,9 +822,7 @@ en:
|
|
822
822
|
roles: Roles
|
823
823
|
sales_tax: "Sales Tax"
|
824
824
|
sales_total: "Sales Total"
|
825
|
-
|
826
|
-
sales_totals: "Sales Totals"
|
827
|
-
sales_totals_description: "Sales Total For All Orders"
|
825
|
+
sales_total_description: "Sales Total For All Orders"
|
828
826
|
save_and_continue: Save and Continue
|
829
827
|
save_preferences: Save Preferences
|
830
828
|
scope: Scope
|
data/config/routes.rb
CHANGED
data/lib/product_filters.rb
CHANGED
@@ -88,7 +88,7 @@ module ProductFilters
|
|
88
88
|
}
|
89
89
|
|
90
90
|
def ProductFilters.brand_filter
|
91
|
-
brands = ProductProperty.
|
91
|
+
brands = ProductProperty.where(:property_id => @@brand_property).map(&:value).compact.uniq
|
92
92
|
conds = Hash[*brands.map {|b| [b, "product_properties.value = '#{b}'"]}.flatten]
|
93
93
|
{ :name => "Brands",
|
94
94
|
:scope => :brand_any,
|
@@ -125,7 +125,7 @@ module ProductFilters
|
|
125
125
|
if taxon.nil?
|
126
126
|
taxon = Taxonomy.first.root
|
127
127
|
end
|
128
|
-
all_brands = ProductProperty.
|
128
|
+
all_brands = ProductProperty.where(:property_id => @@brand_property).map(&:value).uniq
|
129
129
|
scope = ProductProperty.scoped(:conditions => ["property_id = ?", @@brand_property]).
|
130
130
|
scoped(:joins => {:product => :taxons},
|
131
131
|
:conditions => ["taxons.id in (?)", [taxon] + taxon.descendants])
|
data/lib/spree_base.rb
CHANGED
@@ -106,6 +106,7 @@ module SpreeBase
|
|
106
106
|
|
107
107
|
receiver.send :helper_method, 'title'
|
108
108
|
receiver.send :helper_method, 'title='
|
109
|
+
receiver.send :helper_method, 'accurate_title'
|
109
110
|
receiver.send :helper_method, 'get_taxonomies'
|
110
111
|
receiver.send :helper_method, 'current_gateway'
|
111
112
|
receiver.send :helper_method, 'current_order'
|
data/lib/spree_core.rb
CHANGED
@@ -41,12 +41,18 @@ require "meta_search"
|
|
41
41
|
require "find_by_param"
|
42
42
|
|
43
43
|
require 'spree_core/ext/active_record'
|
44
|
+
require 'spree_core/ext/hash'
|
44
45
|
|
45
46
|
require 'spree_core/delegate_belongs_to'
|
46
47
|
ActiveRecord::Base.send :include, DelegateBelongsTo
|
47
48
|
|
48
49
|
require 'spree_core/theme_support'
|
49
50
|
require 'spree_core/enumerable_constants'
|
51
|
+
|
52
|
+
require 'spree_core/spree_custom_responder'
|
53
|
+
require 'spree_core/spree_respond_with'
|
54
|
+
|
55
|
+
|
50
56
|
require 'spree_core/ssl_requirement'
|
51
57
|
require 'spree_core/preferences/model_hooks'
|
52
58
|
require 'spree_core/preferences/preference_definition'
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#
|
2
|
+
# = Hash Recursive Merge
|
3
|
+
#
|
4
|
+
# Merges a Ruby Hash recursively, Also known as deep merge.
|
5
|
+
# Recursive version of Hash#merge and Hash#merge!.
|
6
|
+
#
|
7
|
+
# Category:: Ruby
|
8
|
+
# Package:: Hash
|
9
|
+
# Author:: Simone Carletti <weppos@weppos.net>
|
10
|
+
# Copyright:: 2007-2008 The Authors
|
11
|
+
# License:: MIT License
|
12
|
+
# Link:: http://www.simonecarletti.com/
|
13
|
+
# Source:: http://gist.github.com/gists/6391/
|
14
|
+
#
|
15
|
+
module HashRecursiveMerge
|
16
|
+
|
17
|
+
#
|
18
|
+
# Recursive version of Hash#merge!
|
19
|
+
#
|
20
|
+
# Adds the contents of +other_hash+ to +hsh+,
|
21
|
+
# merging entries in +hsh+ with duplicate keys with those from +other_hash+.
|
22
|
+
#
|
23
|
+
# Compared with Hash#merge!, this method supports nested hashes.
|
24
|
+
# When both +hsh+ and +other_hash+ contains an entry with the same key,
|
25
|
+
# it merges and returns the values from both arrays.
|
26
|
+
#
|
27
|
+
# h1 = {"a" => 100, "b" => 200, "c" => {"c1" => 12, "c2" => 14}}
|
28
|
+
# h2 = {"b" => 254, "c" => 300, "c" => {"c1" => 16, "c3" => 94}}
|
29
|
+
# h1.rmerge!(h2) #=> {"a" => 100, "b" => 254, "c" => {"c1" => 16, "c2" => 14, "c3" => 94}}
|
30
|
+
#
|
31
|
+
# Simply using Hash#merge! would return
|
32
|
+
#
|
33
|
+
# h1.merge!(h2) #=> {"a" => 100, "b" = >254, "c" => {"c1" => 16, "c3" => 94}}
|
34
|
+
#
|
35
|
+
def rmerge!(other_hash)
|
36
|
+
merge!(other_hash) do |key, oldval, newval|
|
37
|
+
oldval.class == self.class ? oldval.rmerge!(newval) : newval
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
#
|
42
|
+
# Recursive version of Hash#merge
|
43
|
+
#
|
44
|
+
# Compared with Hash#merge!, this method supports nested hashes.
|
45
|
+
# When both +hsh+ and +other_hash+ contains an entry with the same key,
|
46
|
+
# it merges and returns the values from both arrays.
|
47
|
+
#
|
48
|
+
# Compared with Hash#merge, this method provides a different approch
|
49
|
+
# for merging nasted hashes.
|
50
|
+
# If the value of a given key is an Hash and both +other_hash+ abd +hsh
|
51
|
+
# includes the same key, the value is merged instead replaced with
|
52
|
+
# +other_hash+ value.
|
53
|
+
#
|
54
|
+
# h1 = {"a" => 100, "b" => 200, "c" => {"c1" => 12, "c2" => 14}}
|
55
|
+
# h2 = {"b" => 254, "c" => 300, "c" => {"c1" => 16, "c3" => 94}}
|
56
|
+
# h1.rmerge(h2) #=> {"a" => 100, "b" => 254, "c" => {"c1" => 16, "c2" => 14, "c3" => 94}}
|
57
|
+
#
|
58
|
+
# Simply using Hash#merge would return
|
59
|
+
#
|
60
|
+
# h1.merge(h2) #=> {"a" => 100, "b" = >254, "c" => {"c1" => 16, "c3" => 94}}
|
61
|
+
#
|
62
|
+
def rmerge(other_hash)
|
63
|
+
r = {}
|
64
|
+
merge(other_hash) do |key, oldval, newval|
|
65
|
+
r[key] = oldval.class == self.class ? oldval.rmerge(newval) : newval
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
class Hash
|
73
|
+
include HashRecursiveMerge
|
74
|
+
end
|
75
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Spree
|
2
|
+
class Responder < ::ActionController::Responder #:nodoc:
|
3
|
+
|
4
|
+
attr_accessor :on_success, :on_failure
|
5
|
+
|
6
|
+
def initialize(controller, resources, options={})
|
7
|
+
super
|
8
|
+
|
9
|
+
class_name = controller.class.name.to_sym
|
10
|
+
action_name = options.delete(:action_name)
|
11
|
+
|
12
|
+
if result = Spree::BaseController.spree_responders[class_name].try(:[],action_name).try(:[], self.format.to_sym)
|
13
|
+
self.on_success = (result.respond_to?(:call) ? result : result[:success])
|
14
|
+
self.on_failure = (result.respond_to?(:call) ? result : result[:failure])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_html
|
19
|
+
super and return if !(on_success || on_failure)
|
20
|
+
has_errors? ? controller.instance_exec(&on_failure) : controller.instance_exec(&on_success)
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_format
|
24
|
+
super and return if !(on_success || on_failure)
|
25
|
+
has_errors? ? controller.instance_exec(&on_failure) : controller.instance_exec(&on_success)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module ActionController
|
2
|
+
class Base
|
3
|
+
def respond_with(*resources, &block)
|
4
|
+
raise "In order to use respond_with, first you need to declare the formats your " <<
|
5
|
+
"controller responds to in the class level" if self.class.mimes_for_respond_to.empty?
|
6
|
+
|
7
|
+
if response = retrieve_response_from_mimes(&block)
|
8
|
+
options = resources.size == 1 ? {} : resources.extract_options!
|
9
|
+
options.merge!(:default_response => response)
|
10
|
+
|
11
|
+
# following statement is not present in rails code. The action name is needed for processing
|
12
|
+
options.merge!(:action_name => action_name.to_sym)
|
13
|
+
|
14
|
+
# if responder is not specified then pass in Spree::Responder
|
15
|
+
(options.delete(:responder) || Spree::Responder).call(self, resources, options)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
module SpreeRespondWith
|
23
|
+
extend ActiveSupport::Concern
|
24
|
+
|
25
|
+
included do
|
26
|
+
cattr_accessor :spree_responders
|
27
|
+
self.spree_responders = {}
|
28
|
+
end
|
29
|
+
|
30
|
+
module ClassMethods
|
31
|
+
def respond_override(options={})
|
32
|
+
|
33
|
+
unless options.blank?
|
34
|
+
action_name = options.keys.first
|
35
|
+
action_value = options.values.first
|
36
|
+
|
37
|
+
if action_name.blank? || action_value.blank?
|
38
|
+
raise ArgumentError, "invalid values supplied #{options.inspect}"
|
39
|
+
end
|
40
|
+
|
41
|
+
format_name = action_value.keys.first
|
42
|
+
format_value = action_value.values.first
|
43
|
+
|
44
|
+
if format_name.blank? || format_value.blank?
|
45
|
+
raise ArgumentError, "invalid values supplied #{options.inspect}"
|
46
|
+
end
|
47
|
+
|
48
|
+
if format_value.is_a?(Proc)
|
49
|
+
options = {action_name.to_sym => {format_name.to_sym => {:success => format_value}}}
|
50
|
+
end
|
51
|
+
|
52
|
+
self.spree_responders.rmerge!(self.name.intern => options)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
data/lib/spree_core/version.rb
CHANGED
@@ -17,7 +17,8 @@ var handle_move = function(e, data) {
|
|
17
17
|
|
18
18
|
jQuery.ajax({
|
19
19
|
type: "POST",
|
20
|
-
|
20
|
+
dataType: "json",
|
21
|
+
url: base_url + node.attr("id"),
|
21
22
|
data: ({_method: "put", "taxon[parent_id]": new_parent.attr("id"), "taxon[position]": position, authenticity_token: AUTH_TOKEN}),
|
22
23
|
error: handle_ajax_error
|
23
24
|
});
|
@@ -34,11 +35,12 @@ var handle_create = function(e, data) {
|
|
34
35
|
|
35
36
|
jQuery.ajax({
|
36
37
|
type: "POST",
|
38
|
+
dataType: "json",
|
37
39
|
url: base_url,
|
38
40
|
data: ({"taxon[name]": name, "taxon[parent_id]": new_parent.attr("id"), "taxon[position]": position, authenticity_token: AUTH_TOKEN}),
|
39
41
|
error: handle_ajax_error,
|
40
|
-
success: function(
|
41
|
-
node.attr('id', id);
|
42
|
+
success: function(data,result) {
|
43
|
+
node.attr('id', data.taxon.id);
|
42
44
|
}
|
43
45
|
});
|
44
46
|
|
@@ -51,7 +53,8 @@ var handle_rename = function(e, data) {
|
|
51
53
|
|
52
54
|
jQuery.ajax({
|
53
55
|
type: "POST",
|
54
|
-
|
56
|
+
dataType: "json",
|
57
|
+
url: base_url + node.attr("id"),
|
55
58
|
data: ({_method: "put", "taxon[name]": name, authenticity_token: AUTH_TOKEN}),
|
56
59
|
error: handle_ajax_error
|
57
60
|
});
|
@@ -65,6 +68,7 @@ var handle_delete = function(e, data){
|
|
65
68
|
if(r){
|
66
69
|
jQuery.ajax({
|
67
70
|
type: "POST",
|
71
|
+
dataType: "json",
|
68
72
|
url: base_url + node.attr("id"),
|
69
73
|
data: ({_method: "delete", authenticity_token: AUTH_TOKEN}),
|
70
74
|
error: handle_ajax_error
|
metadata
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 239
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 60
|
9
9
|
- 0
|
10
|
-
|
11
|
-
- 1
|
12
|
-
version: 0.60.0.RC1
|
10
|
+
version: 0.60.0
|
13
11
|
platform: ruby
|
14
12
|
authors:
|
15
13
|
- Sean Schofield
|
@@ -17,7 +15,7 @@ autorequire:
|
|
17
15
|
bindir: bin
|
18
16
|
cert_chain: []
|
19
17
|
|
20
|
-
date: 2011-05-
|
18
|
+
date: 2011-05-13 00:00:00 -04:00
|
21
19
|
default_executable:
|
22
20
|
dependencies:
|
23
21
|
- !ruby/object:Gem::Dependency
|
@@ -186,12 +184,12 @@ dependencies:
|
|
186
184
|
requirements:
|
187
185
|
- - "="
|
188
186
|
- !ruby/object:Gem::Version
|
189
|
-
hash:
|
187
|
+
hash: 29
|
190
188
|
segments:
|
191
189
|
- 1
|
192
190
|
- 0
|
193
|
-
-
|
194
|
-
version: 1.0.
|
191
|
+
- 5
|
192
|
+
version: 1.0.5
|
195
193
|
type: :runtime
|
196
194
|
version_requirements: *id011
|
197
195
|
- !ruby/object:Gem::Dependency
|
@@ -202,12 +200,12 @@ dependencies:
|
|
202
200
|
requirements:
|
203
201
|
- - "="
|
204
202
|
- !ruby/object:Gem::Version
|
205
|
-
hash:
|
203
|
+
hash: 47
|
206
204
|
segments:
|
207
205
|
- 1
|
208
|
-
-
|
206
|
+
- 14
|
209
207
|
- 0
|
210
|
-
version: 1.
|
208
|
+
version: 1.14.0
|
211
209
|
type: :runtime
|
212
210
|
version_requirements: *id012
|
213
211
|
- !ruby/object:Gem::Dependency
|
@@ -218,12 +216,11 @@ dependencies:
|
|
218
216
|
requirements:
|
219
217
|
- - "="
|
220
218
|
- !ruby/object:Gem::Version
|
221
|
-
hash:
|
219
|
+
hash: -1876988247
|
222
220
|
segments:
|
223
221
|
- 3
|
224
222
|
- 0
|
225
|
-
-
|
226
|
-
- 2
|
223
|
+
- pre2
|
227
224
|
version: 3.0.pre2
|
228
225
|
type: :runtime
|
229
226
|
version_requirements: *id013
|
@@ -676,10 +673,13 @@ files:
|
|
676
673
|
- lib/spree_core/enumerable_constants.rb
|
677
674
|
- lib/spree_core/ext/active_record.rb
|
678
675
|
- lib/spree_core/ext/array.rb
|
676
|
+
- lib/spree_core/ext/hash.rb
|
679
677
|
- lib/spree_core/ext/string.rb
|
680
678
|
- lib/spree_core/preferences/model_hooks.rb
|
681
679
|
- lib/spree_core/preferences/preference_definition.rb
|
682
680
|
- lib/spree_core/railtie.rb
|
681
|
+
- lib/spree_core/spree_custom_responder.rb
|
682
|
+
- lib/spree_core/spree_respond_with.rb
|
683
683
|
- lib/spree_core/ssl_requirement.rb
|
684
684
|
- lib/spree_core/testing_support/factories/address_factory.rb
|
685
685
|
- lib/spree_core/testing_support/factories/adjustment_factory.rb
|
@@ -1133,18 +1133,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1133
1133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1134
1134
|
none: false
|
1135
1135
|
requirements:
|
1136
|
-
- - "
|
1136
|
+
- - ">="
|
1137
1137
|
- !ruby/object:Gem::Version
|
1138
|
-
hash:
|
1138
|
+
hash: 3
|
1139
1139
|
segments:
|
1140
|
-
-
|
1141
|
-
|
1142
|
-
- 1
|
1143
|
-
version: 1.3.1
|
1140
|
+
- 0
|
1141
|
+
version: "0"
|
1144
1142
|
requirements:
|
1145
1143
|
- none
|
1146
1144
|
rubyforge_project: spree_core
|
1147
|
-
rubygems_version: 1.
|
1145
|
+
rubygems_version: 1.3.7
|
1148
1146
|
signing_key:
|
1149
1147
|
specification_version: 3
|
1150
1148
|
summary: Core e-commerce functionality for the Spree project.
|