spree_frontend 3.6.6 → 3.7.0.rc1

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.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/frontend.js +8 -0
  3. data/app/assets/javascripts/spree/frontend/api_tokens.js +17 -0
  4. data/app/assets/javascripts/spree/frontend/cart.js +59 -0
  5. data/app/assets/javascripts/spree/frontend/checkout.js +19 -0
  6. data/app/assets/javascripts/spree/frontend/checkout/address.js +102 -0
  7. data/app/assets/javascripts/spree/frontend/checkout/payment.js +57 -0
  8. data/app/assets/javascripts/spree/frontend/checkout/shipment.js +47 -0
  9. data/app/assets/javascripts/spree/frontend/coupon_manager.js +45 -0
  10. data/app/assets/javascripts/spree/frontend/product.js +104 -51
  11. data/app/controllers/spree/checkout_controller.rb +7 -13
  12. data/app/controllers/spree/locale_controller.rb +1 -3
  13. data/app/controllers/spree/orders_controller.rb +25 -10
  14. data/app/controllers/spree/store_controller.rb +12 -0
  15. data/app/helpers/spree/frontend_helper.rb +8 -12
  16. data/app/views/spree/checkout/_payment.html.erb +3 -3
  17. data/app/views/spree/checkout/edit.html.erb +1 -1
  18. data/app/views/spree/orders/edit.html.erb +1 -2
  19. data/app/views/spree/products/_cart_form.html.erb +10 -4
  20. data/app/views/spree/products/_properties.html.erb +1 -1
  21. data/app/views/spree/products/_thumbnails.html.erb +4 -2
  22. data/config/routes.rb +3 -0
  23. data/lib/generators/spree/frontend/copy_views/copy_views_generator.rb +1 -1
  24. data/spree_frontend.gemspec +2 -2
  25. metadata +18 -23
  26. data/app/assets/javascripts/spree/frontend/cart.js.coffee +0 -28
  27. data/app/assets/javascripts/spree/frontend/checkout.js.coffee +0 -16
  28. data/app/assets/javascripts/spree/frontend/checkout/address.js.coffee +0 -81
  29. data/app/assets/javascripts/spree/frontend/checkout/payment.js.coffee +0 -57
  30. data/app/assets/javascripts/spree/frontend/checkout/shipment.js.coffee +0 -41
  31. data/app/assets/javascripts/spree/frontend/coupon_manager.js.coffee +0 -37
@@ -104,9 +104,7 @@ module Spree
104
104
 
105
105
  def set_state_if_present
106
106
  if params[:state]
107
- if @order.can_go_to_state?(params[:state]) && !skip_state_validation?
108
- redirect_to checkout_state_path(@order.state)
109
- end
107
+ redirect_to checkout_state_path(@order.state) if @order.can_go_to_state?(params[:state]) && !skip_state_validation?
110
108
  @order.state = params[:state]
111
109
  end
112
110
  end
@@ -155,18 +153,16 @@ module Spree
155
153
  packages = @order.shipments.map(&:to_package)
156
154
  @differentiator = Spree::Stock::Differentiator.new(@order, packages)
157
155
  @differentiator.missing.each do |variant, quantity|
158
- @order.contents.remove(variant, quantity)
156
+ Spree::Cart::RemoveItem.call(order: @order, variant: variant, quantity: quantity)
159
157
  end
160
158
  end
161
159
 
162
- if try_spree_current_user && try_spree_current_user.respond_to?(:payment_sources)
163
- @payment_sources = try_spree_current_user.payment_sources
164
- end
160
+ @payment_sources = try_spree_current_user.payment_sources if try_spree_current_user&.respond_to?(:payment_sources)
165
161
  end
166
162
 
167
163
  def add_store_credit_payments
168
164
  if params.key?(:apply_store_credit)
169
- @order.add_store_credit_payments
165
+ Spree::Checkout::AddStoreCredit.call(order: @order)
170
166
 
