diff options
author | José Valim and Mikel Lindsaar <pair@programming.com> | 2010-01-23 10:23:06 +0100 |
---|---|---|
committer | José Valim and Mikel Lindsaar <pair@programming.com> | 2010-01-23 10:23:06 +0100 |
commit | ddfc0725a062880131745a1c529e94541d4c9ee0 (patch) | |
tree | afe137e595afea7830bb233eb777e72353c9a3ac /actionpack/lib/abstract_controller | |
parent | 1ea84c38ea5b40642f3dcdb5ffca1c6fc9cc604d (diff) | |
download | rails-ddfc0725a062880131745a1c529e94541d4c9ee0.tar.gz rails-ddfc0725a062880131745a1c529e94541d4c9ee0.tar.bz2 rails-ddfc0725a062880131745a1c529e94541d4c9ee0.zip |
Added AbstractController::Collector.
Diffstat (limited to 'actionpack/lib/abstract_controller')
-rw-r--r-- | actionpack/lib/abstract_controller/collector.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/actionpack/lib/abstract_controller/collector.rb b/actionpack/lib/abstract_controller/collector.rb new file mode 100644 index 0000000000..d429333661 --- /dev/null +++ b/actionpack/lib/abstract_controller/collector.rb @@ -0,0 +1,30 @@ +module AbstractController + module Collector + def self.generate_method_for_mime(mime) + sym = mime.is_a?(Symbol) ? mime : mime.to_sym + const = sym.to_s.upcase + class_eval <<-RUBY, __FILE__, __LINE__ + 1 + def #{sym}(*args, &block) # def html(*args, &block) + custom(Mime::#{const}, *args, &block) # custom(Mime::HTML, *args, &block) + end # end + RUBY + end + + Mime::SET.each do |mime| + generate_method_for_mime(mime) + end + + protected + + def method_missing(symbol, &block) + mime_constant = Mime.const_get(symbol.to_s.upcase) + + if Mime::SET.include?(mime_constant) + AbstractController::Collector.generate_method_for_mime(mime_constant) + send(symbol, &block) + else + super + end + end + end +end
\ No newline at end of file |