lib/cantango/rails/helpers/rest_helper.rb in cantango-0.9.4 vs lib/cantango/rails/helpers/rest_helper.rb in cantango-0.9.4.1
- old
+ new
@@ -1,5 +1,28 @@
module CanTango::Rails::Helpers::RestHelper
+ CanTango.config.models.actions.each_pair do |model, actions|
+ actions.actions_for :member do |member_action|
+ class_eval %{
+ def #{member_action}_#{model.to_s.underscore}_path obj, options = {}
+ return unless can_perform_action?(user_type, :#{member_action}, obj)
+ # use i18n translation on label
+ link_to t(".#{member_action}"), rest_obj_action(obj, :#{member_action}, options)
+ end
+ }
+ end
+
+ actions.actions_for :collection do |collection_action|
+ class_eval %{
+ def #{collection_action}_#{model.to_s.underscore}_path obj, options = {}
+ clazz = obj.kind_of?(Class) ? obj : obj.class
+ return unless can_perform_action?(user_type, :#{collection_action}, clazz)
+ # use i18n translation on label
+ link_to t(".#{collection_action}"), send(action_method clazz, :#{collection_action}, options)
+ end
+ }
+ end
+ end
+
CanTango.config.models.available_models.each do |model|
class_eval %{
def delete_#{model.to_s.underscore}_path obj, options = {}
#{model}_path obj, {:method => 'delete'}.merge(options)
end