171
167
  # Remove other payment method parameters.
172
168
  params[:order].delete(:payments_attributes)
@@ -174,15 +170,13 @@ module Spree
174
170
  params.delete(:payment_source)
175
171
 
176
172
  # Return to the Payments page if additional payment is needed.
177
- if @order.payments.valid.sum(:amount) < @order.total
178
- redirect_to checkout_state_path(@order.state) and return
179
- end
173
+ redirect_to checkout_state_path(@order.state) and return if @order.payments.valid.sum(:amount) < @order.total
180
174
  end
181
175
  end
182
176
 
183
177
  def remove_store_credit_payments
184
178
  if params.key?(:remove_store_credit)
185
- @order.remove_store_credit_payments
179
+ Spree::Checkout::RemoveStoreCredit.call(order: @order)
186
180
  redirect_to checkout_state_path(@order.state) and return
187
181
  end
188
182
  end
@@ -194,7 +188,7 @@ module Spree
194
188
  end
195
189
 
196
190
  def check_authorization
197
- authorize!(:edit, current_order, cookies.signed[:guest_token])
191
+ authorize!(:edit, current_order, cookies.signed[:token])
198
192
  end
199
193
  end
200
194
  end
@@ -1,9 +1,7 @@
1
1
  module Spree
2
2
  class LocaleController < Spree::StoreController
3
3
  def set
4
- if request.referer && request.referer.starts_with?('http://' + request.host)
5
- session['user_return_to'] = request.referer
6
- end
4
+ session['user_return_to'] = request.referer if request.referer&.starts_with?('http://' + request.host)
7
5
  if params[:locale] && I18n.available_locales.map(&:to_s).include?(params[:locale])
8
6
  session[:locale] = I18n.locale = params[:locale]
9
7
  flash.notice = Spree.t(:locale_changed)
@@ -14,7 +14,7 @@ module Spree
14
14
 
15
15
  def update
16
16
  @variant = Spree::Variant.find(params[:variant_id]) if params[:variant_id]
17
- if @order.contents.update_cart(order_params)
17
+ if Cart::Update.call(order: @order, params: order_params).success?
18
18
  respond_with(@order) do |format|
19
19
  format.html do
20
20
  if params.key?(:checkout)
@@ -34,12 +34,18 @@ module Spree
34
34
  def edit
35
35
  @order = current_order || Order.incomplete.
36
36
  includes(line_items: [variant: [:images, :option_values, :product]]).
37
- find_or_initialize_by(guest_token: cookies.signed[:guest_token])
37
+ find_or_initialize_by(token: cookies.signed[:token])
38
38
  associate_user
39
39
  end
40
40
 
41
41
  # Adds a new item to the order (creating a new order if none already exists)
42
42
  def populate
43
+ ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
44
+ OrdersController#populate is deprecated and will be removed in Spree 4.0.
45
+ Please use `/api/v2/storefront/cart/add_item` endpoint instead.
46
+ See documentation: https://github.com/spree/spree/blob/master/api/docs/v2/storefront/index.yaml#L42
47
+ DEPRECATION
48
+
43
49
  order = current_order(create_order_if_necessary: true)
44
50
  variant = Spree::Variant.find(params[:variant_id])
45
51
  quantity = params[:quantity].to_i
@@ -48,10 +54,14 @@ module Spree
48
54
  # 2,147,483,647 is crazy. See issue #2695.
49
55
  if quantity.between?(1, 2_147_483_647)
50
56
  begin
51
- order.contents.add(variant, quantity, options)
52
- order.update_line_item_prices!
53
- order.create_tax_charge!
54
- order.update_with_updater!
57
+ result = Spree::Cart::AddItem.call(order: order, variant: variant, quantity: quantity, options: options)
58
+ if result.failure?
59
+ error = result.value.errors.full_messages.join(', ')
60
+ else
61
+ order.update_line_item_prices!
62
+ order.create_tax_charge!
63
+ order.update_with_updater!
64
+ end
55
65
  rescue ActiveRecord::RecordInvalid => e
