Changeset 263

Show
Ignore:
Timestamp:
06/06/07 18:03:03 (1 year ago)
Author:
wyca..@gmail.com
Message:

Initial draft of MailController?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Rakefile

    r258 r263  
    1616 
    1717NAME = "merb" 
    18 VERS = "0.3.4
     18VERS = "0.3.5
    1919CLEAN.include ['**/.*.sw?', '*.gem', '.config'] 
    2020 
  • trunk/lib/merb/core_ext/merb_enumerable.rb

    r107 r263  
    55    end 
    66  end 
     7   
     8  def include_any? *args 
     9    args.any? {|arg| self.include?(arg) } 
     10  end 
    711end 
  • trunk/lib/merb/core_ext/merb_hash.rb

    r253 r263  
    130130  def []=(key, value) 
    131131    regular_writer(convert_key(key), convert_value(value)) 
     132    (meta_def key do; value; end) unless MerbHash.method_defined?(key) 
     133    (meta_def "#{key}=" do |val|; self[key] = val; end) unless MerbHash.method_defined?("#{key}=") 
    132134  end 
    133135 
     
    167169  end 
    168170 
    169   # allow merbhash.key to work the same as merbhash[key] 
    170171  def method_missing(m,*a) 
    171172    m.to_s =~ /=$/ ? self[$`]=a[0] : a==[] ? self[m] : raise(NoMethodError,"#{m}") 
  • trunk/lib/merb/generators/merb_app/merb_app.rb

    r258 r263  
    2020      Find.find(@path) do |f| 
    2121        FileUtils.rm_rf(f) if /\.svn$/ =~ f 
    22       end       
     22      end 
     23      mailer_path = File.expand_path(File.join(@path, "dist", "app", "mailers")) 
     24      FileUtils.mkdir_p(["#{mailer_path}/helpers", "#{mailer_path}/views", "#{@path}/log"]) 
    2325      puts 'Done'  
    2426    end   
  • trunk/lib/merb/merb_abstract_controller.rb

    r256 r263  
    1212      start = Time.now 
    1313      setup_session if respond_to?:setup_session 
    14       cought = catch(:halt) { call_filters(before_filters) } 
    15       @body = case cought 
     14      caught = catch(:halt) { call_filters(before_filters) } 
     15      @body = case caught 
    1616      when :filter_chain_completed 
    1717        send(action) 
    1818      when String 
    19         cought 
     19        caught 
    2020      when nil 
    2121        filters_halted 
    2222      when Symbol 
    23         send(cought) 
     23        send(caught) 
    2424      when Proc 
    25         cought.call(self)   
     25        caught.call(self)   
    2626      else 
    2727        raise MerbControllerError, "The before filter chain is broken dude. wtf?" 
  • trunk/lib/merb/merb_controller.rb

    r257 r263  
    9898    end 
    9999     
     100    # Sends a mail from a MailController 
     101    # 
     102    #   send_mail FooMailer, :bar, :from => "foo@bar.com", :to => "baz@bat.com" 
     103    #  
     104    # would send an email via the FooMailer's bar method. 
     105    # 
     106    # mail_params, a hash, would be sent to the mailer, and includes items like from, to 
     107    # subject, and cc. See Merb::MailController#dispatch_and_deliver for more details. 
     108    # 
     109    # send_params, a hash, would be sent to the MailController, and is available to methods 
     110    # in the MailController as <tt>params</tt>. If you do not send any send_params, this 
     111    # controller's params will be available to the MailController as <tt>params</tt> 
     112    def send_mail klass, method, mail_params, send_params = nil 
     113      klass.new(send_params || params, self).dispatch_and_deliver(method, mail_params) 
     114    end 
     115     
    100116  end   
    101117   
  • trunk/lib/merb/merb_mailer.rb

    r260 r263  
    66  MERB_LOGGER.warn "You need to install the mailfactory gem to use Merb::Mailer" 
    77end   
     8 
     9class MailFactory 
     10  attr_reader :html, :text 
     11end 
    812 
    913module Merb 
  • trunk/lib/merb/mixins/render_mixin.rb

    r251 r263  
    198198        else 
    199199          raise "called find_template without an :action or :layout"   
    200         end         
     200        end 
    201201        extensions = [@@template_extensions.keys].flatten.uniq 
    202202        glob = "#{path}.{#{opts[:ext] || extensions.join(',')}}" 
  • trunk/tools/allison/cache/BODY

    r246 r263  
    1 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>%title%</title><link type="text/css" media="screen" href="%style_url%" rel="stylesheet"/><script type="text/javascript"> 
     1<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>%title%</title><link type="text/css" rel="stylesheet" media="screen" href="%style_url%"/><script type="text/javascript"> 
    22// Javascript for Allison RDoc template 
    33// Copyright 2006 Cloudburst LLC 
     
    402402</div> 
    403403ENDIF:methods 
    404 <div id="spacer"></div><div class="navigation dark index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a href="#" id="class_link" onclick="toggle('class'); toggleText('class_link'); return false;">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('class', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_class"></input></form></div></div><div class="navigation dark index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a href="#" id="file_link" onclick="toggle('file'); toggleText('file_link'); return false;">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('file', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_file"></input></form></div></div><div class="navigation dark index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a href="#" id="method_link" onclick="toggle('method'); toggleText('method_link'); return false;">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('method', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_method"></input></form></div></div><div class="curve" id="left_curve_0"></div><div class="curve" id="left_curve_1"></div><div class="curve" id="left_curve_2"></div><div class="curve" id="left_curve_3"></div><div class="curve" id="left_curve_4"></div><div class="curve" id="left_curve_5"></div><div class="curve" id="left_curve_6"></div><div class="curve" id="left_curve_7"></div><div class="curve" id="left_curve_8"></div><div class="curve" id="left_curve_9"></div></div><div id="content"> 
     404<div id="spacer"></div><div class="navigation dark index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a onclick="toggle('class'); toggleText('class_link'); return false;" href="#" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('class', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_class"></input></form></div></div><div class="navigation dark index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a onclick="toggle('file'); toggleText('file_link'); return false;" href="#" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('file', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_file"></input></form></div></div><div class="navigation dark index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a onclick="toggle('method'); toggleText('method_link'); return false;" href="#" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('method', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_method"></input></form></div></div><div class="curve" id="left_curve_0"></div><div class="curve" id="left_curve_1"></div><div class="curve" id="left_curve_2"></div><div class="curve" id="left_curve_3"></div><div class="curve" id="left_curve_4"></div><div class="curve" id="left_curve_5"></div><div class="curve" id="left_curve_6"></div><div class="curve" id="left_curve_7"></div><div class="curve" id="left_curve_8"></div><div class="curve" id="left_curve_9"></div></div><div id="content"> 
    405405IF:title 
    406406<h1 id="item_name">%title%</h1> 
     
    572572 
    573573IF:sourcecode 
    574 <p class="source_link" id="%aref%-show-link"><a href="#" id="%aref%-link" onclick="toggle('%aref%-source'); toggleText('%aref%-link'); return false;">Show source...</a></p><div class="source" id="%aref%-source"><pre>%sourcecode%</pre></div> 
     574<p class="source_link" id="%aref%-show-link"><a onclick="toggle('%aref%-source'); toggleText('%aref%-link'); return false;" href="#" id="%aref%-link">Show source...</a></p><div class="source" id="%aref%-source"><pre>%sourcecode%</pre></div> 
    575575ENDIF:sourcecode 
    576576</div></div> 
  • trunk/tools/allison/cache/INDEX

    r246 r263  
    1 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>%title%</title><link type="text/css" media="screen" href="rdoc-style.css" rel="stylesheet"/><meta content="0;url=%initial_page%" http-equiv="refresh"/></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div class="curve" id="preheader_curve_6"></div><div class="curve" id="preheader_curve_7"></div><div class="curve" id="preheader_curve_8"></div><div class="curve" id="preheader_curve_9"></div><div id="header"><span id="title"><p>&nbsp;</p><h1>Ruby Documentation</h1></span></div><div class="clear"></div><div id="redirect"><a href="%initial_page%"><h1>Redirect</h1></a></div></div></body></html> 
     1<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>%title%</title><link type="text/css" rel="stylesheet" media="screen" href="rdoc-style.css"/><meta content="0;url=%initial_page%" http-equiv="refresh"/></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div class="curve" id="preheader_curve_6"></div><div class="curve" id="preheader_curve_7"></div><div class="curve" id="preheader_curve_8"></div><div class="curve" id="preheader_curve_9"></div><div id="header"><span id="title"><p>&nbsp;</p><h1>Ruby Documentation</h1></span></div><div class="clear"></div><div id="redirect"><a href="%initial_page%"><h1>Redirect</h1></a></div></div></body></html>