rango 0.0.3

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 (616) hide show
  1. data/CHANGELOG +8 -0
  2. data/LICENSE +20 -0
  3. data/README.textile +18 -0
  4. data/bin/rango +30 -0
  5. data/doc/head/Array.html +114 -0
  6. data/doc/head/AttributeMixin.html +613 -0
  7. data/doc/head/Class.html +102 -0
  8. data/doc/head/ColoredString.html +476 -0
  9. data/doc/head/Hash.html +643 -0
  10. data/doc/head/Kernel.html +641 -0
  11. data/doc/head/Object.html +140 -0
  12. data/doc/head/ObjectSpace.html +103 -0
  13. data/doc/head/Path.html +2499 -0
  14. data/doc/head/Range.html +109 -0
  15. data/doc/head/Rango.html +397 -0
  16. data/doc/head/Rango/ApplicationMixin.html +396 -0
  17. data/doc/head/Rango/Bundling.html +23 -0
  18. data/doc/head/Rango/Bundling/RequireStrategy.html +283 -0
  19. data/doc/head/Rango/Bundling/Strategy.html +703 -0
  20. data/doc/head/Rango/CallableStrategy.html +300 -0
  21. data/doc/head/Rango/Chainable.html +181 -0
  22. data/doc/head/Rango/Configurable.html +199 -0
  23. data/doc/head/Rango/Controller.html +962 -0
  24. data/doc/head/Rango/ControllerMixin.html +860 -0
  25. data/doc/head/Rango/ControllerStrategy.html +264 -0
  26. data/doc/head/Rango/DependencyStrategy.html +116 -0
  27. data/doc/head/Rango/Dispatcher.html +305 -0
  28. data/doc/head/Rango/Form.html +162 -0
  29. data/doc/head/Rango/GemDependencyStrategy.html +210 -0
  30. data/doc/head/Rango/Generator.html +93 -0
  31. data/doc/head/Rango/GenericViews.html +128 -0
  32. data/doc/head/Rango/GitDependencyStrategy.html +224 -0
  33. data/doc/head/Rango/GithubDependencyStrategy.html +118 -0
  34. data/doc/head/Rango/Handler.html +474 -0
  35. data/doc/head/Rango/Helpers.html +1271 -0
  36. data/doc/head/Rango/Hookable.html +202 -0
  37. data/doc/head/Rango/ImportMixin.html +755 -0
  38. data/doc/head/Rango/Logger.html +920 -0
  39. data/doc/head/Rango/ModelForm.html +42 -0
  40. data/doc/head/Rango/Project.html +516 -0
  41. data/doc/head/Rango/RenderMixin.html +23 -0
  42. data/doc/head/Rango/Request.html +1177 -0
  43. data/doc/head/Rango/Route.html +751 -0
  44. data/doc/head/Rango/Router.html +42 -0
  45. data/doc/head/Rango/Router/Dispatcher.html +311 -0
  46. data/doc/head/Rango/RouterStrategy.html +258 -0
  47. data/doc/head/Rango/Session.html +23 -0
  48. data/doc/head/Rango/Settings.html +23 -0
  49. data/doc/head/Rango/Settings/Erubis.html +23 -0
  50. data/doc/head/Rango/Settings/Framework.html +198 -0
  51. data/doc/head/Rango/Settings/Haml.html +23 -0
  52. data/doc/head/Rango/SimpleTemplate.html +187 -0
  53. data/doc/head/Rango/StrategyMixin.html +261 -0
  54. data/doc/head/Rango/Tasks.html +251 -0
  55. data/doc/head/Rango/Template.html +95 -0
  56. data/doc/head/Rango/Template/Adapter.html +90 -0
  57. data/doc/head/Rango/Templates.html +116 -0
  58. data/doc/head/Rango/Templates/Adapter.html +128 -0
  59. data/doc/head/Rango/Templates/Template.html +636 -0
  60. data/doc/head/Rango/Templates/TemplateHelpers.html +328 -0
  61. data/doc/head/RangoThor.html +205 -0
  62. data/doc/head/String.html +163 -0
  63. data/doc/head/TimeDSL.html +612 -0
  64. data/doc/head/all-methods.html +2012 -0
  65. data/doc/head/all-namespaces.html +114 -0
  66. data/doc/head/app.js +18 -0
  67. data/doc/head/index.html +18 -0
  68. data/doc/head/jquery.js +11 -0
  69. data/doc/head/readme.html +34 -0
  70. data/doc/head/style.css +68 -0
  71. data/doc/head/syntax_highlight.css +21 -0
  72. data/doc/versions/0.0.1/Rango.html +1025 -0
  73. data/doc/versions/0.0.1/Rango/CallableStrategy.html +166 -0
  74. data/doc/versions/0.0.1/Rango/ControllerStrategy.html +180 -0
  75. data/doc/versions/0.0.1/Rango/Route.html +340 -0
  76. data/doc/versions/0.0.1/Rango/Router.html +502 -0
  77. data/doc/versions/0.0.1/Rango/RouterStrategy.html +94 -0
  78. data/doc/versions/0.0.1/Rango/Template.html +28 -0
  79. data/doc/versions/0.0.1/Rango/Template/Adapter.html +90 -0
  80. data/doc/versions/0.0.1/all-methods.html +228 -0
  81. data/doc/versions/0.0.1/all-namespaces.html +36 -0
  82. data/doc/versions/0.0.1/app.js +18 -0
  83. data/doc/versions/0.0.1/index.html +18 -0
  84. data/doc/versions/0.0.1/jquery.js +11 -0
  85. data/doc/versions/0.0.1/readme.html +137 -0
  86. data/doc/versions/0.0.1/style.css +68 -0
  87. data/doc/versions/0.0.1/syntax_highlight.css +21 -0
  88. data/lib/rango.rb +25 -0
  89. data/lib/rango/boot.rb +54 -0
  90. data/lib/rango/bundling/dependency.rb +65 -0
  91. data/lib/rango/bundling/strategies/copy.rb +36 -0
  92. data/lib/rango/bundling/strategies/gem.rb +55 -0
  93. data/lib/rango/bundling/strategies/git.rb +71 -0
  94. data/lib/rango/bundling/strategies/hg.rb +9 -0
  95. data/lib/rango/bundling/strategy.rb +85 -0
  96. data/lib/rango/cli/generator.rb +15 -0
  97. data/lib/rango/cli/project.rb +87 -0
  98. data/lib/rango/cli/simple_template.rb +47 -0
  99. data/lib/rango/contrib/pagination.rb +15 -0
  100. data/lib/rango/contrib/pagination/README.textile +21 -0
  101. data/lib/rango/contrib/pagination/TODO +3 -0
  102. data/lib/rango/contrib/pagination/_pagination.html.haml +39 -0
  103. data/lib/rango/contrib/pagination/adapters/datamapper.rb +22 -0
  104. data/lib/rango/contrib/pagination/helpers.rb +12 -0
  105. data/lib/rango/contrib/pagination/page.rb +107 -0
  106. data/lib/rango/contrib/pagination/strategies.rb +49 -0
  107. data/lib/rango/contrib/syndication.rb +1 -0
  108. data/lib/rango/exceptions.rb +269 -0
  109. data/lib/rango/ext.rb +14 -0
  110. data/lib/rango/ext/attribute.rb +140 -0
  111. data/lib/rango/ext/class.rb +99 -0
  112. data/lib/rango/ext/colored_string.rb +105 -0
  113. data/lib/rango/ext/core_ext.rb +52 -0
  114. data/lib/rango/ext/hash.rb +21 -0
  115. data/lib/rango/ext/kernel.rb +74 -0
  116. data/lib/rango/ext/object_space.rb +11 -0
  117. data/lib/rango/ext/path.rb +222 -0
  118. data/lib/rango/ext/random.rb +22 -0
  119. data/lib/rango/ext/string.rb +16 -0
  120. data/lib/rango/ext/thor.rb +32 -0
  121. data/lib/rango/ext/time_dsl.rb +63 -0
  122. data/lib/rango/ext/try.rb +30 -0
  123. data/lib/rango/forms/form.rb +29 -0
  124. data/lib/rango/generic_views/static.rb +7 -0
  125. data/lib/rango/helpers.rb +24 -0
  126. data/lib/rango/helpers/README +179 -0
  127. data/lib/rango/helpers/assets.rb +29 -0
  128. data/lib/rango/helpers/general.rb +41 -0
  129. data/lib/rango/helpers/merb-helpers.rb +40 -0
  130. data/lib/rango/helpers/merb-helpers/core_ext.rb +58 -0
  131. data/lib/rango/helpers/merb-helpers/core_ext/numeric.rb +388 -0
  132. data/lib/rango/helpers/merb-helpers/date_time_formatting.rb +158 -0
  133. data/lib/rango/helpers/merb-helpers/date_time_helpers.rb +191 -0
  134. data/lib/rango/helpers/merb-helpers/form/builder.rb +447 -0
  135. data/lib/rango/helpers/merb-helpers/form/helpers.rb +451 -0
  136. data/lib/rango/helpers/merb-helpers/form_helpers.rb +19 -0
  137. data/lib/rango/helpers/merb-helpers/tag_helpers.rb +63 -0
  138. data/lib/rango/helpers/merb-helpers/text_helpers.rb +63 -0
  139. data/lib/rango/helpers/merb-helpers/time_dsl.rb +61 -0
  140. data/lib/rango/helpers/spec/core_ext_spec.rb +21 -0
  141. data/lib/rango/helpers/spec/fixture/app/controllers/application.rb +4 -0
  142. data/lib/rango/helpers/spec/fixture/app/controllers/bound_check_box.rb +2 -0
  143. data/lib/rango/helpers/spec/fixture/app/controllers/bound_file_field.rb +2 -0
  144. data/lib/rango/helpers/spec/fixture/app/controllers/bound_hidden_field.rb +2 -0
  145. data/lib/rango/helpers/spec/fixture/app/controllers/bound_option_tag.rb +2 -0
  146. data/lib/rango/helpers/spec/fixture/app/controllers/bound_password_field.rb +2 -0
  147. data/lib/rango/helpers/spec/fixture/app/controllers/bound_radio_button.rb +2 -0
  148. data/lib/rango/helpers/spec/fixture/app/controllers/bound_radio_group.rb +2 -0
  149. data/lib/rango/helpers/spec/fixture/app/controllers/bound_select.rb +2 -0
  150. data/lib/rango/helpers/spec/fixture/app/controllers/bound_text_area.rb +2 -0
  151. data/lib/rango/helpers/spec/fixture/app/controllers/bound_text_field.rb +2 -0
  152. data/lib/rango/helpers/spec/fixture/app/controllers/button.rb +2 -0
  153. data/lib/rango/helpers/spec/fixture/app/controllers/check_box.rb +2 -0
  154. data/lib/rango/helpers/spec/fixture/app/controllers/custom_builder.rb +2 -0
  155. data/lib/rango/helpers/spec/fixture/app/controllers/delete_button.rb +2 -0
  156. data/lib/rango/helpers/spec/fixture/app/controllers/exceptions.rb +25 -0
  157. data/lib/rango/helpers/spec/fixture/app/controllers/field_set.rb +2 -0
  158. data/lib/rango/helpers/spec/fixture/app/controllers/fields_for.rb +3 -0
  159. data/lib/rango/helpers/spec/fixture/app/controllers/file_field.rb +2 -0
  160. data/lib/rango/helpers/spec/fixture/app/controllers/foo.rb +23 -0
  161. data/lib/rango/helpers/spec/fixture/app/controllers/form.rb +2 -0
  162. data/lib/rango/helpers/spec/fixture/app/controllers/form_for.rb +2 -0
  163. data/lib/rango/helpers/spec/fixture/app/controllers/hacker.rb +2 -0
  164. data/lib/rango/helpers/spec/fixture/app/controllers/hidden_field.rb +2 -0
  165. data/lib/rango/helpers/spec/fixture/app/controllers/label.rb +3 -0
  166. data/lib/rango/helpers/spec/fixture/app/controllers/numeric_ext.rb +3 -0
  167. data/lib/rango/helpers/spec/fixture/app/controllers/option_tag.rb +2 -0
  168. data/lib/rango/helpers/spec/fixture/app/controllers/password_field.rb +2 -0
  169. data/lib/rango/helpers/spec/fixture/app/controllers/radio_button.rb +2 -0
  170. data/lib/rango/helpers/spec/fixture/app/controllers/radio_group.rb +2 -0
  171. data/lib/rango/helpers/spec/fixture/app/controllers/relative_date.rb +2 -0
  172. data/lib/rango/helpers/spec/fixture/app/controllers/relative_date_span.rb +2 -0
  173. data/lib/rango/helpers/spec/fixture/app/controllers/select.rb +2 -0
  174. data/lib/rango/helpers/spec/fixture/app/controllers/specs_controller.rb +11 -0
  175. data/lib/rango/helpers/spec/fixture/app/controllers/submit.rb +2 -0
  176. data/lib/rango/helpers/spec/fixture/app/controllers/tag_helper.rb +21 -0
  177. data/lib/rango/helpers/spec/fixture/app/controllers/text_area.rb +2 -0
  178. data/lib/rango/helpers/spec/fixture/app/controllers/text_field.rb +3 -0
  179. data/lib/rango/helpers/spec/fixture/app/helpers/global_helpers.rb +8 -0
  180. data/lib/rango/helpers/spec/fixture/app/models/fake_dm_model.rb +25 -0
  181. data/lib/rango/helpers/spec/fixture/app/models/first_generic_fake_model.rb +57 -0
  182. data/lib/rango/helpers/spec/fixture/app/models/hacker_generic_model.rb +5 -0
  183. data/lib/rango/helpers/spec/fixture/app/models/second_generic_fake_model.rb +18 -0
  184. data/lib/rango/helpers/spec/fixture/app/models/third_generic_fake_model.rb +3 -0
  185. data/lib/rango/helpers/spec/fixture/app/views/bound_check_box_specs/basic.html.erb +4 -0
  186. data/lib/rango/helpers/spec/fixture/app/views/bound_check_box_specs/basic_unchecked.html.erb +3 -0
  187. data/lib/rango/helpers/spec/fixture/app/views/bound_check_box_specs/checked.html.erb +4 -0
  188. data/lib/rango/helpers/spec/fixture/app/views/bound_check_box_specs/errors.html.erb +4 -0
  189. data/lib/rango/helpers/spec/fixture/app/views/bound_check_box_specs/label.html.erb +3 -0
  190. data/lib/rango/helpers/spec/fixture/app/views/bound_check_box_specs/on_and_off.html.erb +3 -0
  191. data/lib/rango/helpers/spec/fixture/app/views/bound_check_box_specs/raise_value_error.html.erb +3 -0
  192. data/lib/rango/helpers/spec/fixture/app/views/bound_file_field_specs/additional_attributes.html.erb +3 -0
  193. data/lib/rango/helpers/spec/fixture/app/views/bound_file_field_specs/takes_string.html.erb +3 -0
  194. data/lib/rango/helpers/spec/fixture/app/views/bound_file_field_specs/with_label.html.erb +3 -0
  195. data/lib/rango/helpers/spec/fixture/app/views/bound_hidden_field_specs/basic.html.erb +3 -0
  196. data/lib/rango/helpers/spec/fixture/app/views/bound_hidden_field_specs/errors.html.erb +3 -0
  197. data/lib/rango/helpers/spec/fixture/app/views/bound_hidden_field_specs/hidden_error.html.erb +3 -0
  198. data/lib/rango/helpers/spec/fixture/app/views/bound_hidden_field_specs/label.html.erb +3 -0
  199. data/lib/rango/helpers/spec/fixture/app/views/bound_option_tag_specs/grouped.html.erb +3 -0
  200. data/lib/rango/helpers/spec/fixture/app/views/bound_option_tag_specs/nested.html.erb +3 -0
  201. data/lib/rango/helpers/spec/fixture/app/views/bound_option_tag_specs/text_and_value.html.erb +4 -0
  202. data/lib/rango/helpers/spec/fixture/app/views/bound_password_field_specs/attributes.html.erb +3 -0
  203. data/lib/rango/helpers/spec/fixture/app/views/bound_password_field_specs/basic.html.erb +3 -0
  204. data/lib/rango/helpers/spec/fixture/app/views/bound_password_field_specs/label.html.erb +3 -0
  205. data/lib/rango/helpers/spec/fixture/app/views/bound_radio_button_specs/basic.html.erb +3 -0
  206. data/lib/rango/helpers/spec/fixture/app/views/bound_radio_group_specs/basic.html.erb +3 -0
  207. data/lib/rango/helpers/spec/fixture/app/views/bound_radio_group_specs/hashes.html.erb +3 -0
  208. data/lib/rango/helpers/spec/fixture/app/views/bound_radio_group_specs/mixed.html.erb +4 -0
  209. data/lib/rango/helpers/spec/fixture/app/views/bound_radio_group_specs/override_id.html.erb +3 -0
  210. data/lib/rango/helpers/spec/fixture/app/views/bound_select_specs/basic.html.erb +3 -0
  211. data/lib/rango/helpers/spec/fixture/app/views/bound_select_specs/blank.html.erb +3 -0
  212. data/lib/rango/helpers/spec/fixture/app/views/bound_select_specs/label.html.erb +3 -0
  213. data/lib/rango/helpers/spec/fixture/app/views/bound_select_specs/multiple.html.erb +3 -0
  214. data/lib/rango/helpers/spec/fixture/app/views/bound_select_specs/prompt.html.erb +3 -0
  215. data/lib/rango/helpers/spec/fixture/app/views/bound_select_specs/with_options.html.erb +3 -0
  216. data/lib/rango/helpers/spec/fixture/app/views/bound_select_specs/with_options_with_blank.html.erb +3 -0
  217. data/lib/rango/helpers/spec/fixture/app/views/bound_text_area_specs/basic.html.erb +3 -0
  218. data/lib/rango/helpers/spec/fixture/app/views/bound_text_area_specs/label.html.erb +3 -0
  219. data/lib/rango/helpers/spec/fixture/app/views/bound_text_field_specs/basic.html.erb +3 -0
  220. data/lib/rango/helpers/spec/fixture/app/views/button_specs/button_with_label.html.erb +1 -0
  221. data/lib/rango/helpers/spec/fixture/app/views/button_specs/button_with_values.html.erb +1 -0
  222. data/lib/rango/helpers/spec/fixture/app/views/button_specs/disabled_button.html.erb +1 -0
  223. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/basic.html.erb +1 -0
  224. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/boolean.html.erb +1 -0
  225. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/disabled.html.erb +1 -0
  226. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/label.html.erb +1 -0
  227. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/on_off_is_boolean.html.erb +1 -0
  228. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/raise_unless_both_on_and_off.html.erb +2 -0
  229. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/raises_error_if_not_boolean.html.erb +1 -0
  230. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/raises_error_if_on_off_and_boolean_false.html.erb +1 -0
  231. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/simple.html.erb +1 -0
  232. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/to_string.html.erb +8 -0
  233. data/lib/rango/helpers/spec/fixture/app/views/check_box_specs/unchecked.html.erb +2 -0
  234. data/lib/rango/helpers/spec/fixture/app/views/custom_builder_specs/everything.html.erb +10 -0
  235. data/lib/rango/helpers/spec/fixture/app/views/delete_button_specs/delete_with_explicit_url.html.erb +1 -0
  236. data/lib/rango/helpers/spec/fixture/app/views/delete_button_specs/delete_with_extra_params.html.erb +1 -0
  237. data/lib/rango/helpers/spec/fixture/app/views/delete_button_specs/delete_with_label.html.erb +1 -0
  238. data/lib/rango/helpers/spec/fixture/app/views/delete_button_specs/simple_delete.html.erb +1 -0
  239. data/lib/rango/helpers/spec/fixture/app/views/exeptions/client_error.html.erb +37 -0
  240. data/lib/rango/helpers/spec/fixture/app/views/exeptions/internal_server_error.html.erb +216 -0
  241. data/lib/rango/helpers/spec/fixture/app/views/exeptions/not_acceptable.html.erb +38 -0
  242. data/lib/rango/helpers/spec/fixture/app/views/exeptions/not_found.html.erb +40 -0
  243. data/lib/rango/helpers/spec/fixture/app/views/fields_for_specs/basic.html.erb +3 -0
  244. data/lib/rango/helpers/spec/fixture/app/views/fields_for_specs/midstream.html.erb +7 -0
  245. data/lib/rango/helpers/spec/fixture/app/views/fields_for_specs/nil.html.erb +3 -0
  246. data/lib/rango/helpers/spec/fixture/app/views/fieldset_specs/legend.html.erb +3 -0
  247. data/lib/rango/helpers/spec/fixture/app/views/file_field_specs/disabled.html.erb +1 -0
  248. data/lib/rango/helpers/spec/fixture/app/views/file_field_specs/makes_multipart.html.erb +3 -0
  249. data/lib/rango/helpers/spec/fixture/app/views/file_field_specs/with_label.html.erb +1 -0
  250. data/lib/rango/helpers/spec/fixture/app/views/file_field_specs/with_values.html.erb +1 -0
  251. data/lib/rango/helpers/spec/fixture/app/views/foo/bar.html.erb +0 -0
  252. data/lib/rango/helpers/spec/fixture/app/views/form_for_specs/basic.html.erb +3 -0
  253. data/lib/rango/helpers/spec/fixture/app/views/form_specs/create_a_form.html.erb +3 -0
  254. data/lib/rango/helpers/spec/fixture/app/views/form_specs/create_a_multipart_form.html.erb +3 -0
  255. data/lib/rango/helpers/spec/fixture/app/views/form_specs/fake_delete_if_set.html.erb +3 -0
  256. data/lib/rango/helpers/spec/fixture/app/views/form_specs/fake_put_if_set.html.erb +3 -0
  257. data/lib/rango/helpers/spec/fixture/app/views/form_specs/get_if_set.html.erb +3 -0
  258. data/lib/rango/helpers/spec/fixture/app/views/form_specs/post_by_default.html.erb +3 -0
  259. data/lib/rango/helpers/spec/fixture/app/views/form_specs/resourceful_form.html.erb +3 -0
  260. data/lib/rango/helpers/spec/fixture/app/views/hacker/file_field.html.erb +3 -0
  261. data/lib/rango/helpers/spec/fixture/app/views/hacker/hidden_field.html.erb +3 -0
  262. data/lib/rango/helpers/spec/fixture/app/views/hacker/option_tag.html.erb +4 -0
  263. data/lib/rango/helpers/spec/fixture/app/views/hacker/password_field.html.erb +3 -0
  264. data/lib/rango/helpers/spec/fixture/app/views/hacker/radio_button.html.erb +3 -0
  265. data/lib/rango/helpers/spec/fixture/app/views/hacker/radio_group.html.erb +3 -0
  266. data/lib/rango/helpers/spec/fixture/app/views/hacker/text_area.html.erb +3 -0
  267. data/lib/rango/helpers/spec/fixture/app/views/hacker/text_field.html.erb +3 -0
  268. data/lib/rango/helpers/spec/fixture/app/views/hidden_field_specs/basic.html.erb +1 -0
  269. data/lib/rango/helpers/spec/fixture/app/views/hidden_field_specs/disabled.html.erb +1 -0
  270. data/lib/rango/helpers/spec/fixture/app/views/hidden_field_specs/label.html.erb +1 -0
  271. data/lib/rango/helpers/spec/fixture/app/views/label_specs/basic.html.erb +1 -0
  272. data/lib/rango/helpers/spec/fixture/app/views/label_specs/basic_with_attributes.html.erb +1 -0
  273. data/lib/rango/helpers/spec/fixture/app/views/label_specs/basic_with_class.html.erb +1 -0
  274. data/lib/rango/helpers/spec/fixture/app/views/layout/application.html.erb +11 -0
  275. data/lib/rango/helpers/spec/fixture/app/views/numeric_ext_specs/minutes_to_hours.html.erb +1 -0
  276. data/lib/rango/helpers/spec/fixture/app/views/numeric_ext_specs/to_concurrency_default.html.erb +1 -0
  277. data/lib/rango/helpers/spec/fixture/app/views/numeric_ext_specs/two_digits.html.erb +1 -0
  278. data/lib/rango/helpers/spec/fixture/app/views/option_tag_specs/array.html.erb +1 -0
  279. data/lib/rango/helpers/spec/fixture/app/views/option_tag_specs/clean.html.erb +1 -0
  280. data/lib/rango/helpers/spec/fixture/app/views/option_tag_specs/collection.html.erb +1 -0
  281. data/lib/rango/helpers/spec/fixture/app/views/option_tag_specs/multiple_selects.html.erb +1 -0
  282. data/lib/rango/helpers/spec/fixture/app/views/option_tag_specs/no_extra_attributes.html.erb +1 -0
  283. data/lib/rango/helpers/spec/fixture/app/views/option_tag_specs/optgroups.html.erb +1 -0
  284. data/lib/rango/helpers/spec/fixture/app/views/option_tag_specs/selected.html.erb +1 -0
  285. data/lib/rango/helpers/spec/fixture/app/views/option_tag_specs/with_blank.html.erb +1 -0
  286. data/lib/rango/helpers/spec/fixture/app/views/option_tag_specs/with_prompt.html.erb +1 -0
  287. data/lib/rango/helpers/spec/fixture/app/views/password_field_specs/basic.html.erb +1 -0
  288. data/lib/rango/helpers/spec/fixture/app/views/password_field_specs/disabled.html.erb +1 -0
  289. data/lib/rango/helpers/spec/fixture/app/views/radio_button_specs/basic.html.erb +1 -0
  290. data/lib/rango/helpers/spec/fixture/app/views/radio_button_specs/checked.html.erb +1 -0
  291. data/lib/rango/helpers/spec/fixture/app/views/radio_button_specs/disabled.html.erb +1 -0
  292. data/lib/rango/helpers/spec/fixture/app/views/radio_button_specs/label.html.erb +1 -0
  293. data/lib/rango/helpers/spec/fixture/app/views/radio_button_specs/unchecked.html.erb +1 -0
  294. data/lib/rango/helpers/spec/fixture/app/views/radio_group_specs/attributes.html.erb +1 -0
  295. data/lib/rango/helpers/spec/fixture/app/views/radio_group_specs/basic.html.erb +1 -0
  296. data/lib/rango/helpers/spec/fixture/app/views/radio_group_specs/checked.html.erb +1 -0
  297. data/lib/rango/helpers/spec/fixture/app/views/radio_group_specs/hash.html.erb +1 -0
  298. data/lib/rango/helpers/spec/fixture/app/views/radio_group_specs/specific_attributes.html.erb +1 -0
  299. data/lib/rango/helpers/spec/fixture/app/views/relative_date_span_specs/date_span_on_same_day.html.erb +1 -0
  300. data/lib/rango/helpers/spec/fixture/app/views/relative_date_span_specs/date_span_on_same_day_on_different_year.html.erb +1 -0
  301. data/lib/rango/helpers/spec/fixture/app/views/relative_date_specs/relative_date_with_year.html.erb +1 -0
  302. data/lib/rango/helpers/spec/fixture/app/views/relative_date_specs/relative_date_without_year.html.erb +1 -0
  303. data/lib/rango/helpers/spec/fixture/app/views/relative_date_specs/relative_today.html.erb +1 -0
  304. data/lib/rango/helpers/spec/fixture/app/views/relative_date_specs/relative_tomorrow.html.erb +1 -0
  305. data/lib/rango/helpers/spec/fixture/app/views/relative_date_specs/relative_yesterday.html.erb +1 -0
  306. data/lib/rango/helpers/spec/fixture/app/views/select_specs/basic.html.erb +1 -0
  307. data/lib/rango/helpers/spec/fixture/app/views/select_specs/blank.html.erb +1 -0
  308. data/lib/rango/helpers/spec/fixture/app/views/select_specs/multiple.html.erb +1 -0
  309. data/lib/rango/helpers/spec/fixture/app/views/select_specs/selected.html.erb +1 -0
  310. data/lib/rango/helpers/spec/fixture/app/views/submit_specs/disabled_submit.html.erb +1 -0
  311. data/lib/rango/helpers/spec/fixture/app/views/submit_specs/submit_with_label.html.erb +1 -0
  312. data/lib/rango/helpers/spec/fixture/app/views/submit_specs/submit_with_values.html.erb +1 -0
  313. data/lib/rango/helpers/spec/fixture/app/views/tag_helper/nested_tags.html.erb +5 -0
  314. data/lib/rango/helpers/spec/fixture/app/views/tag_helper/tag_with_attributes.html.erb +1 -0
  315. data/lib/rango/helpers/spec/fixture/app/views/tag_helper/tag_with_content.html.erb +1 -0
  316. data/lib/rango/helpers/spec/fixture/app/views/tag_helper/tag_with_content_in_the_block.html.erb +3 -0
  317. data/lib/rango/helpers/spec/fixture/app/views/text_area_specs/basic.html.erb +1 -0
  318. data/lib/rango/helpers/spec/fixture/app/views/text_area_specs/disabled.html.erb +1 -0
  319. data/lib/rango/helpers/spec/fixture/app/views/text_area_specs/label.html.erb +1 -0
  320. data/lib/rango/helpers/spec/fixture/app/views/text_area_specs/nil.html.erb +1 -0
  321. data/lib/rango/helpers/spec/fixture/app/views/text_field_specs/basic.html.erb +1 -0
  322. data/lib/rango/helpers/spec/fixture/app/views/text_field_specs/class.html.erb +1 -0
  323. data/lib/rango/helpers/spec/fixture/app/views/text_field_specs/disabled.html.erb +1 -0
  324. data/lib/rango/helpers/spec/fixture/app/views/text_field_specs/label.html.erb +1 -0
  325. data/lib/rango/helpers/spec/fixture/app/views/text_field_specs/symbolized_name.html.erb +1 -0
  326. data/lib/rango/helpers/spec/fixture/config/environments/development.rb +6 -0
  327. data/lib/rango/helpers/spec/fixture/config/environments/production.rb +5 -0
  328. data/lib/rango/helpers/spec/fixture/config/environments/test.rb +6 -0
  329. data/lib/rango/helpers/spec/fixture/config/init.rb +46 -0
  330. data/lib/rango/helpers/spec/fixture/config/rack.rb +11 -0
  331. data/lib/rango/helpers/spec/fixture/config/router.rb +38 -0
  332. data/lib/rango/helpers/spec/fixture/public/images/merb.jpg +0 -0
  333. data/lib/rango/helpers/spec/fixture/public/merb.fcgi +4 -0
  334. data/lib/rango/helpers/spec/fixture/public/stylesheets/master.css +119 -0
  335. data/lib/rango/helpers/spec/merb_helpers_config_spec.rb +84 -0
  336. data/lib/rango/helpers/spec/merb_helpers_date_time_spec.rb +270 -0
  337. data/lib/rango/helpers/spec/merb_helpers_form_spec.rb +1371 -0
  338. data/lib/rango/helpers/spec/merb_helpers_tag_helper_spec.rb +42 -0
  339. data/lib/rango/helpers/spec/merb_helpers_text_spec.rb +69 -0
  340. data/lib/rango/helpers/spec/numeric_extlib_spec.rb +137 -0
  341. data/lib/rango/helpers/spec/ordinalize_spec.rb +53 -0
  342. data/lib/rango/helpers/spec/spec_helper.rb +160 -0
  343. data/lib/rango/helpers/spec/time_dsl_spec.rb +45 -0
  344. data/lib/rango/helpers/syntax.rb +28 -0
  345. data/lib/rango/loggers/fireruby.rb +1 -0
  346. data/lib/rango/loggers/logger.rb +100 -0
  347. data/lib/rango/mixins/application.rb +25 -0
  348. data/lib/rango/mixins/configurable.rb +20 -0
  349. data/lib/rango/mixins/controller.rb +113 -0
  350. data/lib/rango/mixins/import.rb +89 -0
  351. data/lib/rango/mixins/strategy.rb +28 -0
  352. data/lib/rango/mvc/controller.rb +139 -0
  353. data/lib/rango/mvc/strategies.rb +6 -0
  354. data/lib/rango/orm/adapters/datamapper/fields.rb +3 -0
  355. data/lib/rango/orm/adapters/datamapper/setup.rb +16 -0
  356. data/lib/rango/orm/adapters/datamapper/support.rb +15 -0
  357. data/lib/rango/orm/adapters/datamapper/tasks.thor +41 -0
  358. data/lib/rango/orm/adapters/datamapper/types/unicode_string.rb +15 -0
  359. data/lib/rango/project.rb +28 -0
  360. data/lib/rango/rack/dispatcher.rb +61 -0
  361. data/lib/rango/rack/middlewares/emails.rb +7 -0
  362. data/lib/rango/rack/middlewares/encoding.rb +25 -0
  363. data/lib/rango/rack/middlewares/static.rb +49 -0
  364. data/lib/rango/rack/request.rb +166 -0
  365. data/lib/rango/rango.rb +75 -0
  366. data/lib/rango/router/adapters/basic.rb +21 -0
  367. data/lib/rango/router/adapters/rack-router.rb +18 -0
  368. data/lib/rango/router/dispatcher.rb +29 -0
  369. data/lib/rango/router/specification.txt +16 -0
  370. data/lib/rango/settings.rb +87 -0
  371. data/lib/rango/settings/erubis.rb +13 -0
  372. data/lib/rango/settings/framework.rb +85 -0
  373. data/lib/rango/settings/haml.rb +35 -0
  374. data/lib/rango/support/cucumber/steps/given_steps.rb +5 -0
  375. data/lib/rango/support/cucumber/steps/then_steps.rb +41 -0
  376. data/lib/rango/support/cucumber/steps/when_steps.rb +54 -0
  377. data/lib/rango/tasks/bundle.thor +28 -0
  378. data/lib/rango/tasks/stats.thor +0 -0
  379. data/lib/rango/templates/adapter.rb +19 -0
  380. data/lib/rango/templates/adapters/erb.rb +45 -0
  381. data/lib/rango/templates/adapters/erubis.rb +60 -0
  382. data/lib/rango/templates/adapters/haml.rb +17 -0
  383. data/lib/rango/templates/template.rb +123 -0
  384. data/rango.gemspec +35 -0
  385. data/spec/factories.rb +21 -0
  386. data/spec/rango/auth/core/authenticated_helper_spec.rb +0 -0
  387. data/spec/rango/auth/core/authentication_spec.rb +0 -0
  388. data/spec/rango/auth/core/callbacks_spec.rb +0 -0
  389. data/spec/rango/auth/core/errors_spec.rb +0 -0
  390. data/spec/rango/auth/core/responses_spec.rb +0 -0
  391. data/spec/rango/auth/core/session_mixin_spec.rb +0 -0
  392. data/spec/rango/auth/core/spec/helpers/authentication_helper_spec_spec.rb +0 -0
  393. data/spec/rango/auth/core/spec/merb-auth-core/activation_fixture_spec.rb +0 -0
  394. data/spec/rango/auth/core/spec/merb-auth-core/authentication_spec_spec.rb +0 -0
  395. data/spec/rango/auth/core/spec/merb-auth-core/callbacks_spec_spec.rb +0 -0
  396. data/spec/rango/auth/core/spec/merb-auth-core/customizations_spec_spec.rb +0 -0
  397. data/spec/rango/auth/core/spec/merb-auth-core/errors_spec_spec.rb +0 -0
  398. data/spec/rango/auth/core/spec/merb-auth-core/failed_login_spec_spec.rb +0 -0
  399. data/spec/rango/auth/core/spec/merb-auth-core/merb-auth-core_spec_spec.rb +0 -0
  400. data/spec/rango/auth/core/spec/merb-auth-core/router_helper_spec_spec.rb +0 -0
  401. data/spec/rango/auth/core/spec/merb-auth-core/strategy_spec_spec.rb +0 -0
  402. data/spec/rango/auth/core/spec/spec_helper_spec.rb +0 -0
  403. data/spec/rango/auth/core/strategy_spec.rb +0 -0
  404. data/spec/rango/auth/core_spec.rb +0 -0
  405. data/spec/rango/auth/more/mixins/redirect_back_spec.rb +0 -0
  406. data/spec/rango/auth/more/mixins/salted_user/ar_salted_user_spec.rb +0 -0
  407. data/spec/rango/auth/more/mixins/salted_user/dm_salted_user_spec.rb +0 -0
  408. data/spec/rango/auth/more/mixins/salted_user/relaxdb_salted_user_spec.rb +0 -0
  409. data/spec/rango/auth/more/mixins/salted_user/sq_salted_user_spec.rb +0 -0
  410. data/spec/rango/auth/more/mixins/salted_user_spec.rb +0 -0
  411. data/spec/rango/auth/more/spec/merb-auth-more_spec_spec.rb +0 -0
  412. data/spec/rango/auth/more/spec/mixins/redirect_back_spec_spec.rb +0 -0
  413. data/spec/rango/auth/more/spec/mixins/salted_user_spec_spec.rb +0 -0
  414. data/spec/rango/auth/more/spec/spec_helper_spec.rb +0 -0
  415. data/spec/rango/auth/more/strategies/abstract_password_spec.rb +0 -0
  416. data/spec/rango/auth/more/strategies/basic/basic_auth_spec.rb +0 -0
  417. data/spec/rango/auth/more/strategies/basic/openid_spec.rb +0 -0
  418. data/spec/rango/auth/more/strategies/basic/password_form_spec.rb +0 -0
  419. data/spec/rango/auth/more_spec.rb +0 -0
  420. data/spec/rango/auth/slice/exceptions_spec.rb +0 -0
  421. data/spec/rango/auth/slice/merb-auth-slice-password_spec.rb +0 -0
  422. data/spec/rango/auth/slice/sessions_spec.rb +0 -0
  423. data/spec/rango/auth/slice/spec_helper_spec.rb +0 -0
  424. data/spec/rango/auth/slice/xsessions_spec.rb +0 -0
  425. data/spec/rango/boot_spec.rb +19 -0
  426. data/spec/rango/bundling/dependency_spec.rb +0 -0
  427. data/spec/rango/bundling/strategies_spec.rb +0 -0
  428. data/spec/rango/cli/project_spec.rb +0 -0
  429. data/spec/rango/contrib/pagination/adapters/dm_spec.rb +0 -0
  430. data/spec/rango/contrib/pagination/helpers_spec.rb +0 -0
  431. data/spec/rango/contrib/pagination/page_spec.rb +94 -0
  432. data/spec/rango/contrib/pagination/strategies_spec.rb +0 -0
  433. data/spec/rango/contrib/pagination_spec.rb +0 -0
  434. data/spec/rango/contrib/syndication_spec.rb +0 -0
  435. data/spec/rango/exceptions_spec.rb +0 -0
  436. data/spec/rango/ext/attribute_spec.rb +0 -0
  437. data/spec/rango/ext/colored_string_spec.rb +0 -0
  438. data/spec/rango/ext/core_ext_spec.rb +0 -0
  439. data/spec/rango/ext/kernel_spec.rb +0 -0
  440. data/spec/rango/ext/path_spec.rb +0 -0
  441. data/spec/rango/ext/string_spec.rb +0 -0
  442. data/spec/rango/ext/thor_spec.rb +0 -0
  443. data/spec/rango/ext/time_dsl_spec.rb +0 -0
  444. data/spec/rango/ext_spec.rb +0 -0
  445. data/spec/rango/forms/form_spec.rb +0 -0
  446. data/spec/rango/generators_spec.rb +0 -0
  447. data/spec/rango/generic_views/static_spec.rb +0 -0
  448. data/spec/rango/helpers/assets_spec.rb +0 -0
  449. data/spec/rango/helpers/general_spec.rb +0 -0
  450. data/spec/rango/helpers/merb-helpers/core_ext/numeric_spec.rb +0 -0
  451. data/spec/rango/helpers/merb-helpers/core_ext_spec.rb +0 -0
  452. data/spec/rango/helpers/merb-helpers/date_time_formatting_spec.rb +0 -0
  453. data/spec/rango/helpers/merb-helpers/date_time_helpers_spec.rb +0 -0
  454. data/spec/rango/helpers/merb-helpers/form/builder_spec.rb +0 -0
  455. data/spec/rango/helpers/merb-helpers/form/helpers_spec.rb +0 -0
  456. data/spec/rango/helpers/merb-helpers/form_helpers_spec.rb +0 -0
  457. data/spec/rango/helpers/merb-helpers/tag_helpers_spec.rb +0 -0
  458. data/spec/rango/helpers/merb-helpers/text_helpers_spec.rb +0 -0
  459. data/spec/rango/helpers/merb-helpers/time_dsl_spec.rb +0 -0
  460. data/spec/rango/helpers/merb-helpers_spec.rb +0 -0
  461. data/spec/rango/helpers/spec/core_ext_spec_spec.rb +0 -0
  462. data/spec/rango/helpers/spec/fixture/app/controllers/application_spec.rb +0 -0
  463. data/spec/rango/helpers/spec/fixture/app/controllers/bound_check_box_spec.rb +0 -0
  464. data/spec/rango/helpers/spec/fixture/app/controllers/bound_file_field_spec.rb +0 -0
  465. data/spec/rango/helpers/spec/fixture/app/controllers/bound_hidden_field_spec.rb +0 -0
  466. data/spec/rango/helpers/spec/fixture/app/controllers/bound_option_tag_spec.rb +0 -0
  467. data/spec/rango/helpers/spec/fixture/app/controllers/bound_password_field_spec.rb +0 -0
  468. data/spec/rango/helpers/spec/fixture/app/controllers/bound_radio_button_spec.rb +0 -0
  469. data/spec/rango/helpers/spec/fixture/app/controllers/bound_radio_group_spec.rb +0 -0
  470. data/spec/rango/helpers/spec/fixture/app/controllers/bound_select_spec.rb +0 -0
  471. data/spec/rango/helpers/spec/fixture/app/controllers/bound_text_area_spec.rb +0 -0
  472. data/spec/rango/helpers/spec/fixture/app/controllers/bound_text_field_spec.rb +0 -0
  473. data/spec/rango/helpers/spec/fixture/app/controllers/button_spec.rb +0 -0
  474. data/spec/rango/helpers/spec/fixture/app/controllers/check_box_spec.rb +0 -0
  475. data/spec/rango/helpers/spec/fixture/app/controllers/custom_builder_spec.rb +0 -0
  476. data/spec/rango/helpers/spec/fixture/app/controllers/delete_button_spec.rb +0 -0
  477. data/spec/rango/helpers/spec/fixture/app/controllers/exceptions_spec.rb +0 -0
  478. data/spec/rango/helpers/spec/fixture/app/controllers/field_set_spec.rb +0 -0
  479. data/spec/rango/helpers/spec/fixture/app/controllers/fields_for_spec.rb +0 -0
  480. data/spec/rango/helpers/spec/fixture/app/controllers/file_field_spec.rb +0 -0
  481. data/spec/rango/helpers/spec/fixture/app/controllers/foo_spec.rb +0 -0
  482. data/spec/rango/helpers/spec/fixture/app/controllers/form_for_spec.rb +0 -0
  483. data/spec/rango/helpers/spec/fixture/app/controllers/form_spec.rb +0 -0
  484. data/spec/rango/helpers/spec/fixture/app/controllers/hacker_spec.rb +0 -0
  485. data/spec/rango/helpers/spec/fixture/app/controllers/hidden_field_spec.rb +0 -0
  486. data/spec/rango/helpers/spec/fixture/app/controllers/label_spec.rb +0 -0
  487. data/spec/rango/helpers/spec/fixture/app/controllers/numeric_ext_spec.rb +0 -0
  488. data/spec/rango/helpers/spec/fixture/app/controllers/option_tag_spec.rb +0 -0
  489. data/spec/rango/helpers/spec/fixture/app/controllers/password_field_spec.rb +0 -0
  490. data/spec/rango/helpers/spec/fixture/app/controllers/radio_button_spec.rb +0 -0
  491. data/spec/rango/helpers/spec/fixture/app/controllers/radio_group_spec.rb +0 -0
  492. data/spec/rango/helpers/spec/fixture/app/controllers/relative_date_span_spec.rb +0 -0
  493. data/spec/rango/helpers/spec/fixture/app/controllers/relative_date_spec.rb +0 -0
  494. data/spec/rango/helpers/spec/fixture/app/controllers/select_spec.rb +0 -0
  495. data/spec/rango/helpers/spec/fixture/app/controllers/specs_controller_spec.rb +0 -0
  496. data/spec/rango/helpers/spec/fixture/app/controllers/submit_spec.rb +0 -0
  497. data/spec/rango/helpers/spec/fixture/app/controllers/tag_helper_spec.rb +0 -0
  498. data/spec/rango/helpers/spec/fixture/app/controllers/text_area_spec.rb +0 -0
  499. data/spec/rango/helpers/spec/fixture/app/controllers/text_field_spec.rb +0 -0
  500. data/spec/rango/helpers/spec/fixture/app/helpers/global_helpers_spec.rb +0 -0
  501. data/spec/rango/helpers/spec/fixture/app/models/fake_dm_model_spec.rb +0 -0
  502. data/spec/rango/helpers/spec/fixture/app/models/first_generic_fake_model_spec.rb +0 -0
  503. data/spec/rango/helpers/spec/fixture/app/models/hacker_generic_model_spec.rb +0 -0
  504. data/spec/rango/helpers/spec/fixture/app/models/second_generic_fake_model_spec.rb +0 -0
  505. data/spec/rango/helpers/spec/fixture/app/models/third_generic_fake_model_spec.rb +0 -0
  506. data/spec/rango/helpers/spec/fixture/config/environments/development_spec.rb +0 -0
  507. data/spec/rango/helpers/spec/fixture/config/environments/production_spec.rb +0 -0
  508. data/spec/rango/helpers/spec/fixture/config/environments/test_spec.rb +0 -0
  509. data/spec/rango/helpers/spec/fixture/config/init_spec.rb +0 -0
  510. data/spec/rango/helpers/spec/fixture/config/rack_spec.rb +0 -0
  511. data/spec/rango/helpers/spec/fixture/config/router_spec.rb +0 -0
  512. data/spec/rango/helpers/spec/merb_helpers_config_spec_spec.rb +0 -0
  513. data/spec/rango/helpers/spec/merb_helpers_date_time_spec_spec.rb +0 -0
  514. data/spec/rango/helpers/spec/merb_helpers_form_spec_spec.rb +0 -0
  515. data/spec/rango/helpers/spec/merb_helpers_tag_helper_spec_spec.rb +0 -0
  516. data/spec/rango/helpers/spec/merb_helpers_text_spec_spec.rb +0 -0
  517. data/spec/rango/helpers/spec/numeric_extlib_spec_spec.rb +0 -0
  518. data/spec/rango/helpers/spec/ordinalize_spec_spec.rb +0 -0
  519. data/spec/rango/helpers/spec/spec_helper_spec.rb +0 -0
  520. data/spec/rango/helpers/spec/time_dsl_spec_spec.rb +0 -0
  521. data/spec/rango/helpers/syntax_spec.rb +0 -0
  522. data/spec/rango/helpers_spec.rb +0 -0
  523. data/spec/rango/loggers/fireruby_spec.rb +0 -0
  524. data/spec/rango/loggers/logger_spec.rb +0 -0
  525. data/spec/rango/mixins/application_spec.rb +0 -0
  526. data/spec/rango/mixins/controller_spec.rb +0 -0
  527. data/spec/rango/mixins/import_spec.rb +0 -0
  528. data/spec/rango/mvc/controller_spec.rb +24 -0
  529. data/spec/rango/mvc/strategies_spec.rb +0 -0
  530. data/spec/rango/orm/adapters/dm/fields_spec.rb +0 -0
  531. data/spec/rango/orm/adapters/dm/setup_spec.rb +0 -0
  532. data/spec/rango/project_spec.rb +46 -0
  533. data/spec/rango/rack/dispatcher_spec.rb +0 -0
  534. data/spec/rango/rack/middlewares/emails_spec.rb +0 -0
  535. data/spec/rango/rack/middlewares/static_spec.rb +0 -0
  536. data/spec/rango/rack/request_spec.rb +18 -0
  537. data/spec/rango/rango_spec.rb +0 -0
  538. data/spec/rango/router/route_spec.rb +0 -0
  539. data/spec/rango/router/router_spec.rb +0 -0
  540. data/spec/rango/router/strategies_spec.rb +0 -0
  541. data/spec/rango/settings_spec.rb +26 -0
  542. data/spec/rango/spec/cucumber_spec.rb +0 -0
  543. data/spec/rango/spec/rspec_spec.rb +0 -0
  544. data/spec/rango/templates/adapter_spec.rb +0 -0
  545. data/spec/rango/templates/adapters/erb_spec.rb +0 -0
  546. data/spec/rango/templates/adapters/erubis_spec.rb +0 -0
  547. data/spec/rango/templates/adapters/haml_spec.rb +0 -0
  548. data/spec/rango/templates/template_spec.rb +0 -0
  549. data/spec/rango_spec.rb +37 -0
  550. data/spec/spec.opts +5 -0
  551. data/spec/spec_helper.rb +7 -0
  552. data/spec/stubs/flat.rb +0 -0
  553. data/stubs/app/content/init.rb.rbt +6 -0
  554. data/stubs/app/content/models.rb.rbt +9 -0
  555. data/stubs/app/content/views.rb.rbt +10 -0
  556. data/stubs/app/preprocess.rb +13 -0
  557. data/stubs/bigapp/content/init.rb +0 -0
  558. data/stubs/bigapp/content/views/application.rb +0 -0
  559. data/stubs/bigapp/preprocess.rb +5 -0
  560. data/stubs/features/content/env.rb +36 -0
  561. data/stubs/flat/content/flat.ru.rbt +19 -0
  562. data/stubs/flat/preprocess.rb +5 -0
  563. data/stubs/project/content/TODO +0 -0
  564. data/stubs/project/content/Thorfile +12 -0
  565. data/stubs/project/content/config.ru +34 -0
  566. data/stubs/project/content/init.rb +14 -0
  567. data/stubs/project/content/settings.rb.rbt +10 -0
  568. data/stubs/project/content/settings_local.rb.rbt +6 -0
  569. data/stubs/project/content/templates/base.html.haml.rbt +29 -0
  570. data/stubs/project/preprocess.rb +5 -0
  571. data/stubs/pupu/preprocess.rb +5 -0
  572. data/stubs/stub/content/metadata.yml +2 -0
  573. data/stubs/stub/content/postprocess.rb +7 -0
  574. data/stubs/stub/content/preprocess.rb +5 -0
  575. data/stubs/stub/preprocess.rb +5 -0
  576. data/support/Rango.tmbundle/Commands/Documentation for current word.tmCommand +22 -0
  577. data/support/Rango.tmbundle/Commands/Got to import.tmCommand +23 -0
  578. data/support/Rango.tmbundle/Commands/Rango console.tmCommand +22 -0
  579. data/support/Rango.tmbundle/Commands/Rango server.tmCommand +22 -0
  580. data/support/Rango.tmbundle/Commands/Read documentation.tmCommand +22 -0
  581. data/support/Rango.tmbundle/Snippets/Method with yardoc.tmSnippet +20 -0
  582. data/support/Rango.tmbundle/Snippets/Project_configure.tmSnippet +18 -0
  583. data/support/Rango.tmbundle/Snippets/Project_import.tmSnippet +16 -0
  584. data/support/Rango.tmbundle/Snippets/Project_logger_debug.tmSnippet +16 -0
  585. data/support/Rango.tmbundle/Snippets/Project_logger_error.tmSnippet +16 -0
  586. data/support/Rango.tmbundle/Snippets/Project_logger_fatal.tmSnippet +16 -0
  587. data/support/Rango.tmbundle/Snippets/Project_logger_inspect.tmSnippet +16 -0
  588. data/support/Rango.tmbundle/Snippets/Project_logger_warn.tmSnippet +16 -0
  589. data/support/Rango.tmbundle/Snippets/Rango_dependency.tmSnippet +16 -0
  590. data/support/Rango.tmbundle/Snippets/Rango_import.tmSnippet +16 -0
  591. data/support/Rango.tmbundle/Snippets/Rango_logger_debug.tmSnippet +16 -0
  592. data/support/Rango.tmbundle/Snippets/Rango_logger_error.tmSnippet +16 -0
  593. data/support/Rango.tmbundle/Snippets/Rango_logger_fatal.tmSnippet +16 -0
  594. data/support/Rango.tmbundle/Snippets/Rango_logger_inspect.tmSnippet +16 -0
  595. data/support/Rango.tmbundle/Snippets/Rango_logger_warn.tmSnippet +16 -0
  596. data/support/Rango.tmbundle/Snippets/controller.tmSnippet +28 -0
  597. data/support/Rango.tmbundle/Snippets/doc.tmSnippet +20 -0
  598. data/support/Rango.tmbundle/Snippets/match.tmSnippet +16 -0
  599. data/support/Rango.tmbundle/Snippets/thor task.tmSnippet +19 -0
  600. data/support/Rango.tmbundle/info.plist +37 -0
  601. data/support/hooks/commit-msg +13 -0
  602. data/support/hooks/post-commit +4 -0
  603. data/support/hooks/pre-commit +4 -0
  604. data/support/hooks/pre-rebase +169 -0
  605. data/support/hooks/prepare-commit-msg +36 -0
  606. data/tasks/hooks.thor +26 -0
  607. data/tasks/package.thor +49 -0
  608. data/tasks/release.thor +72 -0
  609. data/tasks/repair.thor +75 -0
  610. data/tasks/spec.thor +39 -0
  611. data/tasks/stats.thor +66 -0
  612. data/tasks/yardoc.thor +16 -0
  613. data/templates/errors/404.html.erb +52 -0
  614. data/templates/errors/406.html.erb +1 -0
  615. data/templates/errors/500.html.erb +48 -0
  616. metadata +866 -0