56
66
  error = e.record.errors.full_messages.join(', ')
57
67
  end
@@ -70,6 +80,11 @@ module Spree
70
80
  end
71
81
 
72
82
  def populate_redirect
83
+ ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
84
+ OrdersController#populate is deprecated and will be removed in Spree 4.0.
85
+ Please use `/api/v2/storefront/cart/add_item` endpoint instead.
86
+ See documentation: https://github.com/spree/spree/blob/master/api/docs/v2/storefront/index.yaml#L42
87
+ DEPRECATION
73
88
  flash[:error] = Spree.t(:populate_get_error)
74
89
  redirect_to cart_path
75
90
  end
@@ -83,7 +98,7 @@ module Spree
83
98
  private
84
99
 
85
100
  def accurate_title
86
- if @order && @order.completed?
101
+ if @order&.completed?
87
102
  Spree.t(:order_number, number: @order.number)
88
103
  else
89
104
  Spree.t(:shopping_cart)
@@ -92,12 +107,12 @@ module Spree
92
107
 
93
108
  def check_authorization
94
109
  order = Spree::Order.find_by(number: params[:id]) if params[:id].present?
95
- order = current_order unless order
110
+ order ||= current_order
96
111
 
97
112
  if order && action_name.to_sym == :show
98
- authorize! :show, order, cookies.signed[:guest_token]
113
+ authorize! :show, order, cookies.signed[:token]
99
114
  elsif order
100
- authorize! :edit, order, cookies.signed[:guest_token]
115
+ authorize! :edit, order, cookies.signed[:token]
101
116
  else
102
117
  authorize! :create, Spree::Order
103
118
  end
@@ -3,6 +3,7 @@ module Spree
3
3
  include Spree::Core::ControllerHelpers::Order
4
4
 
5
5
  skip_before_action :set_current_order, only: :cart_link
6
+ skip_before_action :verify_authenticity_token, only: :ensure_cart
6
7
 
7
8
  def forbidden
8
9
  render 'spree/shared/forbidden', layout: Spree::Config[:layout], status: 403
@@ -17,6 +18,17 @@ module Spree
17
18
  fresh_when(simple_current_order)
18
19
  end
19
20
 
21
+ def api_tokens
22
+ render json: {
23
+ order_token: current_order&.token,
24
+ oauth_token: current_oauth_token&.token
25
+ }
26
+ end
27
+
28
+ def ensure_cart
29
+ render json: current_order(create_order_if_necessary: true) # force creation of order if doesn't exists
30
+ end
31
+
20
32
  protected
21
33
 
22
34
  def config_locale
@@ -7,6 +7,7 @@ module Spree
7
7
 
8
8
  def spree_breadcrumbs(taxon, separator = '&nbsp;')
9
9
  return '' if current_page?('/') || taxon.nil?
10
+
10
11
  separator = raw(separator)
11
12
  crumbs = [content_tag(:li, content_tag(:span, link_to(content_tag(:span, Spree.t(:home), itemprop: 'name'), spree.root_path, itemprop: 'url') + separator, itemprop: 'item'), itemscope: 'itemscope', itemtype: 'https://schema.org/ListItem', itemprop: 'itemListElement')]
12
13
  if taxon
@@ -20,14 +21,6 @@ module Spree
20
21
  content_tag(:nav, crumb_list, id: 'breadcrumbs', class: 'col-md-12')
21
22
  end
22
23
 
23
- def breadcrumbs(taxon, separator = '&nbsp;')
24
- ActiveSupport::Deprecation.warn(<<-EOS, caller)
25
- Spree::FrontendHelper#breadcrumbs was renamed to Spree::FrontendHelper#spree_breadcrumbs
26
- and will be removed in Spree 3.6. Please update your code to avoid problems after update
27
- EOS
28
- spree_breadcrumbs(taxon, separator)
29
- end
30
-
31
24
  def checkout_progress(numbers: false)
