diff --git a/Rakefile b/Rakefile index 5e5257e9..abb609d6 100644 --- a/Rakefile +++ b/Rakefile @@ -6,10 +6,10 @@ require 'spree/testing_support/common_rake' RSpec::Core::RakeTask.new -task :default => [:spec] +task default: :spec desc 'Generates a dummy app for testing' task :test_app do ENV['LIB_NAME'] = 'spree_reviews' Rake::Task['common:test_app'].invoke 'Spree::User' -end \ No newline at end of file +end diff --git a/app/controllers/spree/admin/feedback_reviews_controller.rb b/app/controllers/spree/admin/feedback_reviews_controller.rb index f057aa2c..b5dac935 100644 --- a/app/controllers/spree/admin/feedback_reviews_controller.rb +++ b/app/controllers/spree/admin/feedback_reviews_controller.rb @@ -1,5 +1,6 @@ class Spree::Admin::FeedbackReviewsController < Spree::Admin::ResourceController belongs_to 'spree/review' + def index @collection = parent.feedback_reviews end diff --git a/app/controllers/spree/admin/reviews_controller.rb b/app/controllers/spree/admin/reviews_controller.rb index 672a32cc..2ab1825c 100644 --- a/app/controllers/spree/admin/reviews_controller.rb +++ b/app/controllers/spree/admin/reviews_controller.rb @@ -7,7 +7,6 @@ def index def approve r = Spree::Review.find(params[:id]) - if r.update_attribute(:approved, true) flash[:notice] = Spree.t("info_approve_review") else @@ -27,7 +26,6 @@ def edit def collection params[:q] ||= {} - @search = Spree::Review.ransack(params[:q]) @collection = @search.result.includes([:product, :user, :feedback_reviews]).page(params[:page]).per(params[:per_page]) end diff --git a/app/controllers/spree/feedback_reviews_controller.rb b/app/controllers/spree/feedback_reviews_controller.rb index 39c182a9..c65551de 100644 --- a/app/controllers/spree/feedback_reviews_controller.rb +++ b/app/controllers/spree/feedback_reviews_controller.rb @@ -5,7 +5,6 @@ class Spree::FeedbackReviewsController < Spree::StoreController before_filter :load_review, only: [:create] def create - if @review.present? @feedback_review = @review.feedback_reviews.new(feedback_review_params) @feedback_review.user = spree_current_user @@ -16,12 +15,12 @@ def create respond_to do |format| format.html { redirect_to :back } - format.js { render :action => :create } + format.js { render action: :create } end - end protected + def load_review @review ||= Spree::Review.find_by_id!(params[:review_id]) end @@ -38,4 +37,3 @@ def sanitize_rating params[:feedback_review][:rating].to_s.sub!(/\s*[^0-9]*\z/,'') unless (params[:feedback_review] && params[:feedback_review][:rating].blank?) end end - diff --git a/app/controllers/spree/reviews_controller.rb b/app/controllers/spree/reviews_controller.rb index acf6d9e6..99f8f0ab 100644 --- a/app/controllers/spree/reviews_controller.rb +++ b/app/controllers/spree/reviews_controller.rb @@ -1,14 +1,14 @@ class Spree::ReviewsController < Spree::StoreController helper Spree::BaseHelper - before_filter :load_product, :only => [:index, :new, :create] - rescue_from ActiveRecord::RecordNotFound, :with => :render_404 + before_filter :load_product, only: [:index, :new, :create] + rescue_from ActiveRecord::RecordNotFound, with: :render_404 def index @approved_reviews = Spree::Review.approved.where(product: @product) end def new - @review = Spree::Review.new(:product => @product) + @review = Spree::Review.new(product: @product) authorize! :create, @review end @@ -44,5 +44,4 @@ def permitted_review_attributes def review_params params.require(:review).permit(permitted_review_attributes) end - end diff --git a/app/helpers/spree/reviews_helper.rb b/app/helpers/spree/reviews_helper.rb index d9d97015..f8750498 100644 --- a/app/helpers/spree/reviews_helper.rb +++ b/app/helpers/spree/reviews_helper.rb @@ -1,7 +1,6 @@ module Spree::ReviewsHelper - def star(the_class) - content_tag(:span, " ✮ ".html_safe, :class => the_class) + content_tag(:span, " ✮ ".html_safe, class: the_class) end def mk_stars(m) @@ -9,9 +8,8 @@ def mk_stars(m) end def txt_stars(n, show_out_of = true) - res = Spree.t('star', :count => n) + res = Spree.t('star', count: n) res += " #{Spree.t('out_of_5')}" if show_out_of res end - end diff --git a/app/models/spree/feedback_review.rb b/app/models/spree/feedback_review.rb index 854e0f40..33608f75 100644 --- a/app/models/spree/feedback_review.rb +++ b/app/models/spree/feedback_review.rb @@ -1,17 +1,14 @@ class Spree::FeedbackReview < ActiveRecord::Base - belongs_to :user, :class_name => Spree.user_class.to_s - + belongs_to :user, class_name: Spree.user_class.to_s belongs_to :review, dependent: :destroy - validates :review, presence: true + validates :review, presence: true validates :rating, numericality: { only_integer: true, - greater_than_or_equal_to: 1, + greater_than_or_equal_to: 1, less_than_or_equal_to: 5, message: Spree.t('you_must_enter_value_for_rating') } scope :most_recent_first, -> { order("spree_feedback_reviews.created_at DESC") } default_scope { most_recent_first } - scope :localized, lambda { |lc| where('spree_feedback_reviews.locale = ?', lc) } - end diff --git a/app/models/spree/product_decorator.rb b/app/models/spree/product_decorator.rb index a1e63ebd..7f815914 100644 --- a/app/models/spree/product_decorator.rb +++ b/app/models/spree/product_decorator.rb @@ -8,7 +8,6 @@ def stars def recalculate_rating reviews_count = self.reviews.reload.approved.count - self.reviews_count = reviews_count if reviews_count > 0 self.avg_rating = self.reviews.approved.sum(:rating).to_f / reviews_count @@ -17,5 +16,4 @@ def recalculate_rating end self.save end - end diff --git a/app/models/spree/review.rb b/app/models/spree/review.rb index ea966fce..90421fbd 100644 --- a/app/models/spree/review.rb +++ b/app/models/spree/review.rb @@ -1,22 +1,21 @@ class Spree::Review < ActiveRecord::Base belongs_to :product, touch: true - belongs_to :user, :class_name => Spree.user_class.to_s + belongs_to :user, class_name: Spree.user_class.to_s has_many :feedback_reviews - after_save :recalculate_product_rating, :if => :approved? + after_save :recalculate_product_rating, if: :approved? after_destroy :recalculate_product_rating validates :name, presence: true validates :review, presence: true - validates :rating, numericality: { only_integer: true, - greater_than_or_equal_to: 1, + greater_than_or_equal_to: 1, less_than_or_equal_to: 5, message: Spree.t('you_must_enter_value_for_rating') } default_scope { order("spree_reviews.created_at DESC") } - + scope :localized, ->(lc) { where('spree_reviews.locale = ?', lc) } scope :most_recent_first, -> { order('spree_reviews.created_at DESC') } scope :oldest_first, -> { reorder('spree_reviews.created_at ASC') } diff --git a/app/models/spree/reviews_configuration.rb b/app/models/spree/reviews_configuration.rb index bc4961a7..70ea6807 100644 --- a/app/models/spree/reviews_configuration.rb +++ b/app/models/spree/reviews_configuration.rb @@ -4,23 +4,23 @@ def self.boolean_preferences end # include non-approved reviews in (public) listings - preference :include_unapproved_reviews, :boolean, :default => false + preference :include_unapproved_reviews, :boolean, default: false # control how many reviews are shown in summaries etc. - preference :preview_size, :integer, :default => 3 + preference :preview_size, :integer, default: 3 # show a reviewer's email address - preference :show_email, :boolean, :default => false + preference :show_email, :boolean, default: false # show helpfullness rating form elements - preference :feedback_rating, :boolean, :default => false + preference :feedback_rating, :boolean, default: false # require login to post reviews - preference :require_login, :boolean, :default => true + preference :require_login, :boolean, default: true # whether to keep track of the reviewer's locale - preference :track_locale, :boolean, :default => false + preference :track_locale, :boolean, default: false # render checkbox for a user to approve to show their identifier (name or email) on their review - preference :render_show_identifier_checkbox, :boolean, :default => false + preference :render_show_identifier_checkbox, :boolean, default: false end diff --git a/app/overrides/add_reviews_after_product_properties.rb b/app/overrides/add_reviews_after_product_properties.rb index e13156e6..d2d94ece 100644 --- a/app/overrides/add_reviews_after_product_properties.rb +++ b/app/overrides/add_reviews_after_product_properties.rb @@ -1,5 +1,5 @@ -Deface::Override.new(:virtual_path => "spree/products/show", - :name => "converted_product_properties_767643482", - :insert_after => "[data-hook='product_properties']", - :partial => "spree/shared/reviews", - :disabled => false) +Deface::Override.new(virtual_path: "spree/products/show", + name: "converted_product_properties_767643482", + insert_after: "[data-hook='product_properties']", + partial: "spree/shared/reviews", + disabled: false) diff --git a/app/overrides/add_reviews_tab_to_admin.rb b/app/overrides/add_reviews_tab_to_admin.rb index c1d632a2..deef495e 100644 --- a/app/overrides/add_reviews_tab_to_admin.rb +++ b/app/overrides/add_reviews_tab_to_admin.rb @@ -1,4 +1,4 @@ -Deface::Override.new(:virtual_path => "spree/admin/shared/_product_sub_menu", - :name => "reviews_admin_tab", - :insert_bottom => "[data-hook='admin_product_sub_tabs']", - :text => "<%= tab(:reviews, :label => 'review_management') %>") \ No newline at end of file +Deface::Override.new(virtual_path: "spree/admin/shared/_product_sub_menu", + name: "reviews_admin_tab", + insert_bottom: "[data-hook='admin_product_sub_tabs']", + text: "<%= tab(:reviews, label: 'review_management') %>") diff --git a/app/overrides/add_reviews_to_admin_configuration_sidebar.rb b/app/overrides/add_reviews_to_admin_configuration_sidebar.rb index 4433c2fc..eea94d12 100644 --- a/app/overrides/add_reviews_to_admin_configuration_sidebar.rb +++ b/app/overrides/add_reviews_to_admin_configuration_sidebar.rb @@ -1,5 +1,5 @@ -Deface::Override.new(:virtual_path => "spree/admin/shared/_configuration_menu", - :name => "converted_admin_configurations_menu", - :insert_bottom => "[data-hook='admin_configurations_sidebar_menu'], #admin_configurations_sidebar_menu[data-hook]", - :text => "<%= configurations_sidebar_menu_item Spree.t('spree_reviews.review_settings'), edit_admin_review_settings_path %>", - :disabled => false) +Deface::Override.new(virtual_path: "spree/admin/shared/_configuration_menu", + name: "converted_admin_configurations_menu", + insert_bottom: "[data-hook='admin_configurations_sidebar_menu'], #admin_configurations_sidebar_menu[data-hook]", + text: "<%= configurations_sidebar_menu_item Spree.t('spree_reviews.review_settings'), edit_admin_review_settings_path %>", + disabled: false) diff --git a/app/views/spree/admin/feedback_reviews/index.html.erb b/app/views/spree/admin/feedback_reviews/index.html.erb index 558c6db1..bffde520 100644 --- a/app/views/spree/admin/feedback_reviews/index.html.erb +++ b/app/views/spree/admin/feedback_reviews/index.html.erb @@ -1,9 +1,9 @@ <% content_for :page_title do %> - <%= Spree.t('feedback_review_for', :review => @review.title) %> + <%= Spree.t('feedback_review_for', review: @review.title) %> <% end %> <% content_for :page_actions do %> -
<%= Spree::Review.human_attribute_name(:ip_address) %>: <%= review.ip_address ? link_to(review.ip_address, "http://whois.domaintools.com/#{review.ip_address}") : '-' %>
- <%= Spree.t('voice', :count => review.feedback_reviews.count) %>. + <%= Spree.t('voice', count: review.feedback_reviews.count) %>. - <%= render 'spree/reviews/stars', :stars => review.feedback_stars %> + <%= render 'spree/reviews/stars', stars: review.feedback_stars %>
diff --git a/app/views/spree/feedback_reviews/create.js.erb b/app/views/spree/feedback_reviews/create.js.erb index 914fc7a8..a9291e71 100644 --- a/app/views/spree/feedback_reviews/create.js.erb +++ b/app/views/spree/feedback_reviews/create.js.erb @@ -1,7 +1,6 @@ <% if @feedback_review.valid? %> -$("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render('spree/feedback_reviews/summary', :review => @review)) %>"); +$("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render('spree/feedback_reviews/summary', review: @review)) %>"); <% else %> -$("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render('spree/feedback_reviews/form', :review => @review)) %>"); - +$("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render('spree/feedback_reviews/form', review: @review)) %>"); <% end %> $(document).ready(function(){$("div#feedback_review_<%= @review.id %>").find(".star").rating({required:true});}); diff --git a/app/views/spree/reviews/_form.html.erb b/app/views/spree/reviews/_form.html.erb index bf4af24c..759e80ef 100644 --- a/app/views/spree/reviews/_form.html.erb +++ b/app/views/spree/reviews/_form.html.erb @@ -1,34 +1,34 @@ -<%= form_for review, :url => product_reviews_path(product), :html => {:method => :post} do |f| %> - <%= render "spree/shared/error_messages", :target => review %> +<%= form_for review, url: product_reviews_path(product), html: {method: :post} do |f| %> + <%= render "spree/shared/error_messages", target: review %>
<%= f.label :name %> *
- <%= f.text_field :name, :maxlength => "255", :size => "50" %>
+ <%= f.text_field :name, maxlength: "255", size: "50" %>
<%= f.label :title %>
- <%= f.text_field :title, :maxlength => "255", :size => "50" %>
+ <%= f.text_field :title, maxlength: "255", size: "50" %>
<%= f.label :review %> *
- <%= f.text_area :review, :wrap => "virtual", :rows => "10", :cols => "50" %>
+ <%= f.text_area :review, wrap: "virtual", rows: "10", cols: "50" %>
<%= f.label :show_identifier %>
- <%= f.check_box :show_identifier, :wrap => "virtual", :rows => "10", :cols => "50", :checked => true %>
+ <%= f.check_box :show_identifier, wrap: "virtual", rows: "10", cols: "50", checked: true %>
- <%= f.submit Spree.t(:submit_your_review), :class => "button bg_darkfirst" %> + <%= f.submit Spree.t(:submit_your_review), class: "button bg_darkfirst" %>
<% end %> diff --git a/app/views/spree/reviews/new.html.erb b/app/views/spree/reviews/new.html.erb index f6e14595..26c5995e 100644 --- a/app/views/spree/reviews/new.html.erb +++ b/app/views/spree/reviews/new.html.erb @@ -1,3 +1,2 @@ -<%= content_tag :h2, Spree.t(:leave_us_a_review_for, :name => @product.name), :class => 'new-review-title' %> - -<%= render 'form', :review => @review, :product => @product %> +<%= content_tag :h2, Spree.t(:leave_us_a_review_for, name: @product.name), class: 'new-review-title' %> +<%= render 'form', review: @review, product: @product %> diff --git a/app/views/spree/shared/_rating.html.erb b/app/views/spree/shared/_rating.html.erb index 7d358ff6..a757361c 100644 --- a/app/views/spree/shared/_rating.html.erb +++ b/app/views/spree/shared/_rating.html.erb @@ -1,13 +1,13 @@ <% stars = product.stars %> <% reviews_count = product.reviews_count %> diff --git a/app/views/spree/shared/_shortrating.html.erb b/app/views/spree/shared/_shortrating.html.erb index a4b47ecd..1e13916b 100644 --- a/app/views/spree/shared/_shortrating.html.erb +++ b/app/views/spree/shared/_shortrating.html.erb @@ -1,9 +1,9 @@ <% stars = product.stars %> <% reviews_count = product.reviews_count %> - <%= render 'spree/reviews/stars', :stars => stars %> + <%= render 'spree/reviews/stars', stars: stars %> - <%= Spree::Review.model_name.human(:count => reviews_count) %> + <%= Spree::Review.model_name.human(count: reviews_count) %>