waves 0.7.6 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. data/app/Rakefile +64 -6
  2. data/app/configurations/development.rb.erb +2 -1
  3. data/app/configurations/mapping.rb.erb +1 -0
  4. data/app/configurations/production.rb.erb +1 -0
  5. data/app/lib/application.rb.erb +2 -2
  6. data/bin/waves +36 -1
  7. data/doc/HISTORY +44 -0
  8. data/doc/LICENSE +22 -0
  9. data/doc/rdoc/classes/Erubis/Context.html +218 -0
  10. data/doc/rdoc/classes/Kernel.html +145 -0
  11. data/doc/rdoc/classes/Symbol.html +154 -0
  12. data/doc/rdoc/classes/Tempfile.html +161 -0
  13. data/doc/rdoc/classes/Waves.html +455 -0
  14. data/doc/rdoc/classes/Waves/Application.html +371 -0
  15. data/doc/rdoc/classes/Waves/Blackboard.html +296 -0
  16. data/doc/rdoc/classes/Waves/Configurations.html +283 -0
  17. data/doc/rdoc/classes/Waves/Configurations/Base.html +209 -0
  18. data/doc/rdoc/classes/Waves/Configurations/Default.html +237 -0
  19. data/doc/rdoc/classes/Waves/Console.html +187 -0
  20. data/doc/rdoc/classes/Waves/Controllers.html +203 -0
  21. data/doc/rdoc/classes/Waves/Controllers/Base.html +151 -0
  22. data/doc/rdoc/classes/Waves/Controllers/Mixin.html +312 -0
  23. data/doc/rdoc/classes/Waves/Dispatchers.html +118 -0
  24. data/doc/rdoc/classes/Waves/Dispatchers/Base.html +198 -0
  25. data/doc/rdoc/classes/Waves/Dispatchers/Default.html +224 -0
  26. data/doc/rdoc/classes/Waves/Dispatchers/NotFoundError.html +122 -0
  27. data/doc/rdoc/classes/Waves/Dispatchers/Redirect.html +173 -0
  28. data/doc/rdoc/classes/Waves/Foundations.html +131 -0
  29. data/doc/rdoc/classes/Waves/Foundations/Default.html +179 -0
  30. data/doc/rdoc/classes/Waves/Foundations/Simple.html +167 -0
  31. data/doc/rdoc/classes/Waves/Helpers.html +176 -0
  32. data/doc/rdoc/classes/Waves/Helpers/AssetHelper.html +212 -0
  33. data/doc/rdoc/classes/Waves/Helpers/Common.html +213 -0
  34. data/doc/rdoc/classes/Waves/Helpers/Default.html +135 -0
  35. data/doc/rdoc/classes/Waves/Helpers/Form.html +201 -0
  36. data/doc/rdoc/classes/Waves/Helpers/Formatting.html +232 -0
  37. data/doc/rdoc/classes/Waves/Helpers/Model.html +194 -0
  38. data/doc/rdoc/classes/Waves/Helpers/NumberHelper.html +165 -0
  39. data/doc/rdoc/classes/Waves/Helpers/TagHelper.html +226 -0
  40. data/doc/rdoc/classes/Waves/Helpers/UrlHelper.html +242 -0
  41. data/doc/rdoc/classes/Waves/Helpers/View.html +163 -0
  42. data/doc/rdoc/classes/Waves/Inflect/InflectorMethods.html +475 -0
  43. data/doc/rdoc/classes/Waves/Layers.html +175 -0
  44. data/doc/rdoc/classes/Waves/Layers/DefaultErrors.html +161 -0
  45. data/doc/rdoc/classes/Waves/Layers/Inflect.html +119 -0
  46. data/doc/rdoc/classes/Waves/Layers/Inflect/English.html +168 -0
  47. data/doc/rdoc/classes/Waves/Layers/Inflect/English/Rules.html +112 -0
  48. data/doc/rdoc/classes/Waves/Layers/Inflect/English/StringMethods.html +194 -0
  49. data/doc/rdoc/classes/Waves/Layers/MVC.html +204 -0
  50. data/doc/rdoc/classes/Waves/Layers/ORM/ActiveRecord.html +239 -0
  51. data/doc/rdoc/classes/Waves/Layers/ORM/ActiveRecord/ControllerMethods.html +246 -0
  52. data/doc/rdoc/classes/Waves/Layers/ORM/ActiveRecord/Symbol.html +132 -0
  53. data/doc/rdoc/classes/Waves/Layers/ORM/DataMapper.html +166 -0
  54. data/doc/rdoc/classes/Waves/Layers/ORM/Filebase.html +157 -0
  55. data/doc/rdoc/classes/Waves/Layers/ORM/Sequel.html +232 -0
  56. data/doc/rdoc/classes/Waves/Layers/ORM/Sequel/ControllerMethods.html +246 -0
  57. data/doc/rdoc/classes/Waves/Layers/Simple.html +169 -0
  58. data/doc/rdoc/classes/Waves/Layers/SimpleErrors.html +159 -0
  59. data/doc/rdoc/classes/Waves/Logger.html +288 -0
  60. data/doc/rdoc/classes/Waves/Mapping.html +760 -0
  61. data/doc/rdoc/classes/Waves/Mapping/PrettyUrls.html +129 -0
  62. data/doc/rdoc/classes/Waves/Mapping/PrettyUrls/GetRules.html +174 -0
  63. data/doc/rdoc/classes/Waves/Mapping/PrettyUrls/RestRules.html +180 -0
  64. data/doc/rdoc/classes/Waves/MimeTypes.html +200 -0
  65. data/doc/rdoc/classes/Waves/Renderers/Erubis.html +162 -0
  66. data/doc/rdoc/classes/Waves/Renderers/Haml.html +160 -0
  67. data/doc/rdoc/classes/Waves/Renderers/Markaby.html +167 -0
  68. data/doc/rdoc/classes/Waves/Renderers/Mixin.html +191 -0
  69. data/doc/rdoc/classes/Waves/Renderers/Scope.html +181 -0
  70. data/doc/rdoc/classes/Waves/Request.html +441 -0
  71. data/doc/rdoc/classes/Waves/Request/ParseError.html +111 -0
  72. data/doc/rdoc/classes/Waves/Response.html +283 -0
  73. data/doc/rdoc/classes/Waves/ResponseMixin.html +460 -0
  74. data/doc/rdoc/classes/Waves/ResponseProxy.html +269 -0
  75. data/doc/rdoc/classes/Waves/Server.html +488 -0
  76. data/doc/rdoc/classes/Waves/Session.html +330 -0
  77. data/doc/rdoc/classes/Waves/Utilities/Hash.html +185 -0
  78. data/doc/rdoc/classes/Waves/Utilities/Integer.html +424 -0
  79. data/doc/rdoc/classes/Waves/Utilities/Module.html +174 -0
  80. data/doc/rdoc/classes/Waves/Utilities/Object.html +155 -0
  81. data/doc/rdoc/classes/Waves/Utilities/Proc.html +145 -0
  82. data/doc/rdoc/classes/Waves/Utilities/String.html +290 -0
  83. data/doc/rdoc/classes/Waves/Views.html +278 -0
  84. data/doc/rdoc/classes/Waves/Views/Base.html +118 -0
  85. data/doc/rdoc/classes/Waves/Views/Mixin.html +279 -0
  86. data/doc/rdoc/classes/Waves/Views/NoTemplateError.html +111 -0
  87. data/doc/rdoc/created.rid +1 -0
  88. data/doc/rdoc/files/README_rdoc.html +415 -0
  89. data/doc/rdoc/files/bin/waves.html +135 -0
  90. data/doc/rdoc/files/doc/HISTORY.html +265 -0
  91. data/doc/rdoc/files/lib/commands/waves-console_rb.html +110 -0
  92. data/doc/rdoc/files/lib/commands/waves-server_rb.html +108 -0
  93. data/doc/rdoc/files/lib/controllers/base_rb.html +101 -0
  94. data/doc/rdoc/files/lib/controllers/mixin_rb.html +101 -0
  95. data/doc/rdoc/files/lib/dispatchers/base_rb.html +101 -0
  96. data/doc/rdoc/files/lib/dispatchers/default_rb.html +101 -0
  97. data/doc/rdoc/files/lib/foundations/default_rb.html +101 -0
  98. data/doc/rdoc/files/lib/foundations/simple_rb.html +101 -0
  99. data/doc/rdoc/files/lib/helpers/asset_helper_rb.html +101 -0
  100. data/doc/rdoc/files/lib/helpers/common_rb.html +101 -0
  101. data/doc/rdoc/files/lib/helpers/default_rb.html +101 -0
  102. data/doc/rdoc/files/lib/helpers/form_rb.html +101 -0
  103. data/doc/rdoc/files/lib/helpers/formatting_rb.html +108 -0
  104. data/doc/rdoc/files/lib/helpers/model_rb.html +101 -0
  105. data/doc/rdoc/files/lib/helpers/number_helper_rb.html +101 -0
  106. data/doc/rdoc/files/lib/helpers/tag_helper_rb.html +101 -0
  107. data/doc/rdoc/files/lib/helpers/url_helper_rb.html +101 -0
  108. data/doc/rdoc/files/lib/helpers/view_rb.html +101 -0
  109. data/doc/rdoc/files/lib/layers/default_errors_rb.html +101 -0
  110. data/doc/rdoc/files/lib/layers/inflect/english/rules_rb.html +101 -0
  111. data/doc/rdoc/files/lib/layers/inflect/english/string_rb.html +101 -0
  112. data/doc/rdoc/files/lib/layers/inflect/english_rb.html +109 -0
  113. data/doc/rdoc/files/lib/layers/mvc_rb.html +101 -0
  114. data/doc/rdoc/files/lib/layers/orm/active_record/tasks/generate_rb.html +101 -0
  115. data/doc/rdoc/files/lib/layers/orm/active_record/tasks/schema_rb.html +101 -0
  116. data/doc/rdoc/files/lib/layers/orm/active_record_rb.html +108 -0
  117. data/doc/rdoc/files/lib/layers/orm/data_mapper_rb.html +108 -0
  118. data/doc/rdoc/files/lib/layers/orm/filebase_rb.html +101 -0
  119. data/doc/rdoc/files/lib/layers/orm/migration_rb.html +101 -0
  120. data/doc/rdoc/files/lib/layers/orm/sequel/tasks/generate_rb.html +101 -0
  121. data/doc/rdoc/files/lib/layers/orm/sequel/tasks/schema_rb.html +101 -0
  122. data/doc/rdoc/files/lib/layers/orm/sequel_rb.html +108 -0
  123. data/doc/rdoc/files/lib/layers/simple_errors_rb.html +101 -0
  124. data/doc/rdoc/files/lib/layers/simple_rb.html +101 -0
  125. data/doc/rdoc/files/lib/mapping/mapping_rb.html +101 -0
  126. data/doc/rdoc/files/lib/mapping/pretty_urls_rb.html +101 -0
  127. data/doc/rdoc/files/lib/renderers/erubis_rb.html +108 -0
  128. data/doc/rdoc/files/lib/renderers/haml_rb.html +108 -0
  129. data/doc/rdoc/files/lib/renderers/markaby_rb.html +108 -0
  130. data/doc/rdoc/files/lib/renderers/mixin_rb.html +101 -0
  131. data/doc/rdoc/files/lib/runtime/application_rb.html +107 -0
  132. data/doc/rdoc/files/lib/runtime/blackboard_rb.html +101 -0
  133. data/doc/rdoc/files/lib/runtime/configuration_rb.html +101 -0
  134. data/doc/rdoc/files/lib/runtime/console_rb.html +101 -0
  135. data/doc/rdoc/files/lib/runtime/debugger_rb.html +101 -0
  136. data/doc/rdoc/files/lib/runtime/logger_rb.html +108 -0
  137. data/doc/rdoc/files/lib/runtime/mime_types_rb.html +101 -0
  138. data/doc/rdoc/files/lib/runtime/request_rb.html +101 -0
  139. data/doc/rdoc/files/lib/runtime/response_mixin_rb.html +101 -0
  140. data/doc/rdoc/files/lib/runtime/response_proxy_rb.html +101 -0
  141. data/doc/rdoc/files/lib/runtime/response_rb.html +101 -0
  142. data/doc/rdoc/files/lib/runtime/server_rb.html +108 -0
  143. data/doc/rdoc/files/lib/runtime/session_rb.html +101 -0
  144. data/doc/rdoc/files/lib/tasks/cluster_rb.html +101 -0
  145. data/doc/rdoc/files/lib/tasks/gem_rb.html +108 -0
  146. data/doc/rdoc/files/lib/tasks/generate_rb.html +101 -0
  147. data/doc/rdoc/files/lib/utilities/hash_rb.html +101 -0
  148. data/doc/rdoc/files/lib/utilities/inflect_rb.html +111 -0
  149. data/doc/rdoc/files/lib/utilities/integer_rb.html +101 -0
  150. data/doc/rdoc/files/lib/utilities/module_rb.html +101 -0
  151. data/doc/rdoc/files/lib/utilities/object_rb.html +101 -0
  152. data/doc/rdoc/files/lib/utilities/proc_rb.html +101 -0
  153. data/doc/rdoc/files/lib/utilities/string_rb.html +101 -0
  154. data/doc/rdoc/files/lib/utilities/symbol_rb.html +101 -0
  155. data/doc/rdoc/files/lib/utilities/tempfile_rb.html +115 -0
  156. data/doc/rdoc/files/lib/views/base_rb.html +101 -0
  157. data/doc/rdoc/files/lib/views/mixin_rb.html +101 -0
  158. data/doc/rdoc/files/lib/waves_rb.html +195 -0
  159. data/doc/rdoc/fr_class_index.html +104 -0
  160. data/doc/rdoc/fr_file_index.html +97 -0
  161. data/doc/rdoc/fr_method_index.html +233 -0
  162. data/doc/rdoc/index.html +24 -0
  163. data/doc/rdoc/rdoc-style.css +208 -0
  164. data/lib/foundations/default.rb +1 -0
  165. data/lib/layers/default_errors.rb +10 -13
  166. data/lib/layers/inflect/english.rb +24 -0
  167. data/lib/layers/inflect/english/rules.rb +88 -0
  168. data/lib/layers/inflect/english/string.rb +24 -0
  169. data/lib/layers/mvc.rb +31 -35
  170. data/lib/layers/orm/active_record.rb +83 -32
  171. data/lib/layers/orm/active_record/tasks/generate.rb +28 -0
  172. data/lib/layers/orm/active_record/tasks/schema.rb +7 -15
  173. data/lib/layers/orm/data_mapper.rb +12 -16
  174. data/lib/layers/orm/migration.rb +20 -11
  175. data/lib/layers/orm/sequel.rb +53 -49
  176. data/lib/layers/orm/sequel/tasks/generate.rb +28 -0
  177. data/lib/layers/orm/sequel/tasks/schema.rb +6 -14
  178. data/lib/layers/simple.rb +6 -13
  179. data/lib/layers/simple_errors.rb +5 -8
  180. data/lib/renderers/haml.rb +45 -0
  181. data/lib/runtime/application.rb +0 -2
  182. data/lib/tasks/cluster.rb +1 -1
  183. data/lib/utilities/inflect.rb +86 -168
  184. data/lib/utilities/integer.rb +23 -16
  185. data/lib/utilities/module.rb +19 -15
  186. data/lib/utilities/object.rb +22 -14
  187. data/lib/utilities/proc.rb +13 -7
  188. data/lib/utilities/string.rb +0 -12
  189. data/lib/utilities/symbol.rb +4 -1
  190. data/lib/utilities/tempfile.rb +9 -0
  191. data/lib/waves.rb +3 -1
  192. data/samples/blog/Rakefile +14 -0
  193. data/samples/blog/bin/waves-console +3 -0
  194. data/samples/blog/bin/waves-server +3 -0
  195. data/samples/blog/blog.db +0 -0
  196. data/samples/blog/configurations/development.rb +31 -0
  197. data/samples/blog/configurations/mapping.rb +23 -0
  198. data/samples/blog/configurations/production.rb +30 -0
  199. data/samples/blog/doc/EMTPY +0 -0
  200. data/samples/blog/lib/application.rb +5 -0
  201. data/samples/blog/models/comment.rb +14 -0
  202. data/samples/blog/models/entry.rb +14 -0
  203. data/samples/blog/public/css/site.css +2 -0
  204. data/samples/blog/public/javascript/site.js +13 -0
  205. data/samples/blog/schema/migrations/001_initial_schema.rb +17 -0
  206. data/samples/blog/schema/migrations/002_add_comments.rb +18 -0
  207. data/samples/blog/schema/migrations/templates/empty.rb.erb +9 -0
  208. data/samples/blog/startup.rb +6 -0
  209. data/samples/blog/templates/comment/add.mab +10 -0
  210. data/samples/blog/templates/comment/list.mab +6 -0
  211. data/samples/blog/templates/entry/editor.mab +13 -0
  212. data/samples/blog/templates/entry/list.mab +11 -0
  213. data/samples/blog/templates/entry/show.mab +9 -0
  214. data/samples/blog/templates/entry/summary.mab +5 -0
  215. data/samples/blog/templates/errors/not_found_404.mab +2 -0
  216. data/samples/blog/templates/errors/server_error_500.mab +2 -0
  217. data/samples/blog/templates/layouts/default.mab +17 -0
  218. data/samples/jub/Rakefile +72 -0
  219. data/samples/jub/bin/waves-console +4 -0
  220. data/samples/jub/bin/waves-server +4 -0
  221. data/samples/jub/configurations/development.rb +31 -0
  222. data/samples/jub/configurations/mapping.rb +18 -0
  223. data/samples/jub/configurations/production.rb +31 -0
  224. data/samples/jub/lib/application.rb +5 -0
  225. data/samples/jub/startup.rb +6 -0
  226. data/samples/jub/templates/errors/not_found_404.mab +2 -0
  227. data/samples/jub/templates/errors/server_error_500.mab +2 -0
  228. data/samples/jub/templates/layouts/default.mab +14 -0
  229. data/verify/app_generation/helpers.rb +24 -0
  230. data/verify/app_generation/startup.rb +39 -0
  231. data/verify/blackboard/blackboard_verify.rb +92 -0
  232. data/verify/blackboard/helpers.rb +5 -0
  233. data/verify/configurations/attributes.rb +37 -0
  234. data/verify/configurations/helpers.rb +1 -0
  235. data/verify/configurations/rack_integration.rb +29 -0
  236. data/verify/controllers/base.rb +37 -0
  237. data/verify/controllers/helpers.rb +13 -0
  238. data/verify/controllers/interface.rb +51 -0
  239. data/verify/core/helpers.rb +3 -0
  240. data/verify/core/utilities.rb +177 -0
  241. data/verify/foundations/default.rb +86 -0
  242. data/verify/foundations/default_application/Rakefile +14 -0
  243. data/verify/foundations/default_application/bin/waves-console +3 -0
  244. data/verify/foundations/default_application/bin/waves-server +3 -0
  245. data/verify/foundations/default_application/configurations/development.rb +26 -0
  246. data/verify/foundations/default_application/configurations/mapping.rb +14 -0
  247. data/verify/foundations/default_application/configurations/production.rb +30 -0
  248. data/verify/foundations/default_application/controllers/default.rb +15 -0
  249. data/verify/foundations/default_application/controllers/loaded.rb +15 -0
  250. data/verify/foundations/default_application/defaultapplication.db +0 -0
  251. data/verify/foundations/default_application/helpers/loaded.rb +10 -0
  252. data/verify/foundations/default_application/lib/application.rb +5 -0
  253. data/verify/foundations/default_application/models/default.rb +13 -0
  254. data/verify/foundations/default_application/models/loaded.rb +13 -0
  255. data/verify/foundations/default_application/schema/migrations/templates/empty.rb.erb +9 -0
  256. data/verify/foundations/default_application/startup.rb +7 -0
  257. data/verify/foundations/default_application/templates/errors/not_found_404.mab +2 -0
  258. data/verify/foundations/default_application/templates/errors/server_error_500.mab +2 -0
  259. data/verify/foundations/default_application/templates/layouts/default.mab +14 -0
  260. data/verify/foundations/default_application/views/default.rb +7 -0
  261. data/verify/foundations/default_application/views/loaded.rb +15 -0
  262. data/verify/foundations/helpers.rb +1 -0
  263. data/verify/foundations/simple.rb +25 -0
  264. data/verify/helpers.rb +76 -0
  265. data/verify/layers/data_mapper/association_verify.rb +87 -0
  266. data/verify/layers/default_errors.rb +29 -0
  267. data/verify/layers/helpers.rb +1 -0
  268. data/verify/layers/migration.rb +33 -0
  269. data/verify/layers/sequel/model.rb +41 -0
  270. data/verify/layers/sequeltest.db +0 -0
  271. data/verify/mapping/always.rb +19 -0
  272. data/verify/mapping/filters.rb +65 -0
  273. data/verify/mapping/handle.rb +24 -0
  274. data/verify/mapping/helpers.rb +7 -0
  275. data/verify/mapping/matches.rb +27 -0
  276. data/verify/mapping/named.rb +29 -0
  277. data/verify/mapping/options.rb +17 -0
  278. data/verify/mapping/path.rb +40 -0
  279. data/verify/mapping/response_proxy.rb +50 -0
  280. data/verify/mapping/threaded.rb +25 -0
  281. data/verify/requests/helpers.rb +16 -0
  282. data/verify/requests/request.rb +73 -0
  283. data/verify/requests/response.rb +59 -0
  284. data/verify/requests/session.rb +54 -0
  285. data/verify/views/helpers.rb +1 -0
  286. data/verify/views/rendering.rb +34 -0
  287. data/verify/views/templates/foo.erb +0 -0
  288. data/verify/views/templates/moo.erb +0 -0
  289. data/verify/views/templates/moo.mab +0 -0
  290. metadata +597 -224
  291. data/lib/utilities/kernel.rb +0 -34