32
25
  states = @order.checkout_steps
33
26
  items = states.each_with_index.map do |state, i|
@@ -62,9 +55,7 @@ module Spree
62
55
  ignore_types = ['order_completed'].concat(Array(opts[:ignore_types]).map(&:to_s) || [])
63
56
 
64
57
  flash.each do |msg_type, text|
65
- unless ignore_types.include?(msg_type)
66
- concat(content_tag(:div, text, class: "alert alert-#{msg_type}"))
67
- end
58
+ concat(content_tag(:div, text, class: "alert alert-#{msg_type}")) unless ignore_types.include?(msg_type)
68
59
  end
69
60
  nil
70
61
  end
@@ -86,13 +77,18 @@ module Spree
86
77
 
87
78
  def taxons_tree(root_taxon, current_taxon, max_level = 1)
88
79
  return '' if max_level < 1 || root_taxon.leaf?
80
+
89
81
  content_tag :div, class: 'list-group' do
90
82
  taxons = root_taxon.children.map do |taxon|
91
- css_class = current_taxon && current_taxon.self_and_ancestors.include?(taxon) ? 'list-group-item active' : 'list-group-item'
83
+ css_class = current_taxon&.self_and_ancestors&.include?(taxon) ? 'list-group-item active' : 'list-group-item'
92
84
  link_to(taxon.name, seo_url(taxon), class: css_class) + taxons_tree(taxon, current_taxon, max_level - 1)
93
85
  end
94
86
  safe_join(taxons, "\n")
95
87
  end
96
88
  end
89
+
90
+ def set_image_alt(image, size)
91
+ image.alt.present? ? image.alt : image_alt(main_app.url_for(image.url(size)))
92
+ end
97
93
  end
98
94
  end
@@ -21,12 +21,12 @@
21
21
  <tbody>
22
22
  <% @payment_sources.each do |card| %>
23
23
  <tr id="<%= dom_id(card,'spree')%>" class="<%= cycle('even', 'odd') %>">
24
- <td><%= card.name %></td>
25
- <td><%= card.display_number %></td>
26
- <td><%= card.month %> / <%= card.year %></td>
27
24
  <td>
28
25
  <%= radio_button_tag "order[existing_card]", card.id, (card == @payment_sources.first), { class: "existing-cc-radio" } %>
29
26
  </td>
27
+ <td><%= card.name %></td>
28
+ <td><%= card.display_number %></td>
29
+ <td><%= card.month %> / <%= card.year %></td>
30
30
  </tr>
31
31
  <% end %>
32
32
  </tbody>
@@ -39,5 +39,5 @@
39
39
 
40
40
  <script>
41
41
  Spree.current_order_id = "<%= @order.number %>"
42
- Spree.current_order_token = "<%= @order.guest_token %>"
42
+ Spree.current_order_token = "<%= @order.token %>"
43
43
  </script>
@@ -54,6 +54,5 @@
54
54
  </div>
55
55
 
56
56
  <script>
57
- Spree.current_order_id = "<%= @order.number %>"
58
- Spree.current_order_token = "<%= @order.guest_token %>"
57
+ Spree.current_order_token = "<%= @order.token %>"
59
58
  </script>
@@ -1,4 +1,4 @@
1
- <%= form_for :order, url: populate_orders_path do |f| %>
1
+ <%= form_for :order, html: { id: 'add-to-cart-form' } do |f| %>
2
2
  <div class="row" id="inside-product-cart-form" data-hook="inside_product_cart_form" itemprop="offers" itemscope itemtype="https://schema.org/Offer">
3
3
  <% if @product.variants_and_option_values(current_currency).any? %>
4
4
  <div id="product-variants" class="col-md-6">
@@ -8,11 +8,12 @@
8
8
  <li>
9
9
  <%= radio_button_tag "variant_id", variant.id, index == 0,
