Unify controller action for destroying an action into the todo controller and lay some groundwork for similar requests coming from different views. Fixes #343.

git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@300 a4c988fc-2ded-0310-b66e-134b36920a42
This commit is contained in:
lukemelia 2006-08-01 07:03:31 +00:00
parent 1f6a99a27f
commit 9392d4d696
23 changed files with 152 additions and 149 deletions

48
tracks/lib/source_view.rb Normal file
View file

@ -0,0 +1,48 @@
# Inspiration from Bruce Williams [http://codefluency.com/articles/2006/07/01/rails-views-getting-in-context/]
module Tracks
module SourceViewSwitching
class Responder
def initialize(source_view)
@source_view = source_view.underscore.gsub(/\s+/,'_').to_sym rescue nil
end
def nil?
yield if @source_view.nil? && block_given?
end
def method_missing(check_source_view,*args)
yield if check_source_view == @source_view && block_given?
end
end
module Controller
def self.included(base)
base.send(:helper, Tracks::SourceViewSwitching::Helper)
base.send(:helper_method, :source_view)
end
def source_view
responder = Tracks::SourceViewSwitching::Responder.new(params[:_source_view])
block_given? ? yield(responder) : responder
end
end
module Helper
def source_view_tag(name)
hidden_field_tag :_source_view, name.underscore.gsub(/\s+/,'_')
end
end
end
end
ActionController::Base.send(:include, Tracks::SourceViewSwitching::Controller)