@@ -0,0 +1,75 @@
1
+ # coding: utf-8
2
+
3
+ Rango.import("exceptions")
4
+ Rango.import("loggers/logger")
5
+ Rango.import("bundling/dependency")
6
+
7
+ class Rango
8
+ class << self
9
+ # @since 0.0.2
10
+ # @example
11
+ # Rango.path
12
+ # # => /usr/lib/ruby/lib/ruby/site_ruby/1.8/rango
13
+ # @return [Path] Rango root path
14
+ def path
15
+ @path ||= Path.new(self.root)
16
+ end
17
+
18
+ # @since 0.0.1
19
+ # @example
20
+ # Rango.root
21
+ # # => /usr/lib/ruby/lib/ruby/site_ruby/1.8/rango
22
+ # @return [Rango::Logger] Logger for logging framework-related stuff. For logging project-relating stuff please use Project.logger.
23
+ # @see Project::logger
24
+ def logger
25
+ @logger ||= Rango::Logger.new
26
+ end
27
+
28
+ # @since 0.0.1
29
+ # @example
30
+ # Rango.boot(flat: true)
31
+ # @param [Hash] options You can specify flat: true for sinatra-like flat application.
32
+ # @return [Boolean] Returns true if boot succeed or false if not. If ARGV includes "-i", IRB interactive session will start.
33
+ def boot(options = Hash.new)
34
+ Rango.flat = true if options[:flat]
35
+ if options[:force]
36
+ Rango.import!("boot")
37
+ else
38
+ Rango.import("boot")
39
+ end
40
+ end
41
+
42
+ # @since 0.0.2
43
+ def reboot(options = Hash.new)
44
+ self.boot(options.merge(force: true))
45
+ end
46
+
47
+ # @since 0.0.2
48
+ def app
49
+ # $DEBUG = Project.settings.debug # It looks terrible, but rack works with it
50
+ Rango.import("rack/dispatcher")
51
+ return Rango::Dispatcher.app
52
+ rescue Exception => exception
53
+ Rango.logger.exception(exception)
54
+ return false
55
+ end
56
+
57
+ # Start IRB interactive session
58
+ # @since 0.0.1
59
+ def interactive
60
+ require "irb"
61
+ try_require "irb/completion" # some people can have ruby compliled without readline
62
+ ARGV.clear # otherwise irb will read it
63
+ IRB.start
64
+ end
65
+
66
+ # @since 0.0.1
67
+ # @return [Boolean] If application is flat or not.
68
+ questionable :flat, false
69
+ questionable :debug, true
70
+
71
+ # Rango.template("404.html")
72
+ def template(basename)
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,21 @@
1
+ # coding: utf-8
2
+
3
+ # Rack::URLMap is very easy router included directly in rack distribution
4
+ # You can't use stuff like "posts/:id" there, so env["rango.router.params"]
5
+ # allways will be just empty hash
6
+
7
+ Rango.import("router/dispatcher")
8
+
9
+ class Rango
10
+ class Router
11
+ module Basic
12
+ def set_rack_env(env)
13
+ env["rango.router.params"] = Hash.new
14
+ env["rango.router.app"] = self
15
+ end
16
+
17
+ # register it
18
+ Rango::Router::Dispatcher.router_adapter = self
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,18 @@
1
+ # coding: utf-8
2
+
3
+ require "rack/router"
4
+ Rango.import("router/dispatcher")
5
+
6
+ class Rango
7
+ class Router
8
+ module RackRouter
9
+ def set_rack_env(env)
10
+ env["rango.router.params"] = env["rack_router.params"]
11
+ env["rango.router.app"] = self
12
+ end
13
+
14
+ # register it
15
+ Rango::Router::Dispatcher.router_adapter = self
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+
3
+ class Rango
4
+ class Router
5
+ module Dispatcher
6
+ class << self
7
+ attr_accessor :router_adapter
8
+ def included(klass)
9
+ self.install_hook(klass)
10
+ end
11
+
12
+ def extended(object)
13
+ self.install_hook(object.class)
14
+ end
15
+
16
+ def install_hook(klass)
17
+ klass.send(:include, self.router_adapter)
18
+ rescue TypeError
19
+ raise TypeError, "You must set the Dispatcher.router_adapter first. For example Dispatcher.router_adapter = Rango::Router::RackRouter"
20
+ end
21
+
22
+ def route_to(env, app)
23
+ Rango.logger.inspect("Routing request to #{app.inspect}")
24
+ app.call(env)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,16 @@
1
+ === Introduction ===
2
+ Rango doesn't have its own router, so you can use what you like or write your own. The only thing you need to do is set few variables in rack env.
3
+
4
+ === Rack env ===
5
+ env["rango.router.params"]
6
+ env["rango.router.app"]
7
+
8
+ === Strategies variables ===
9
+ You can define what variables you like, the only rule there is that you must stay in namespace of your strategy.
10
+
11
+ env["rango.controller.name"]
12
+ env["rango.controller.action"]
13
+
14
+ === Available routers ===
15
+ Rack::URLMap
16
+ rack-router
@@ -0,0 +1,87 @@
1
+ # coding: utf-8
2
+
3
+ class Rango
4
+ module Settings
5
+ class Settings
6
+ # @since 0.0.1
7
+ # @example
8
+ # Project.settings.merge(MyPlugin.settings)
9
+ # @param [Rango::Settings] another Settings which will be merged into self. It doesn't change self.
10
+ # @return [Hash] Hash of settings attributes.
11
+ # TODO: maybe it should returns Rango::Settings?
12
+ def merge(another)
13
+ self.hattributes.merge(another.hattributes)
14
+ end
15
+
16
+ # @since 0.0.1
17
+ # @example
18
+ # Project.settings.merge!(MyPlugin.settings)
19
+ # @param [Rango::Settings] another Settings which will be merged into self. It change self.
20
+ # @return [Hash] Hash of settings attributes.
21
+ # TODO: maybe it should returns Rango::Settings?
22
+ def merge!(another)
23
+ self.hattributes.merge!(another.hattributes)
24
+ end
25
+
26
+ # @since 0.0.1
27
+ # @example
28
+ # @return [String] All settings attributes in inspect format.
29
+ def inspect
30
+ self.hattributes.inspect
31
+ end
32
+
33
+ # @since 0.0.1
34
+ def to_hash
35
+ self.hattributes.reject { |key, value| value.nil? }
36
+ end
37
+
38
+ # @since 0.0.2
39
+ def settings_module(name)
40
+ if self.hattributes[name]
41
+ return self.hattributes[name]
42
+ else
43
+ Rango.import("settings/#{name}")
44
+ const_name = name.to_s.camel_case
45
+ constant = Rango::Settings.const_get(const_name)
46
+ instance = constant.new
47
+ self.hattributes[name] = instance
48
+ end
49
+ end
50
+
51
+ # @since 0.0.1
52
+ # @example
53
+ # Project.configure do
54
+ # self.foobar = "something"
55
+ # end
56
+ # # => Logger will warn you that property foobar doesn't exist.
57
+ # @param [type] name explanation
58
+ def method_missing(name, *args, &block)
59
+ if name.to_s.match(/^([\w\d]+)=$/) && args.length.eql?(1)# && not block_given?
60
+ Rango.logger.warn("Unknown setting item: #$1")
61
+ else
62
+ super(name, *args, &block)
63
+ end
64
+ end
65
+ end
66
+
67
+ class Anonymous < Settings
68
+ # @since 0.0.2
69
+ # @example
70
+ # Project.configure do
71
+ # self.foobar = "something"
72
+ # end
73
+ # # => Set the property without warning
74
+ # @param [type] name explanation
75
+ def method_missing(name, *args, &block)
76
+ if name.to_s.match(/^([\w\d]+)=$/) && args.length.eql?(1)# && not block_given?
77
+ self.class.hattribute $1.to_sym
78
+ self.send(name, *args, &block)
79
+ else
80
+ super(name, *args, &block)
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+ Rango.import("settings/framework")
@@ -0,0 +1,13 @@
1
+ # coding: utf-8
2
+
3
+ class Rango
4
+ module Settings
5
+ class Erubis < Settings
6
+ # @since 0.0.2
7
+ hattribute :pattern, "<% %>" # can be string or regexp
8
+
9
+ # @since 0.0.2
10
+ hattribute :custom_class # use your own class instead of Erubis::Eruby. Don't forget that you must include (TODO: what) for autoescaping
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,85 @@
1
+ # coding: utf-8
2
+
3
+ class Rango
4
+ module Settings
5
+ class Framework < Settings
6
+ # @since 0.0.1
7
+ # @return [Boolean] explanation
8
+ hattribute :debug, true
9
+
10
+ # @since 0.0.1
11
+ # @return [Boolean] Path to your router. Default +urls.rb+.
12
+ hattribute :router, "urls.rb"
13
+
14
+ # @since 0.0.1
15
+ # @return [String] Path to your +media+ directory.
16
+ hattribute :media_root, lambda { Project.path.join("media").to_s }
17
+
18
+ # @since 0.0.2
19
+ # @return [String] rango-project.org/media/javascripts/mootools-core.js
20
+ hattribute :media_prefix, "/media"
21
+
22
+ # @since 0.0.1
23
+ # @return [Array[String]] Array with paths where Rango will trying to find templates.
24
+ hattribute :template_dirs, ["templates"]
25
+
26
+ # @since 0.0.1
27
+ # @return [String] Name of your database or path to the database if you are using SQLite3.
28
+ hattribute :database_name, lambda { "#{Rango.environment}.db" }
29
+
30
+ # @since 0.0.2
31
+ # @return [String] Array of emails.
32
+ hattribute :admins, Array.new
33
+
34
+ # @since 0.0.1
35
+ # @return [String] Database adapter.
36
+ hattribute :database_adapter, "sqlite3"
37
+
38
+ # @since 0.0.1
39
+ # @return [String] explanation
40
+ # hattribute :logger_strategy, "fireruby"
41
+
42
+ # @since 0.0.1
43
+ # @return [Boolean] ORM. Can be datamapper or nil.
44
+ hattribute :orm
45
+
46
+ # @since 0.0.1
47
+ # @return [Boolean] Template engine. Can be haml, erb, erubis or nil (so just plain html will be returned).
48
+ hattribute :template_engine, "haml"
49
+
50
+ # @since 0.0.1
51
+ # @return [Boolean] Testing engine. Can be rspec or nil.
52
+ hattribute :testing_engine
53
+
54
+ # @since 0.0.1
55
+ # @return [Boolean] Features engine. Can be cucumber or nil.
56
+ hattribute :features_engine
57
+
58
+ # @since 0.0.2
59
+ hattribute :mime_formats, Array.new
60
+
61
+ # @since 0.0.2
62
+ hattribute :autoescape, true
63
+
64
+ # @since 0.0.2
65
+ hattribute :gems_directory, lambda { File.join(Project.root, "gems") }
66
+
67
+ # @since 0.0.2
68
+ hattribute :sources_directory, lambda { File.join(Project.root, "sources") }
69
+
70
+ # @since 0.0.2
71
+ # Project.settings.erubis.pattern
72
+ # hattribute :erubis, lambda { self.settings_module(:erubis) }
73
+ def erubis
74
+ self.settings_module(:erubis)
75
+ end
76
+
77
+ # @since 0.0.2
78
+ # Project.settings.haml.format
79
+ # hattribute :haml, lambda { self.settings_module(:haml) }
80
+ def haml
81
+ self.settings_module(:haml)
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,35 @@
1
+ # coding: utf-8
2
+
3
+ class Rango
4
+ module Settings
5
+ class Haml < Settings
6
+ # @since 0.0.2
7
+ # Determines the output format. The default is :xhtml. Other options are :html4 and :html5, which are identical to :xhtml except there are no self-closing tags, XML prolog is ignored and correct DOCTYPEs are generated.
8
+ hattribute :format, :xhtml
9
+
10
+ # @since 0.0.2
11
+ # Sets whether or not to escape HTML-sensitive characters in script. If this is true, = behaves like &=; otherwise, it behaves like !=. Note that if this is set, != should be used for yielding to subtemplates and rendering partials. Defaults to false.
12
+ hattribute :escape_html, lambda { Project.settings.autoescape }
13
+
14
+ # @since 0.0.2
15
+ # Whether or not attribute hashes and Ruby scripts designated by = or ~ should be evaluated. If this is true, said scripts are rendered as empty strings. Defaults to false.
16
+ hattribute :suppress_eval, false
17
+
18
+ # @since 0.0.2
19
+ # The character that should wrap element attributes. This defaults to ' (an apostrophe). Characters of this type within the attributes will be escaped (e.g. by replacing them with &apos;) if the character is an apostrophe or a quotation mark.
20
+ hattribute :attr_wrapper, '"'
21
+
22
+ # @since 0.0.2
23
+ # A list of tag names that should be automatically self-closed if they have no content. Defaults to ['meta', 'img', 'link', 'br', 'hr', 'input', 'area', 'param', 'col', 'base'].
24
+ hattribute :autoclose, %w[meta img link br hr input area param col base]
25
+
26
+ # @since 0.0.2
27
+ # A list of tag names that should automatically have their newlines preserved using the Haml::Helpers#preserve helper. This means that any content given on the same line as the tag will be preserved. For example
28
+ # %textarea= "Foo\nBar"
29
+ # compiles to:
30
+ # <textarea>Foo&&#x000A;Bar</textarea>
31
+ # Defaults to ['textarea', 'pre'].
32
+ hattribute :preserve, %w[textarea pre]
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,5 @@
1
+ # coding: utf-8
2
+
3
+ Given /^user is at ([^\s]+)$/ do |url|
4
+ request(url)
5
+ end
@@ -0,0 +1,41 @@
1
+ # coding: utf-8
2
+
3
+ # HTTP 200
4
+ Then "it should respond successfuly" do
5
+ @response.should be_successful
6
+ end
7
+
8
+ # not HTTP 200
9
+ Then "the (.*) ?request should fail" do |_|
10
+ @response.should_not be_successful
11
+ end
12
+
13
+ # HTTP 404, 406, 500
14
+ Then /it should have status (\d{3})/ do |status|
15
+ @response.status.should eql(status.to_i)
16
+ end
17
+
18
+ Then /^(\w+) should be redirected to "(.+)"$/ do |who, uri|
19
+ @response.should redirect_to(uri)
20
+ end
21
+
22
+ # content type
23
+ Then /it should render page in (\w+) format/ do |format|
24
+ @response.should have_content_type(format.to_sym)
25
+ end
26
+
27
+ # have given content
28
+ Then /^I should see "(.*)"$/ do |text|
29
+ #@response.body.to_s.should =~ /#{text}/m
30
+ @response.body.should have_content(text)
31
+ end
32
+
33
+ # have not given content
34
+ Then /^I should not see "(.*)"$/ do |text|
35
+ @response.body.to_s.should_not =~ /#{text}/m
36
+ end
37
+
38
+ # have given message
39
+ Then /^I should see an? (\w+) message$/ do |message_type|
40
+ @response.should have_xpath("//*[@class='#{message_type}']")
41
+ end
@@ -0,0 +1,54 @@
1
+ # coding: utf-8
2
+
3
+ # Roles:
4
+ # - user (general user)
5
+ # - admin (authenticated user)
6
+ # - customer ()
7
+ # - guest ()
8
+
9
+ # request
10
+ # use it just for /admin, /login and /
11
+ # in other cases use "click to"
12
+ # THIS CONFLICT WITH SOME STUFF IN EXCEPTIONS FEATURE
13
+ #When /^\w+ goes to (.+)$/ do |uri|
14
+ # @response = request(uri)
15
+ #end
16
+
17
+ # Commonly used webrat steps
18
+ # http://github.com/brynary/webrat
19
+ When /^(\w+) goes to "(.+)"$/ do |user, path|
20
+ @response = visit(path)
21
+ end
22
+
23
+ When /^I press "(.*)"$/ do |button|
24
+ click_button(button)
25
+ end
26
+
27
+ # "user click to" or "admin click to"
28
+ When /^\w+ click to "(.*)"$/ do |link|
29
+ @response = click_link(link)
30
+ end
31
+
32
+ When /^I fill in "(.*)" with "(.*)"$/ do |field, value|
33
+ fill_in(field, with: value)
34
+ end
35
+
36
+ When /^I select "(.*)" from "(.*)"$/ do |value, field|
37
+ select(value, from: field)
38
+ end
39
+
40
+ When /^I check "(.*)"$/ do |field|
41
+ check(field)
42
+ end
43
+
44
+ When /^I uncheck "(.*)"$/ do |field|
45
+ uncheck(field)
46
+ end
47
+
48
+ When /^I choose "(.*)"$/ do |field|
49
+ choose(field)
50
+ end
51
+
52
+ When /^I attach the file at "(.*)" to "(.*)" $/ do |path, field|
53
+ attach_file(field, path)
54
+ end