10
10
  'data-price' => variant.price_in(current_currency).money,
11
- 'data-in-stock' => variant.can_supply?
11
+ 'data-in-stock' => variant.can_supply?,
12
+ 'data-backordered' => variant.backordered?
12
13
  %>
13
14
  <%= label_tag "variant_id_#{ variant.id }" do %>
14
15
  <span class="variant-description">
15
- <%= variant_options variant %>
16
+ <%= variant.options_text %>
16
17
  </span>
17
18
  <% if variant_price variant %>
18
19
  <span class="price diff"><%= variant_price variant %></span>
@@ -46,6 +47,11 @@
46
47
  <br />
47
48
  <span class="out-of-stock"><%= Spree.t(:out_of_stock) %></span>
48
49
  <% end %>
50
+ <% if @product.backordered? %>
51
+ <div class="alert alert-warning" id="cart-backordered-info">
52
+ <%= Spree.t(:backordered_info) %>
53
+ </div>
54
+ <% end %>
49
55
  </div>
50
56
 
51
57
  <% if @product.can_supply? %>
@@ -54,7 +60,7 @@
54
60
  <div class="input-group">
55
61
  <%= number_field_tag :quantity, 1, class: 'title form-control', min: 1 %>
56
62
  <span class="input-group-btn">
57
- <%= button_tag class: 'btn btn-success', id: 'add-to-cart-button', type: :submit do %>
63
+ <%= button_tag class: 'btn btn-success', id: 'add-to-cart-button', type: :submit, disabled: true do %>
58
64
  <%= Spree.t(:add_to_cart) %>
59
65
  <% end %>
60
66
  </span>
@@ -1,4 +1,4 @@
1
- <% unless @product_properties.empty? %>
1
+ <% unless @product_properties.blank? %>
2
2
  <h3 class="product-section-title"><%= Spree.t('properties')%></h3>
3
3
  <table id="product-properties" class="table table-striped" data-hook>
4
4
  <tbody>
@@ -3,7 +3,8 @@
3
3
  <ul id="product-thumbnails" class="thumbnails list-inline" data-hook>
4
4
  <% @product.images.each do |i| %>
5
5
  <li class='tmb-all tmb-<%= i.viewable.id %>'>
6
- <%= link_to(image_tag(main_app.url_for(i.url(:mini)), class: "thumbnail"), main_app.url_for(i.url(:product))) %>
6
+ <% img_tag = image_tag(main_app.url_for(i.url(:mini)), class: "thumbnail", alt: set_image_alt(i, :mini)) %>
7
+ <%= link_to(img_tag, main_app.url_for(i.url(:product))) %>
7
8
  </li>
8
9
  <% end %>
9
10
 
@@ -11,7 +12,8 @@
11
12
  <% @product.variant_images.each do |i| %>
12
13
  <% next if @product.images.include?(i) %>
13
14
  <li class='vtmb tmb-<%= i.viewable.id %>'>
14
- <%= link_to(image_tag(main_app.url_for(i.url(:mini)), class: "thumbnail"), main_app.url_for(i.url(:product))) %>
15
+ <% img_tag = image_tag(main_app.url_for(i.url(:mini)), class: "thumbnail", alt: set_image_alt(i, :mini)) %>
16
+ <%= link_to(img_tag, main_app.url_for(i.url(:product))) %>
15
17
  </li>
16
18
  <% end %>
17
19
  <% end %>
@@ -27,4 +27,7 @@ Spree::Core::Engine.add_routes do
27
27
  get '/content/cvv', to: 'content#cvv', as: :cvv
28
28
  get '/content/test', to: 'content#test'
29
29
  get '/cart_link', to: 'store#cart_link', as: :cart_link
30
+
31
+ get '/api_tokens', to: 'store#api_tokens'
32
+ post '/ensure_cart', to: 'store#ensure_cart'
30
33
  end
@@ -4,7 +4,7 @@ module Spree
4
4
  desc 'Copies views from spree frontend to your application'
