lib/lolita/controllers/internal_helpers.rb in lolita-3.2.0.rc.6 vs lib/lolita/controllers/internal_helpers.rb in lolita-3.2.0.rc.7

- old
+ new

@@ -3,11 +3,11 @@ module InternalHelpers extend ActiveSupport::Concern included do helper LolitaHelper #TODO pārnest helperus uz lolitu vai arī uz lolita app nevis likt iekš controllers iekš lolitas - helpers = %w(resource resource_name + helpers = %w(resource resource_name use_mapping resource_class lolita_mapping show_response tab_form tab_form=) hide_action *helpers helper_method *helpers prepend_before_filter :is_lolita_resource? @@ -19,18 +19,18 @@ def resource instance_variable_get(:"@#{resource_name}") end def resource_name - lolita_mapping.name + lolita_mapping.class_name.underscore.to_sym end def resource_class lolita_mapping.to end - def lolita_mapping + def lolita_mapping(new_mapping = nil) @lolita_mapping||=request.env["lolita.mapping"] end def tab_form=(form) @tab_form = form @@ -43,10 +43,23 @@ content = yield @tab_form = old_form end @tab_form end + + def use_mapping(new_mapping) + if block_given? + begin + @old_mapping = lolita_mapping + @lolita_mapping = new_mapping + yield + ensure + @lolita_mapping = @old_mapping + @old_mapping = nil + end + end + end protected def notice(msg) response.headers["Lolita-Notice"] = Base64.encode64(msg) @@ -60,9 +73,10 @@ response.headers["Lolita-Error"] = Base64.encode64(msg) end def is_lolita_resource? raise ActionController::UnknownAction unless lolita_mapping + true end def resource=(new_resource) instance_variable_set(:"@#{resource_name}",new_resource) end \ No newline at end of file