@@ -0,0 +1,163 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Waves::Helpers::View</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Waves::Helpers::View</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/helpers/view_rb.html">
59
+ lib/helpers/view.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+ <div id="description">
76
+ <p>
77
+ <a href="View.html">View</a> helpers are intended to help reuse views from
78
+ within other views. Both the <tt>layout</tt> method in the common helpers
79
+ and the <tt>property</tt> method of the form helpers are specialized
80
+ instance of this.
81
+ </p>
82
+ <p>
83
+ The star of our show here is the <tt><a
84
+ href="View.html#M000082">view</a></tt> method. This takes a model, <a
85
+ href="View.html#M000082">view</a>, and assigns hash (which are converted
86
+ into instance variables in the target <a href="View.html#M000082">view</a>)
87
+ and returns the result of evaluating the <a
88
+ href="View.html#M000082">view</a> as content in the current template.
89
+ </p>
90
+
91
+ </div>
92
+
93
+
94
+ </div>
95
+
96
+ <div id="method-list">
97
+ <h3 class="section-bar">Methods</h3>
98
+
99
+ <div class="name-list">
100
+ <a href="#M000082">view</a>&nbsp;&nbsp;
101
+ </div>
102
+ </div>
103
+
104
+ </div>
105
+
106
+
107
+ <!-- if includes -->
108
+
109
+ <div id="section">
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+ <!-- if method_list -->
119
+ <div id="methods">
120
+ <h3 class="section-bar">Public Instance methods</h3>
121
+
122
+ <div id="method-M000082" class="method-detail">
123
+ <a name="M000082"></a>
124
+
125
+ <div class="method-heading">
126
+ <a href="#M000082" class="method-signature">
127
+ <span class="method-name">view</span><span class="method-args">( model, view, assigns = {} )</span>
128
+ </a>
129
+ </div>
130
+
131
+ <div class="method-description">
132
+ <p>
133
+ Invokes the <a href="View.html#M000082">view</a> for the given model,
134
+ passing the assigns as instance variables.
135
+ </p>
136
+ <p><a class="source-toggle" href="#"
137
+ onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
138
+ <div class="method-source-code" id="M000082-source">
139
+ <pre>
140
+ <span class="ruby-comment cmt"># File lib/helpers/view.rb, line 15</span>
141
+ 15: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">view</span>( <span class="ruby-identifier">model</span>, <span class="ruby-identifier">view</span>, <span class="ruby-identifier">assigns</span> = {} )
142
+ 16: <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Waves</span>.<span class="ruby-identifier">application</span>.<span class="ruby-identifier">views</span>[ <span class="ruby-identifier">model</span> ].<span class="ruby-identifier">process</span>( <span class="ruby-identifier">request</span> ) <span class="ruby-keyword kw">do</span>
143
+ 17: <span class="ruby-identifier">send</span>( <span class="ruby-identifier">view</span>, <span class="ruby-identifier">assigns</span> )
144
+ 18: <span class="ruby-keyword kw">end</span>
145
+ 19: <span class="ruby-keyword kw">end</span>
146
+ </pre>
147
+ </div>
148
+ </div>
149
+ </div>
150
+
151
+
152
+ </div>
153
+
154
+
155
+ </div>
156
+
157
+
158
+ <div id="validator-badges">
159
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
160
+ </div>
161
+
162
+ </body>
163
+ </html>
@@ -0,0 +1,475 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Waves::Inflect::InflectorMethods</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Waves::Inflect::InflectorMethods</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/utilities/inflect_rb.html">
59
+ lib/utilities/inflect.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+
76
+
77
+ </div>
78
+
79
+ <div id="method-list">
80
+ <h3 class="section-bar">Methods</h3>
81
+
82
+ <div class="name-list">
83
+ <a href="#M000021">plural</a>&nbsp;&nbsp;
84
+ <a href="#M000018">plural_of</a>&nbsp;&nbsp;
85
+ <a href="#M000015">plural_rule</a>&nbsp;&nbsp;
86
+ <a href="#M000012">plural_word</a>&nbsp;&nbsp;
87
+ <a href="#M000017">pluralization_rules</a>&nbsp;&nbsp;
88
+ <a href="#M000013">rule</a>&nbsp;&nbsp;
89
+ <a href="#M000020">singular</a>&nbsp;&nbsp;
90
+ <a href="#M000019">singular_of</a>&nbsp;&nbsp;
91
+ <a href="#M000014">singular_rule</a>&nbsp;&nbsp;
92
+ <a href="#M000011">singular_word</a>&nbsp;&nbsp;
93
+ <a href="#M000016">singularization_rules</a>&nbsp;&nbsp;
94
+ <a href="#M000010">word</a>&nbsp;&nbsp;
95
+ </div>
96
+ </div>
97
+
98
+ </div>
99
+
100
+
101
+ <!-- if includes -->
102
+
103
+ <div id="section">
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+ <!-- if method_list -->
113
+ <div id="methods">
114
+ <h3 class="section-bar">Public Instance methods</h3>
115
+
116
+ <div id="method-M000021" class="method-detail">
117
+ <a name="M000021"></a>
118
+
119
+ <div class="method-heading">
120
+ <a href="#M000021" class="method-signature">
121
+ <span class="method-name">plural</span><span class="method-args">(word)</span>
122
+ </a>
123
+ </div>
124
+
125
+ <div class="method-description">
126
+ <p>
127
+ Convert an English <a href="InflectorMethods.html#M000010">word</a> from <a
128
+ href="InflectorMethods.html#M000020">singular</a> to plurel.
129
+ </p>
130
+ <pre>
131
+ &quot;boy&quot;.plural #=&gt; boys
132
+ &quot;tomato&quot;.plural #=&gt; tomatoes
133
+ </pre>
134
+ <p><a class="source-toggle" href="#"
135
+ onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
136
+ <div class="method-source-code" id="M000021-source">
137
+ <pre>
138
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 97</span>
139
+ 97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">plural</span>(<span class="ruby-identifier">word</span>)
140
+ 98: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span> = <span class="ruby-identifier">plural_of</span>[<span class="ruby-identifier">word</span>]
141
+ 99: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">dup</span>
142
+ 100: <span class="ruby-keyword kw">end</span>
143
+ 101: <span class="ruby-comment cmt">#return self.dup if /s$/ =~ self # ???</span>
144
+ 102: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">word</span>.<span class="ruby-identifier">dup</span>
145
+ 103: <span class="ruby-identifier">pluralization_rules</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">match</span>, <span class="ruby-identifier">replacement</span>)<span class="ruby-operator">|</span>
146
+ 104: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-identifier">match</span>, <span class="ruby-identifier">replacement</span>)
147
+ 105: <span class="ruby-keyword kw">end</span>
148
+ 106: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
149
+ 107: <span class="ruby-keyword kw">end</span>
150
+ </pre>
151
+ </div>
152
+ </div>
153
+ </div>
154
+
155
+ <div id="method-M000018" class="method-detail">
156
+ <a name="M000018"></a>
157
+
158
+ <div class="method-heading">
159
+ <a href="#M000018" class="method-signature">
160
+ <span class="method-name">plural_of</span><span class="method-args">()</span>
161
+ </a>
162
+ </div>
163
+
164
+ <div class="method-description">
165
+ <p><a class="source-toggle" href="#"
166
+ onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
167
+ <div class="method-source-code" id="M000018-source">
168
+ <pre>
169
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 67</span>
170
+ 67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">plural_of</span>
171
+ 68: <span class="ruby-ivar">@plural_of</span> <span class="ruby-operator">||=</span> {}
172
+ 69: <span class="ruby-keyword kw">end</span>
173
+ </pre>
174
+ </div>
175
+ </div>
176
+ </div>
177
+
178
+ <div id="method-M000015" class="method-detail">
179
+ <a name="M000015"></a>
180
+
181
+ <div class="method-heading">
182
+ <a href="#M000015" class="method-signature">
183
+ <span class="method-name">plural_rule</span><span class="method-args">(singular, plural)</span>
184
+ </a>
185
+ </div>
186
+
187
+ <div class="method-description">
188
+ <p>
189
+ Define a plurualization <a href="InflectorMethods.html#M000013">rule</a>.
190
+ </p>
191
+ <p><a class="source-toggle" href="#"
192
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
193
+ <div class="method-source-code" id="M000015-source">
194
+ <pre>
195
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 42</span>
196
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">plural_rule</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>)
197
+ 43: (<span class="ruby-ivar">@plural_rules</span> <span class="ruby-operator">||=</span> []) <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>]
198
+ 44: <span class="ruby-keyword kw">end</span>
199
+ </pre>
200
+ </div>
201
+ </div>
202
+ </div>
203
+
204
+ <div id="method-M000012" class="method-detail">
205
+ <a name="M000012"></a>
206
+
207
+ <div class="method-heading">
208
+ <a href="#M000012" class="method-signature">
209
+ <span class="method-name">plural_word</span><span class="method-args">(singular, plural)</span>
210
+ </a>
211
+ </div>
212
+
213
+ <div class="method-description">
214
+ <p>
215
+ Define a pluralization exception.
216
+ </p>
217
+ <p><a class="source-toggle" href="#"
218
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
219
+ <div class="method-source-code" id="M000012-source">
220
+ <pre>
221
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 25</span>
222
+ 25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">plural_word</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>)
223
+ 26: <span class="ruby-ivar">@plural_of</span> <span class="ruby-operator">||=</span> {}
224
+ 27: <span class="ruby-ivar">@plural_of</span>[<span class="ruby-identifier">singular</span>] = <span class="ruby-identifier">plural</span>
225
+ 28: <span class="ruby-keyword kw">end</span>
226
+ </pre>
227
+ </div>
228
+ </div>
229
+ </div>
230
+
231
+ <div id="method-M000017" class="method-detail">
232
+ <a name="M000017"></a>
233
+
234
+ <div class="method-heading">
235
+ <a href="#M000017" class="method-signature">
236
+ <span class="method-name">pluralization_rules</span><span class="method-args">()</span>
237
+ </a>
238
+ </div>
239
+
240
+ <div class="method-description">
241
+ <p>
242
+ Read prepared pluralization rules.
243
+ </p>
244
+ <p><a class="source-toggle" href="#"
245
+ onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
246
+ <div class="method-source-code" id="M000017-source">
247
+ <pre>
248
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 57</span>
249
+ 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pluralization_rules</span>
250
+ 58: <span class="ruby-ivar">@plural_rules</span> <span class="ruby-operator">||=</span> []
251
+ 59: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@pluralization_rules</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@pluralization_rules</span>
252
+ 60: <span class="ruby-identifier">sorted</span> = <span class="ruby-ivar">@plural_rules</span>.<span class="ruby-identifier">sort_by</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">s</span>, <span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;#{s}&quot;</span>.<span class="ruby-identifier">size</span> }.<span class="ruby-identifier">reverse</span>
253
+ 61: <span class="ruby-ivar">@pluralization_rules</span> = <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span>, <span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
254
+ 62: [ <span class="ruby-node">/#{s}$/</span>, <span class="ruby-node">&quot;#{p}&quot;</span> ]
255
+ 63: <span class="ruby-keyword kw">end</span>
256
+ 64: <span class="ruby-keyword kw">end</span>
257
+ </pre>
258
+ </div>
259
+ </div>
260
+ </div>
261
+
262
+ <div id="method-M000013" class="method-detail">
263
+ <a name="M000013"></a>
264
+
265
+ <div class="method-heading">
266
+ <a href="#M000013" class="method-signature">
267
+ <span class="method-name">rule</span><span class="method-args">(singular, plural)</span>
268
+ </a>
269
+ </div>
270
+
271
+ <div class="method-description">
272
+ <p>
273
+ Define a general <a href="InflectorMethods.html#M000013">rule</a>.
274
+ </p>
275
+ <p><a class="source-toggle" href="#"
276
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
277
+ <div class="method-source-code" id="M000013-source">
278
+ <pre>
279
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 31</span>
280
+ 31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rule</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>)
281
+ 32: <span class="ruby-identifier">singular_rule</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>)
282
+ 33: <span class="ruby-identifier">plural_rule</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>)
283
+ 34: <span class="ruby-keyword kw">end</span>
284
+ </pre>
285
+ </div>
286
+ </div>
287
+ </div>
288
+
289
+ <div id="method-M000020" class="method-detail">
290
+ <a name="M000020"></a>
291
+
292
+ <div class="method-heading">
293
+ <a href="#M000020" class="method-signature">
294
+ <span class="method-name">singular</span><span class="method-args">(word)</span>
295
+ </a>
296
+ </div>
297
+
298
+ <div class="method-description">
299
+ <p>
300
+ Convert an English <a href="InflectorMethods.html#M000010">word</a> from <a
301
+ href="InflectorMethods.html#M000021">plural</a> to <a
302
+ href="InflectorMethods.html#M000020">singular</a>.
303
+ </p>
304
+ <pre>
305
+ &quot;boys&quot;.singular #=&gt; boy
306
+ &quot;tomatoes&quot;.singular #=&gt; tomato
307
+ </pre>
308
+ <p><a class="source-toggle" href="#"
309
+ onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
310
+ <div class="method-source-code" id="M000020-source">
311
+ <pre>
312
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 81</span>
313
+ 81: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singular</span>(<span class="ruby-identifier">word</span>)
314
+ 82: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span> = <span class="ruby-identifier">singular_of</span>[<span class="ruby-identifier">word</span>]
315
+ 83: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">dup</span>
316
+ 84: <span class="ruby-keyword kw">end</span>
317
+ 85: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">word</span>.<span class="ruby-identifier">dup</span>
318
+ 86: <span class="ruby-identifier">singularization_rules</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">match</span>, <span class="ruby-identifier">replacement</span>)<span class="ruby-operator">|</span>
319
+ 87: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-identifier">match</span>, <span class="ruby-identifier">replacement</span>)
320
+ 88: <span class="ruby-keyword kw">end</span>
321
+ 89: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
322
+ 90: <span class="ruby-keyword kw">end</span>
323
+ </pre>
324
+ </div>
325
+ </div>
326
+ </div>
327
+
328
+ <div id="method-M000019" class="method-detail">
329
+ <a name="M000019"></a>
330
+
331
+ <div class="method-heading">
332
+ <a href="#M000019" class="method-signature">
333
+ <span class="method-name">singular_of</span><span class="method-args">()</span>
334
+ </a>
335
+ </div>
336
+
337
+ <div class="method-description">
338
+ <p><a class="source-toggle" href="#"
339
+ onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
340
+ <div class="method-source-code" id="M000019-source">
341
+ <pre>
342
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 72</span>
343
+ 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singular_of</span>
344
+ 73: <span class="ruby-ivar">@singular_of</span> <span class="ruby-operator">||=</span> {}
345
+ 74: <span class="ruby-keyword kw">end</span>
346
+ </pre>
347
+ </div>
348
+ </div>
349
+ </div>
350
+
351
+ <div id="method-M000014" class="method-detail">
352
+ <a name="M000014"></a>
353
+
354
+ <div class="method-heading">
355
+ <a href="#M000014" class="method-signature">
356
+ <span class="method-name">singular_rule</span><span class="method-args">(singular, plural)</span>
357
+ </a>
358
+ </div>
359
+
360
+ <div class="method-description">
361
+ <p>
362
+ Define a singularization <a href="InflectorMethods.html#M000013">rule</a>.
363
+ </p>
364
+ <p><a class="source-toggle" href="#"
365
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
366
+ <div class="method-source-code" id="M000014-source">
367
+ <pre>
368
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 37</span>
369
+ 37: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singular_rule</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>)
370
+ 38: (<span class="ruby-ivar">@singular_rules</span> <span class="ruby-operator">||=</span> []) <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>]
371
+ 39: <span class="ruby-keyword kw">end</span>
372
+ </pre>
373
+ </div>
374
+ </div>
375
+ </div>
376
+
377
+ <div id="method-M000011" class="method-detail">
378
+ <a name="M000011"></a>
379
+
380
+ <div class="method-heading">
381
+ <a href="#M000011" class="method-signature">
382
+ <span class="method-name">singular_word</span><span class="method-args">(singular, plural)</span>
383
+ </a>
384
+ </div>
385
+
386
+ <div class="method-description">
387
+ <p>
388
+ Define a singularization exception.
389
+ </p>
390
+ <p><a class="source-toggle" href="#"
391
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
392
+ <div class="method-source-code" id="M000011-source">
393
+ <pre>
394
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 19</span>
395
+ 19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singular_word</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>)
396
+ 20: <span class="ruby-ivar">@singular_of</span> <span class="ruby-operator">||=</span> {}
397
+ 21: <span class="ruby-ivar">@singular_of</span>[<span class="ruby-identifier">plural</span>] = <span class="ruby-identifier">singular</span>
398
+ 22: <span class="ruby-keyword kw">end</span>
399
+ </pre>
400
+ </div>
401
+ </div>
402
+ </div>
403
+
404
+ <div id="method-M000016" class="method-detail">
405
+ <a name="M000016"></a>
406
+
407
+ <div class="method-heading">
408
+ <a href="#M000016" class="method-signature">
409
+ <span class="method-name">singularization_rules</span><span class="method-args">()</span>
410
+ </a>
411
+ </div>
412
+
413
+ <div class="method-description">
414
+ <p>
415
+ Read prepared singularization rules.
416
+ </p>
417
+ <p><a class="source-toggle" href="#"
418
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
419
+ <div class="method-source-code" id="M000016-source">
420
+ <pre>
421
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 47</span>
422
+ 47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singularization_rules</span>
423
+ 48: <span class="ruby-ivar">@singular_rules</span> <span class="ruby-operator">||=</span> []
424
+ 49: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@singularization_rules</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@singularization_rules</span>
425
+ 50: <span class="ruby-identifier">sorted</span> = <span class="ruby-ivar">@singular_rules</span>.<span class="ruby-identifier">sort_by</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">s</span>, <span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;#{p}&quot;</span>.<span class="ruby-identifier">size</span> }.<span class="ruby-identifier">reverse</span>
426
+ 51: <span class="ruby-ivar">@singularization_rules</span> = <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span>, <span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
427
+ 52: [ <span class="ruby-node">/#{p}$/</span>, <span class="ruby-node">&quot;#{s}&quot;</span> ]
428
+ 53: <span class="ruby-keyword kw">end</span>
429
+ 54: <span class="ruby-keyword kw">end</span>
430
+ </pre>
431
+ </div>
432
+ </div>
433
+ </div>
434
+
435
+ <div id="method-M000010" class="method-detail">
436
+ <a name="M000010"></a>
437
+
438
+ <div class="method-heading">
439
+ <a href="#M000010" class="method-signature">
440
+ <span class="method-name">word</span><span class="method-args">(singular, plural=nil)</span>
441
+ </a>
442
+ </div>
443
+
444
+ <div class="method-description">
445
+ <p>
446
+ Define a general exception.
447
+ </p>
448
+ <p><a class="source-toggle" href="#"
449
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
450
+ <div class="method-source-code" id="M000010-source">
451
+ <pre>
452
+ <span class="ruby-comment cmt"># File lib/utilities/inflect.rb, line 12</span>
453
+ 12: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">word</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>=<span class="ruby-keyword kw">nil</span>)
454
+ 13: <span class="ruby-identifier">plural</span> = <span class="ruby-identifier">singular</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">plural</span>
455
+ 14: <span class="ruby-identifier">singular_word</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>)
456
+ 15: <span class="ruby-identifier">plural_word</span>(<span class="ruby-identifier">singular</span>, <span class="ruby-identifier">plural</span>)
457
+ 16: <span class="ruby-keyword kw">end</span>
458
+ </pre>
459
+ </div>
460
+ </div>
461
+ </div>
462
+
463
+
464
+ </div>
465
+
466
+
467
+ </div>
468
+
469
+
470
+ <div id="validator-badges">
471
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
472
+ </div>
473
+
474
+ </body>
475
+ </html>