5
5
 
6
6
  def self.source_paths
7
- [File.expand_path('../../../../../../app/', __FILE__)]
7
+ [File.expand_path('../../../../../app', __dir__)]
8
8
  end
9
9
 
10
10
  def copy_views
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.summary = 'Frontend e-commerce functionality for the Spree project.'
9
9
  s.description = s.summary
10
10
 
11
- s.required_ruby_version = '>= 2.2.7'
11
+ s.required_ruby_version = '>= 2.3.0'
12
12
 
13
13
  s.author = 'Sean Schofield'
14
14
  s.email = 'sean@spreecommerce.com'
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.add_dependency 'spree_api', s.version
23
23
  s.add_dependency 'spree_core', s.version
24
24
 
25
- s.add_dependency 'bootstrap-sass', '>= 3.3.5.1', '< 3.4'
25
+ s.add_dependency 'bootstrap-sass', '~> 3.4'
26
26
  s.add_dependency 'canonical-rails', '~> 0.2.3'
27
27
  s.add_dependency 'jquery-rails', '~> 4.3'
28
28
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_frontend
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.6
4
+ version: 3.7.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-06 00:00:00.000000000 Z
11
+ date: 2019-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_api
@@ -16,46 +16,40 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.6.6
19
+ version: 3.7.0.rc1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.6.6
26
+ version: 3.7.0.rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: spree_core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 3.6.6
33
+ version: 3.7.0.rc1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 3.6.6
40
+ version: 3.7.0.rc1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bootstrap-sass
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 3.3.5.1
48
- - - "<"
45
+ - - "~>"
49
46
  - !ruby/object:Gem::Version
50
47
  version: '3.4'
51
48
  type: :runtime
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: 3.3.5.1
58
- - - "<"
52
+ - - "~>"
59
53
  - !ruby/object:Gem::Version
60
54
  version: '3.4'
61
55
  - !ruby/object:Gem::Dependency
@@ -136,12 +130,13 @@ files:
136
130
  - app/assets/images/favicon.ico
137
131
  - app/assets/images/logo/spree_50.png
138
132
  - app/assets/javascripts/spree/frontend.js
139
- - app/assets/javascripts/spree/frontend/cart.js.coffee
140
- - app/assets/javascripts/spree/frontend/checkout.js.coffee
141
- - app/assets/javascripts/spree/frontend/checkout/address.js.coffee
142
- - app/assets/javascripts/spree/frontend/checkout/payment.js.coffee
143
- - app/assets/javascripts/spree/frontend/checkout/shipment.js.coffee
144
- - app/assets/javascripts/spree/frontend/coupon_manager.js.coffee
133
+ - app/assets/javascripts/spree/frontend/api_tokens.js
134
+ - app/assets/javascripts/spree/frontend/cart.js
135
+ - app/assets/javascripts/spree/frontend/checkout.js
136
+ - app/assets/javascripts/spree/frontend/checkout/address.js
137
+ - app/assets/javascripts/spree/frontend/checkout/payment.js
138
+ - app/assets/javascripts/spree/frontend/checkout/shipment.js
139
+ - app/assets/javascripts/spree/frontend/coupon_manager.js
145
140
  - app/assets/javascripts/spree/frontend/product.js
146
141
  - app/assets/stylesheets/spree/frontend.css
147
142
  - app/assets/stylesheets/spree/frontend/_variables.scss
@@ -239,12 +234,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
239
234
  requirements:
240
235
  - - ">="
241
236
  - !ruby/object:Gem::Version
242
- version: 2.2.7
237
+ version: 2.3.0
243
238
  required_rubygems_version: !ruby/object:Gem::Requirement
244
239
  requirements:
245
- - - ">="
240
+ - - ">"
246
241
  - !ruby/object:Gem::Version
247
- version: '0'
242
+ version: 1.3.1
248
243
  requirements:
249
244
  - none
250
245
  rubyforge_project: