draper 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ Gemfile.lock
5
5
  pkg/*
6
6
  coverage.data
7
7
  coverage/*
8
+ .yardoc
@@ -0,0 +1 @@
1
+ yardoc 'lib/draper/**/*.rb' -m markdown
data/Gemfile CHANGED
@@ -9,5 +9,6 @@ gem 'guard-rspec'
9
9
  gem 'launchy'
10
10
  gem 'rcov', :platforms => [:mri_18]
11
11
  gem 'cover_me', '>= 1.0.0.rc6', :platforms => [:mri_19]
12
+ gem 'yard'
12
13
 
13
14
  gemspec
@@ -28,7 +28,7 @@ This gem makes it easy to apply the decorator pattern to domain models in a Rail
28
28
 
29
29
  ### 1. Object Oriented Helpers
30
30
 
31
- Why hate helpers? In Ruby/Rails we approach everything from an Object-Oriented perspective, then with helpers we get procedural.The job of a helper is to take in data and output a presentation-ready string. We can do that with a decorator.
31
+ Why hate normal helpers? In Ruby/Rails we approach everything from an Object-Oriented perspective, then with helpers we get procedural.The job of a helper is to take in data and output a presentation-ready string. We can do that with a decorator.
32
32
 
33
33
  A decorator wraps an object with presentation-related accessor methods. For instance, if you had an `Article` object, then the decorator could override `.published_at` to use formatted output like this:
34
34
 
@@ -102,11 +102,11 @@ end
102
102
  ```
103
103
 
104
104
  ```irb
105
- > ad = ArticleDecorator.find(1)
106
- => #<ArticleDecorator:0x000001020d7728 @model=#<Article id: 1, title: "Hello, World">>
107
- > ad.title
108
- => "Hello, World"
109
- > ad.created_at
105
+ > ad = ArticleDecorator.find(1)
106
+ => #<ArticleDecorator:0x000001020d7728 @model=#<Article id: 1, title: "Hello, World">>
107
+ > ad.title
108
+ => "Hello, World"
109
+ > ad.created_at
110
110
  NoMethodError: undefined method `created_at' for #<ArticleDecorator:0x000001020d7728>
111
111
  ```
112
112
 
@@ -135,9 +135,22 @@ config.generators do |g|
135
135
  g.helper false
136
136
  end
137
137
  ```
138
-
139
138
  If you want a helper, you can still call `rails generate helper` directly.
140
139
 
140
+
141
+ #### Add DecoratorGenerator to ActiveRecord Generator (Optional)
142
+
143
+ Add the following to your `config/application.rb`
144
+
145
+ ```ruby
146
+ config.generators do |g|
147
+ g.orm :decorator, :invoke_after_finished => "active_record:model"
148
+ end
149
+ ```
150
+
151
+ From now on, every model you generate will first invoke the DecoratorGenerator. The Decorator will then invoke the active_record:model Generator.
152
+
153
+
141
154
  ### Generate the Decorator
142
155
 
143
156
  To decorate a model named `Article`:
@@ -199,20 +212,22 @@ When writing your controller actions, you have three options:
199
212
 
200
213
  * Call `.new` and pass in the object to be wrapped
201
214
 
202
- ```ruby
203
- ArticleDecorator.new(Article.find(params[:id]))`
204
- ```
215
+ ```ruby
216
+ ArticleDecorator.new(Article.find(params[:id]))`
217
+ ```
205
218
 
206
219
  * Call `.decorate` and pass in an object or collection of objects to be wrapped:
207
- ```ruby
208
- ArticleDecorator.decorate(Article.first) # Returns one instance of ArticleDecorator
209
- ArticleDecorator.decorate(Article.all) # Returns an array of ArticleDecorator instances
210
- ```
220
+
221
+ ```ruby
222
+ ArticleDecorator.decorate(Article.first) # Returns one instance of ArticleDecorator
223
+ ArticleDecorator.decorate(Article.all) # Returns an array of ArticleDecorator instances
224
+ ```
211
225
 
212
226
  * Call `.find` to do automatically do a lookup on the `decorates` class:
213
- ```ruby
214
- ArticleDecorator.find(1)
215
- ```
227
+
228
+ ```ruby
229
+ ArticleDecorator.find(1)
230
+ ```
216
231
 
217
232
  ### In Your Views
218
233
 
@@ -0,0 +1,147 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: ApplicationDecorator
8
+
9
+ &mdash; Documentation by YARD 0.7.2
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="_index.html">Index (A)</a> &raquo;
37
+
38
+
39
+ <span class="title">ApplicationDecorator</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Class: ApplicationDecorator
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+ <dt class="r1">Inherits:</dt>
68
+ <dd class="r1">
69
+ <span class="inheritName"><span class='object_link'><a href="Draper/Base.html" title="Draper::Base (class)">Draper::Base</a></span></span>
70
+
71
+ <ul class="fullTree">
72
+ <li>Object</li>
73
+
74
+ <li class="next"><span class='object_link'><a href="Draper/Base.html" title="Draper::Base (class)">Draper::Base</a></span></li>
75
+
76
+ <li class="next">ApplicationDecorator</li>
77
+
78
+ </ul>
79
+ <a href="#" class="inheritanceTree">show all</a>
80
+
81
+ </dd>
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+ <dt class="r2 last">Defined in:</dt>
92
+ <dd class="r2 last">lib/generators/draper/decorator/templates/application_decorator.rb</dd>
93
+
94
+ </dl>
95
+ <div class="clear"></div>
96
+
97
+
98
+ <h2>Constant Summary</h2>
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+ <h3 class="inherited">Constants inherited from <span class='object_link'><a href="Draper/Base.html" title="Draper::Base (class)">Draper::Base</a></span></h3>
107
+ <p class="inherited"><span class='object_link'><a href="Draper/Base.html#DEFAULT_DENIED-constant" title="Draper::Base::DEFAULT_DENIED (constant)">DEFAULT_DENIED</a></span>, <span class='object_link'><a href="Draper/Base.html#FORCED_PROXY-constant" title="Draper::Base::FORCED_PROXY (constant)">FORCED_PROXY</a></span></p>
108
+
109
+
110
+
111
+
112
+
113
+
114
+ <h2>Instance Attribute Summary</h2>
115
+
116
+ <h3 class="inherited">Attributes inherited from <span class='object_link'><a href="Draper/Base.html" title="Draper::Base (class)">Draper::Base</a></span></h3>
117
+ <p class="inherited"><span class='object_link'><a href="Draper/Base.html#context-instance_method" title="Draper::Base#context (method)">context</a></span>, <span class='object_link'><a href="Draper/Base.html#model-instance_method" title="Draper::Base#model (method)">model</a></span></p>
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+ <h2>Method Summary</h2>
127
+
128
+ <h3 class="inherited">Methods inherited from <span class='object_link'><a href="Draper/Base.html" title="Draper::Base (class)">Draper::Base</a></span></h3>
129
+ <p class="inherited"><span class='object_link'><a href="Draper/Base.html#allows-class_method" title="Draper::Base.allows (method)">allows</a></span>, <span class='object_link'><a href="Draper/Base.html#decorate-class_method" title="Draper::Base.decorate (method)">decorate</a></span>, <span class='object_link'><a href="Draper/Base.html#decorates-class_method" title="Draper::Base.decorates (method)">decorates</a></span>, <span class='object_link'><a href="Draper/Base.html#denies-class_method" title="Draper::Base.denies (method)">denies</a></span>, <span class='object_link'><a href="Draper/Base.html#find-class_method" title="Draper::Base.find (method)">find</a></span>, <span class='object_link'><a href="Draper/Base.html#helpers-instance_method" title="Draper::Base#helpers (method)">#helpers</a></span>, <span class='object_link'><a href="Draper/Base.html#initialize-instance_method" title="Draper::Base#initialize (method)">#initialize</a></span>, <span class='object_link'><a href="Draper/Base.html#lazy_helpers-class_method" title="Draper::Base.lazy_helpers (method)">lazy_helpers</a></span>, <span class='object_link'><a href="Draper/Base.html#model_name-class_method" title="Draper::Base.model_name (method)">model_name</a></span>, <span class='object_link'><a href="Draper/Base.html#to_model-instance_method" title="Draper::Base#to_model (method)">#to_model</a></span></p>
130
+ <div id="constructor_details" class="method_details_list">
131
+ <h2>Constructor Details</h2>
132
+
133
+ <p class="notice">This class inherits a constructor from <span class='object_link'><a href="Draper/Base.html#initialize-instance_method" title="Draper::Base#initialize (method)">Draper::Base</a></span></p>
134
+
135
+ </div>
136
+
137
+
138
+ </div>
139
+
140
+ <div id="footer">
141
+ Generated on Wed Aug 31 23:53:09 2011 by
142
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
143
+ 0.7.2 (ruby-1.8.7).
144
+ </div>
145
+
146
+ </body>
147
+ </html>
@@ -0,0 +1,123 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Draper
8
+
9
+ &mdash; Documentation by YARD 0.7.2
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="_index.html">Index (D)</a> &raquo;
37
+
38
+
39
+ <span class="title">Draper</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Module: Draper
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+ <dt class="r1 last">Defined in:</dt>
75
+ <dd class="r1 last">lib/draper/base.rb<span class="defines">,<br />
76
+ lib/draper/system.rb,<br /> lib/draper/version.rb,<br /> lib/draper/all_helpers.rb,<br /> lib/draper/lazy_helpers.rb</span>
77
+ </dd>
78
+
79
+ </dl>
80
+ <div class="clear"></div>
81
+
82
+ <h2>Defined Under Namespace</h2>
83
+ <p class="children">
84
+
85
+
86
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Draper/AllHelpers.html" title="Draper::AllHelpers (module)">AllHelpers</a></span>, <span class='object_link'><a href="Draper/LazyHelpers.html" title="Draper::LazyHelpers (module)">LazyHelpers</a></span>, <span class='object_link'><a href="Draper/ModelSupport.html" title="Draper::ModelSupport (module)">ModelSupport</a></span>
87
+
88
+
89
+
90
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Draper/Base.html" title="Draper::Base (class)">Base</a></span>, <span class='object_link'><a href="Draper/System.html" title="Draper::System (class)">System</a></span>
91
+
92
+
93
+ </p>
94
+
95
+ <h2>Constant Summary</h2>
96
+
97
+ <dl class="constants">
98
+
99
+ <dt id="VERSION-constant" class="">VERSION =
100
+
101
+ </dt>
102
+ <dd><pre class="code"><span class='string val'>&quot;0.7.3&quot;</span>
103
+ </pre></dd>
104
+
105
+ </dl>
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+ </div>
115
+
116
+ <div id="footer">
117
+ Generated on Thu Sep 1 01:13:36 2011 by
118
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
119
+ 0.7.2 (ruby-1.8.7).
120
+ </div>
121
+
122
+ </body>
123
+ </html>
@@ -0,0 +1,256 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Draper::AllHelpers
8
+
9
+ &mdash; Documentation by YARD 0.7.2
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '..';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="../_index.html">Index (A)</a> &raquo;
37
+ <span class='title'><span class='object_link'><a href="../Draper.html" title="Draper (module)">Draper</a></span></span>
38
+ &raquo;
39
+ <span class="title">AllHelpers</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Module: Draper::AllHelpers
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+ <dt class="r1 last">Defined in:</dt>
75
+ <dd class="r1 last">lib/draper/all_helpers.rb</dd>
76
+
77
+ </dl>
78
+ <div class="clear"></div>
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+ <h2>
87
+ Instance Method Summary
88
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
89
+ </h2>
90
+
91
+ <ul class="summary">
92
+
93
+ <li class="public ">
94
+ <span class="summary_signature">
95
+
96
+ <a href="#all_helpers-instance_method" title="#all_helpers (instance method)">- (Object) <strong>all_helpers</strong> </a>
97
+
98
+
99
+
100
+ </span>
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+ <span class="summary_desc"><div class='inline'><p>Most of the black magic here thanks to Xavier Shay (@xshay)
110
+ Provide access to helper methods from outside controllers and views,
111
+ such as in Presenter objects.</p>
112
+ </div></span>
113
+
114
+ </li>
115
+
116
+
117
+ </ul>
118
+
119
+
120
+
121
+
122
+ <div id="instance_method_details" class="method_details_list">
123
+ <h2>Instance Method Details</h2>
124
+
125
+
126
+ <div class="method_details first">
127
+ <p class="signature first" id="all_helpers-instance_method">
128
+
129
+ - (<tt>Object</tt>) <strong>all_helpers</strong>
130
+
131
+
132
+
133
+ </p><div class="docstring">
134
+ <div class="discussion">
135
+ <p>Most of the black magic here thanks to Xavier Shay (@xshay)
136
+ Provide access to helper methods from outside controllers and views,
137
+ such as in Presenter objects. Rails provides ActionController::Base.helpers,
138
+ but this does not include any of our application helpers.</p>
139
+
140
+
141
+ </div>
142
+ </div>
143
+ <div class="tags">
144
+
145
+ </div><table class="source_code">
146
+ <tr>
147
+ <td>
148
+ <pre class="lines">
149
+
150
+
151
+ 7
152
+ 8
153
+ 9
154
+ 10
155
+ 11
156
+ 12
157
+ 13
158
+ 14
159
+ 15
160
+ 16
161
+ 17
162
+ 18
163
+ 19
164
+ 20
165
+ 21
166
+ 22
167
+ 23
168
+ 24
169
+ 25
170
+ 26
171
+ 27
172
+ 28
173
+ 29
174
+ 30
175
+ 31
176
+ 32
177
+ 33
178
+ 34
179
+ 35
180
+ 36
181
+ 37
182
+ 38
183
+ 39
184
+ 40
185
+ 41
186
+ 42
187
+ 43
188
+ 44
189
+ 45
190
+ 46
191
+ 47
192
+ 48</pre>
193
+ </td>
194
+ <td>
195
+ <pre class="code"><span class="info file"># File 'lib/draper/all_helpers.rb', line 7</span>
196
+
197
+ <span class='def def kw'>def</span> <span class='all_helpers identifier id'>all_helpers</span>
198
+ <span class='@all_helpers_proxy ivar id'>@all_helpers_proxy</span> <span class='opasgn op'>||=</span> <span class='begin begin kw'>begin</span>
199
+ <span class='comment val'># Start with just the rails helpers. This is the same method used</span>
200
+ <span class='comment val'># by ActionController::Base.helpers</span>
201
+ <span class='comment val'># proxy = ActionView::Base.new.extend(_helpers)</span>
202
+ <span class='proxy identifier id'>proxy</span> <span class='assign token'>=</span> <span class='ActionController constant id'>ActionController</span><span class='colon2 op'>::</span><span class='Base constant id'>Base</span><span class='dot token'>.</span><span class='helpers identifier id'>helpers</span>
203
+
204
+ <span class='comment val'># url_for depends on _routes method being defined</span>
205
+ <span class='proxy identifier id'>proxy</span><span class='dot token'>.</span><span class='instance_eval identifier id'>instance_eval</span> <span class='do do kw'>do</span>
206
+ <span class='def def kw'>def</span> <span class='_routes identifier id'>_routes</span>
207
+ <span class='Rails constant id'>Rails</span><span class='dot token'>.</span><span class='application identifier id'>application</span><span class='dot token'>.</span><span class='routes identifier id'>routes</span>
208
+ <span class='end end kw'>end</span>
209
+ <span class='end end kw'>end</span>
210
+
211
+ <span class='comment val'># Import all named path methods</span>
212
+ <span class='proxy identifier id'>proxy</span><span class='dot token'>.</span><span class='extend identifier id'>extend</span><span class='lparen token'>(</span><span class='Rails constant id'>Rails</span><span class='dot token'>.</span><span class='application identifier id'>application</span><span class='dot token'>.</span><span class='routes identifier id'>routes</span><span class='dot token'>.</span><span class='named_routes identifier id'>named_routes</span><span class='dot token'>.</span><span class='module identifier id'>module</span><span class='rparen token'>)</span>
213
+
214
+ <span class='comment val'># Load all our application helpers to extend</span>
215
+ <span class='modules_for_helpers identifier id'>modules_for_helpers</span><span class='lparen token'>(</span><span class='lbrack token'>[</span><span class='symbol val'>:all</span><span class='rbrack token'>]</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='mod identifier id'>mod</span><span class='bitor op'>|</span>
216
+ <span class='proxy identifier id'>proxy</span><span class='dot token'>.</span><span class='extend identifier id'>extend</span><span class='lparen token'>(</span><span class='mod identifier id'>mod</span><span class='rparen token'>)</span>
217
+ <span class='end end kw'>end</span>
218
+
219
+ <span class='proxy identifier id'>proxy</span><span class='dot token'>.</span><span class='instance_eval identifier id'>instance_eval</span> <span class='do do kw'>do</span>
220
+ <span class='def def kw'>def</span> <span class='controller identifier id'>controller</span>
221
+ <span class='comment val'>#Object.controller</span>
222
+ <span class='end end kw'>end</span>
223
+ <span class='end end kw'>end</span>
224
+
225
+ <span class='proxy identifier id'>proxy</span><span class='dot token'>.</span><span class='instance_eval identifier id'>instance_eval</span> <span class='do do kw'>do</span>
226
+ <span class='comment val'># A hack since this proxy doesn't pick up default_url_options from anywhere</span>
227
+ <span class='def def kw'>def</span> <span class='url_for identifier id'>url_for</span><span class='lparen token'>(</span><span class='mult op'>*</span><span class='args identifier id'>args</span><span class='rparen token'>)</span>
228
+ <span class='if if kw'>if</span> <span class='args identifier id'>args</span><span class='dot token'>.</span><span class='last identifier id'>last</span><span class='dot token'>.</span><span class='is_a? fid id'>is_a?</span><span class='lparen token'>(</span><span class='Hash constant id'>Hash</span><span class='rparen token'>)</span> <span class='andop op'>&amp;&amp;</span> <span class='notop op'>!</span><span class='args identifier id'>args</span><span class='dot token'>.</span><span class='last identifier id'>last</span><span class='lbrack token'>[</span><span class='symbol val'>:only_path</span><span class='rbrack token'>]</span>
229
+ <span class='args identifier id'>args</span> <span class='assign token'>=</span> <span class='args identifier id'>args</span><span class='dot token'>.</span><span class='dup identifier id'>dup</span>
230
+ <span class='args identifier id'>args</span> <span class='lshft op'>&lt;&lt;</span> <span class='args identifier id'>args</span><span class='dot token'>.</span><span class='pop identifier id'>pop</span><span class='dot token'>.</span><span class='merge identifier id'>merge</span><span class='lparen token'>(</span><span class='string val'>'host'</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='ActionMailer constant id'>ActionMailer</span><span class='colon2 op'>::</span><span class='Base constant id'>Base</span><span class='dot token'>.</span><span class='default_url_options identifier id'>default_url_options</span><span class='lbrack token'>[</span><span class='symbol val'>:host</span><span class='rbrack token'>]</span><span class='rparen token'>)</span>
231
+ <span class='end end kw'>end</span>
232
+ <span class='super super kw'>super</span><span class='lparen token'>(</span><span class='mult op'>*</span><span class='args identifier id'>args</span><span class='rparen token'>)</span>
233
+ <span class='end end kw'>end</span>
234
+ <span class='end end kw'>end</span>
235
+
236
+ <span class='proxy identifier id'>proxy</span>
237
+ <span class='end end kw'>end</span>
238
+ <span class='end end kw'>end</span>
239
+ </pre>
240
+ </td>
241
+ </tr>
242
+ </table>
243
+ </div>
244
+
245
+ </div>
246
+
247
+ </div>
248
+
249
+ <div id="footer">
250
+ Generated on Thu Sep 1 01:13:37 2011 by
251
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
252
+ 0.7.2 (ruby-1.8.7).
253
+ </div>
254
+
255
+ </body>
256
+ </html>