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