From 61e5ec24e7b4ab48300b61d111d8efa2d24ff1ac Mon Sep 17 00:00:00 2001 From: David Cook Date: Fri, 23 Aug 2013 14:35:42 +1000 Subject: [PATCH] Generalise ModelClassFromControllerName --- .../spree/admin/reports_controller_decorator.rb | 7 ++----- lib/open_food_web/model_class_from_controller_name.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 lib/open_food_web/model_class_from_controller_name.rb diff --git a/app/controllers/spree/admin/reports_controller_decorator.rb b/app/controllers/spree/admin/reports_controller_decorator.rb index 244c62163f..73339a3e10 100644 --- a/app/controllers/spree/admin/reports_controller_decorator.rb +++ b/app/controllers/spree/admin/reports_controller_decorator.rb @@ -2,8 +2,10 @@ require 'csv' require 'open_food_web/order_and_distributor_report' require 'open_food_web/group_buy_report' require 'open_food_web/order_grouper' +require 'open_food_web/model_class_from_controller_name' Spree::Admin::ReportsController.class_eval do + include OpenFoodWeb::ModelClassFromControllerName Spree::Admin::ReportsController::AVAILABLE_REPORTS.merge!({:orders_and_distributors => {:name => "Orders And Distributors", :description => "Orders with distributor details"}}) Spree::Admin::ReportsController::AVAILABLE_REPORTS.merge!({:group_buys => {:name => "Group Buys", :description => "Orders by supplier and variant"}}) @@ -11,11 +13,6 @@ Spree::Admin::ReportsController.class_eval do Spree::Admin::ReportsController::AVAILABLE_REPORTS.merge!({:payments => {:name => "Payment Reports", :description => "Reports for Payments"}}) Spree::Admin::ReportsController::AVAILABLE_REPORTS.merge!({:order_cycles => {:name => "Order Cycle Reports", :description => "Reports for Order Cycles"}}) - # Equivalent to CanCan's "authorize_resource :class => false" (see https://github.com/ryanb/cancan/blob/60cf6a67ef59c0c9b63bc27ea0101125c4193ea6/lib/cancan/controller_resource.rb#L146) - def model_class - self.class.to_s.sub("Controller", "").underscore.split('/').last.singularize.to_sym - end - def orders_and_distributors params[:q] = {} unless params[:q] diff --git a/lib/open_food_web/model_class_from_controller_name.rb b/lib/open_food_web/model_class_from_controller_name.rb new file mode 100644 index 0000000000..deac2ee078 --- /dev/null +++ b/lib/open_food_web/model_class_from_controller_name.rb @@ -0,0 +1,8 @@ +module OpenFoodWeb + module ModelClassFromControllerName + # Equivalent to CanCan's "authorize_resource :class => false" (see https://github.com/ryanb/cancan/blob/master/lib/cancan/controller_resource.rb#L146) + def model_class + self.class.to_s.sub("Controller", "").underscore.split('/').last.singularize.to_sym + end + end +end \ No newline at end of file