diff --git a/.generators b/.generators
new file mode 100644
index 00000000..8431b9b0
--- /dev/null
+++ b/.generators
@@ -0,0 +1,8 @@
+
+
diff --git a/.rakeTasks b/.rakeTasks
new file mode 100644
index 00000000..c6865d9a
--- /dev/null
+++ b/.rakeTasks
@@ -0,0 +1,7 @@
+
+
diff --git a/app/assets/javascripts/spree/frontend/spree_reviews.js b/app/assets/javascripts/spree/frontend/spree_reviews.js
index f70c6184..9346fd21 100644
--- a/app/assets/javascripts/spree/frontend/spree_reviews.js
+++ b/app/assets/javascripts/spree/frontend/spree_reviews.js
@@ -1,6 +1,5 @@
//= require jquery.rating
//= require spree/frontend
-//= require spree/frontend/spree_auth
// Navigating to a page with ratings via TurboLinks shows the radio buttons
$(document).on('page:load', function () {
diff --git a/app/controllers/spree/products_controller_decorator.rb b/app/controllers/spree/products_controller_decorator.rb
index a231a1ce..cdf08f0b 100644
--- a/app/controllers/spree/products_controller_decorator.rb
+++ b/app/controllers/spree/products_controller_decorator.rb
@@ -1,10 +1,18 @@
-Spree::ProductsController.class_eval do
- helper Spree::ReviewsHelper
-
- reviews_fields = [:avg_rating, :reviews_count]
- reviews_fields.each { |attrib| Spree::PermittedAttributes.product_attributes << attrib }
-
- Spree::Api::ApiHelpers.class_eval do
- reviews_fields.each { |attrib| class_variable_set(:@@product_attributes, class_variable_get(:@@product_attributes).push(attrib)) }
+module Spree::ProductsControllerDecorator
+ extend ActiveSupport::Concern
+ included do
+ helper Spree::ReviewsHelper
+
+ reviews_fields = [:avg_rating, :reviews_count]
+ reviews_fields.each { |attrib| Spree::PermittedAttributes.product_attributes << attrib }
+
+ Spree::Api::ApiHelpers.class_eval do
+ reviews_fields.each { |attrib| class_variable_set(:@@product_attributes, class_variable_get(:@@product_attributes).push(attrib)) }
+ end
end
end
+
+if ::Spree::ProductsController.included_modules.exclude?(Spree::ProductsControllerDecorator)
+ ::Spree::ProductsController.prepend Spree::ProductsControllerDecorator
+end
+
diff --git a/app/models/spree/product_decorator.rb b/app/models/spree/product_decorator.rb
index c7a7083f..1fd909fc 100644
--- a/app/models/spree/product_decorator.rb
+++ b/app/models/spree/product_decorator.rb
@@ -16,3 +16,5 @@ def recalculate_rating
save
end
end
+
+module Spree::ProductDecorator; end
diff --git a/db/sample/reviews.yml b/db/sample/reviews.yml
index d03e812a..05390376 100644
--- a/db/sample/reviews.yml
+++ b/db/sample/reviews.yml
@@ -9,6 +9,7 @@ r1:
title: "more uses for this item"
review: <%= Faker::Lorem.paragraph %>
approved: true
+ show_identifier: true
r2:
product: ror_tote
name: <%= Faker::Name.first_name %> <%= Faker::Name.last_name %>
@@ -17,6 +18,7 @@ r2:
title: "further comments"
review: <%= Faker::Lorem.paragraph %>
approved: false
+ show_identifier: true
r3:
product: ror_ringer
name: <%= Faker::Name.first_name %> <%= Faker::Name.last_name %>
@@ -25,6 +27,7 @@ r3:
title: "essential wear"
review: <%= Faker::Lorem.paragraph %>
approved: false
+ show_identifier: true
r4:
product: apache_baseball_jersey
name: <%= Faker::Name.first_name %> <%= Faker::Name.last_name %>
@@ -33,6 +36,7 @@ r4:
title: "not impressed"
review: <%= Faker::Lorem.paragraph %>
approved: true
+ show_identifier: true
r5:
product: ror_ringer
name: <%= Faker::Name.first_name %> <%= Faker::Name.last_name %>
@@ -41,6 +45,7 @@ r5:
title: "I have one for every day of the week"
review: <%= Faker::Lorem.paragraph %>
approved: true
+ show_identifier: true
r6:
product: ror_ringer
name: <%= Faker::Name.first_name %> <%= Faker::Name.last_name %>
@@ -49,6 +54,7 @@ r6:
title: "cooler than my toga"
review: <%= Faker::Lorem.paragraph %>
approved: true
+ show_identifier: true
r7:
product: ror_ringer
name: <%= Faker::Name.first_name %> <%= Faker::Name.last_name %>
@@ -56,4 +62,5 @@ r7:
rating: 2
title: "my other half didn't like it"
review: <%= Faker::Lorem.paragraph %>
- approved: false
\ No newline at end of file
+ approved: false
+ show_identifier: true
diff --git a/lib/spree_reviews.rb b/lib/spree_reviews.rb
index 5cb130d5..d0cdf168 100644
--- a/lib/spree_reviews.rb
+++ b/lib/spree_reviews.rb
@@ -4,6 +4,7 @@
require 'spree_extension'
require 'coffee_script'
require 'sass/rails'
+require 'deface'
module Spree
module Reviews
diff --git a/spec/factories/feedback_review_factory.rb b/spec/factories/feedback_review_factory.rb
index 7b9dbbf8..a7ec32f0 100644
--- a/spec/factories/feedback_review_factory.rb
+++ b/spec/factories/feedback_review_factory.rb
@@ -1,4 +1,4 @@
-FactoryGirl.define do
+FactoryBot.define do
factory :feedback_review, class: Spree::FeedbackReview do
user
review
diff --git a/spec/factories/review_factory.rb b/spec/factories/review_factory.rb
index c5773563..7a96151d 100644
--- a/spec/factories/review_factory.rb
+++ b/spec/factories/review_factory.rb
@@ -1,20 +1,20 @@
-FactoryGirl.define do
+FactoryBot.define do
factory :review, class: Spree::Review do
name { generate(:random_email) }
title { generate(:random_string) }
review { generate(:random_description) }
rating { rand(1..5) }
- approved false
- show_identifier true
+ approved { false }
+ show_identifier { true }
user
product
trait :approved do
- approved true
+ approved { true }
end
trait :hide_identifier do
- show_identifier false
+ show_identifier { false }
end
end
end
diff --git a/spec/support/factory_bot.rb b/spec/support/factory_bot.rb
new file mode 100644
index 00000000..db01c165
--- /dev/null
+++ b/spec/support/factory_bot.rb
@@ -0,0 +1,7 @@
+require 'factory_bot'
+
+FactoryBot.find_definitions
+
+RSpec.configure do |config|
+ config.include FactoryBot::Syntax::Methods
+end
diff --git a/spec/support/factory_girl.rb b/spec/support/factory_girl.rb
deleted file mode 100644
index f2784a54..00000000
--- a/spec/support/factory_girl.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-require 'factory_girl'
-
-FactoryGirl.find_definitions
-
-RSpec.configure do |config|
- config.include FactoryGirl::Syntax::Methods
-end
diff --git a/spree_reviews.gemspec b/spree_reviews.gemspec
index 9dd61085..6495d8ce 100644
--- a/spree_reviews.gemspec
+++ b/spree_reviews.gemspec
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
s.require_path = 'lib'
s.requirements << 'none'
- spree_version = '>= 3.1.0', '< 4.0'
+ spree_version = '>= 3.1.0', '< 5.0'
s.add_runtime_dependency 'spree_core', spree_version
s.add_runtime_dependency 'spree_auth_devise', spree_version
s.add_runtime_dependency 'spree_extension'
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
s.add_development_dependency 'database_cleaner'
s.add_development_dependency 'poltergeist'
s.add_development_dependency 'rspec-rails'
- s.add_development_dependency 'factory_girl'
+ s.add_development_dependency 'factory_bot'
s.add_development_dependency 'sqlite3'
s.add_development_dependency 'simplecov'
s.add_development_dependency 'coffee-rails'
@@ -43,4 +43,5 @@ Gem::Specification.new do |s|
s.add_development_dependency 'appraisal'
s.add_development_dependency 'pg'
s.add_development_dependency 'mysql2'
+ s.add_dependency 'deface'
end