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