rango 0.2.3 → 0.2.4.1

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 (281) hide show
  1. data/.gitignore +2 -2
  2. data/CHANGELOG +9 -0
  3. data/CONTRIBUTORS +0 -1
  4. data/Gemfile +2 -6
  5. data/lib/rango.rb +10 -7
  6. data/lib/rango/cli.rb +1 -1
  7. data/lib/rango/contrib/pagination/adapters/sequel.rb +6 -2
  8. data/lib/rango/controller.rb +24 -20
  9. data/lib/rango/core_ext.rb +54 -59
  10. data/lib/rango/exceptions.rb +2 -2
  11. data/lib/rango/gv/router.rb +1 -1
  12. data/lib/rango/gv/scaffolding.rb +0 -1
  13. data/lib/rango/mailer.rb +20 -40
  14. data/lib/rango/mixins/action_args.rb +8 -7
  15. data/lib/rango/mixins/filters.rb +1 -0
  16. data/lib/rango/mixins/message.rb +37 -33
  17. data/lib/rango/mixins/rack-flash.rb +44 -0
  18. data/{benchmarks/stubs/merb-app/spec/spec.opts → lib/rango/orm/tasks/ripple.nake} +0 -0
  19. data/lib/rango/rack/request.rb +12 -15
  20. data/lib/rango/router.rb +7 -3
  21. data/lib/rango/router/adapters/crudtree.rb +8 -1
  22. data/lib/rango/router/adapters/rack_mount.rb +5 -1
  23. data/lib/rango/router/adapters/usher.rb +5 -2
  24. data/lib/rango/stacks/controller.rb +0 -1
  25. data/lib/rango/templates/exts/haml.rb +14 -15
  26. data/lib/rango/templates/exts/tilt.rb +16 -23
  27. data/lib/rango/templates/helpers.rb +10 -1
  28. data/lib/rango/templates/template.rb +4 -4
  29. data/lib/rango/utils.rb +4 -2
  30. data/lib/rango/version.rb +5 -0
  31. data/rango.gemspec +3 -2
  32. data/{benchmarks/stubs/merb-core/spec/spec.opts → spec/rango/cli_spec.rb} +0 -0
  33. data/{benchmarks/stubs/rails/log/development.log → spec/rango/contrib/pagination/adapters/sequel_spec.rb} +0 -0
  34. data/spec/rango/controller_spec.rb +12 -0
  35. data/spec/rango/core_ext_spec.rb +61 -0
  36. data/spec/rango/environments_spec.rb +1 -0
  37. data/spec/rango/exceptions_spec.rb +1 -28
  38. data/{benchmarks/stubs/rails/log/production.log → spec/rango/mailer_spec.rb} +0 -0
  39. data/spec/rango/mixins/action_args_spec.rb +0 -4
  40. data/spec/rango/mixins/message_spec.rb +20 -10
  41. data/{benchmarks/stubs/rails/log/server.log → spec/rango/mixins/rack-flash_spec.rb} +0 -0
  42. data/spec/rango/rack/request_spec.rb +11 -0
  43. data/{benchmarks/stubs/rails/log/test.log → spec/rango/router/adapters/crudtree_spec.rb} +0 -0
  44. data/spec/rango/templates/helpers_spec.rb +19 -5
  45. data/spec/rango/templates/template_spec.rb +1 -20
  46. data/{benchmarks/stubs/rails/public/favicon.ico → spec/rango/version_spec.rb} +0 -0
  47. data/spec/spec_helper.rb +18 -4
  48. data/stubs/stack/content/%name%.gemspec.rbt +0 -0
  49. data/stubs/stack/content/%name%.pre.gemspec.rbt +1 -2
  50. data/stubs/stack/content/.gitignore +2 -5
  51. data/stubs/stack/content/Gemfile.rbt +23 -46
  52. data/stubs/stack/content/config.ru.rbt +9 -21
  53. data/stubs/stack/content/init.rb.rbt +10 -10
  54. data/stubs/stack/content/lib/%name%.rb.rbt +37 -4
  55. data/stubs/stack/content/lib/%name%/initializers/01_database.rb.rbt +16 -0
  56. data/stubs/stack/content/lib/%name%/initializers/05_templates.rb.rbt +13 -0
  57. data/stubs/stack/content/lib/%name%/initializers/10_pagination.rb.rbt +8 -0
  58. data/stubs/stack/content/lib/%name%/initializers/15_warden.rb.rbt +26 -0
  59. data/stubs/stack/content/lib/%name%/initializers/45_middlewares.rb.rbt +17 -0
  60. data/stubs/stack/content/lib/%name%/initializers/50_router.rb.rbt +7 -0
  61. data/stubs/stack/content/lib/%name%/{initializers/urls.rb.rbt → urls.rb.rbt} +3 -0
  62. data/stubs/stack/content/lib/%name%/views.rb.rbt +4 -1
  63. data/stubs/stack/content/templates/index.html.haml +1 -1
  64. data/{gems → vendor}/cache/abstract-1.0.0.gem +0 -0
  65. data/vendor/cache/code-cleaner-0.8.2.gem +0 -0
  66. data/{gems → vendor}/cache/erubis-2.6.5.gem +0 -0
  67. data/vendor/cache/haml-2.2.21.gem +0 -0
  68. data/{gems → vendor}/cache/nake-0.0.8.gem +0 -0
  69. data/vendor/cache/rack-1.1.0.gem +0 -0
  70. data/{gems → vendor}/cache/rspec-1.3.0.gem +0 -0
  71. data/vendor/cache/term-ansicolor-1.0.5.gem +0 -0
  72. data/vendor/cache/tilt-0.8.gem +0 -0
  73. metadata +63 -239
  74. data/benchmarks/stubs/merb-app/.gitignore +0 -21
  75. data/benchmarks/stubs/merb-app/Rakefile +0 -35
  76. data/benchmarks/stubs/merb-app/app/controllers/application.rb +0 -4
  77. data/benchmarks/stubs/merb-app/app/controllers/exceptions.rb +0 -15
  78. data/benchmarks/stubs/merb-app/app/helpers/global_helpers.rb +0 -7
  79. data/benchmarks/stubs/merb-app/app/models/user.rb +0 -19
  80. data/benchmarks/stubs/merb-app/app/views/exceptions/not_acceptable.html.erb +0 -63
  81. data/benchmarks/stubs/merb-app/app/views/exceptions/not_found.html.erb +0 -47
  82. data/benchmarks/stubs/merb-app/app/views/layout/application.html.erb +0 -12
  83. data/benchmarks/stubs/merb-app/autotest/discover.rb +0 -4
  84. data/benchmarks/stubs/merb-app/autotest/merb.rb +0 -154
  85. data/benchmarks/stubs/merb-app/autotest/merb_rspec.rb +0 -167
  86. data/benchmarks/stubs/merb-app/config/database.yml +0 -33
  87. data/benchmarks/stubs/merb-app/config/dependencies.rb +0 -36
  88. data/benchmarks/stubs/merb-app/config/environments/development.rb +0 -17
  89. data/benchmarks/stubs/merb-app/config/environments/production.rb +0 -12
  90. data/benchmarks/stubs/merb-app/config/environments/rake.rb +0 -13
  91. data/benchmarks/stubs/merb-app/config/environments/staging.rb +0 -12
  92. data/benchmarks/stubs/merb-app/config/environments/test.rb +0 -14
  93. data/benchmarks/stubs/merb-app/config/init.rb +0 -26
  94. data/benchmarks/stubs/merb-app/config/rack.rb +0 -13
  95. data/benchmarks/stubs/merb-app/config/router.rb +0 -46
  96. data/benchmarks/stubs/merb-app/doc/rdoc/generators/merb_generator.rb +0 -1364
  97. data/benchmarks/stubs/merb-app/doc/rdoc/generators/template/merb/api_grease.js +0 -640
  98. data/benchmarks/stubs/merb-app/doc/rdoc/generators/template/merb/index.html.erb +0 -37
  99. data/benchmarks/stubs/merb-app/doc/rdoc/generators/template/merb/merb.css +0 -252
  100. data/benchmarks/stubs/merb-app/doc/rdoc/generators/template/merb/merb.rb +0 -353
  101. data/benchmarks/stubs/merb-app/doc/rdoc/generators/template/merb/merb_doc_styles.css +0 -492
  102. data/benchmarks/stubs/merb-app/doc/rdoc/generators/template/merb/prototype.js +0 -2515
  103. data/benchmarks/stubs/merb-app/merb/merb-auth/setup.rb +0 -46
  104. data/benchmarks/stubs/merb-app/merb/merb-auth/strategies.rb +0 -13
  105. data/benchmarks/stubs/merb-app/merb/session/session.rb +0 -11
  106. data/benchmarks/stubs/merb-app/public/.htaccess +0 -17
  107. data/benchmarks/stubs/merb-app/public/favicon.ico +0 -0
  108. data/benchmarks/stubs/merb-app/public/images/merb.jpg +0 -0
  109. data/benchmarks/stubs/merb-app/public/javascripts/application.js +0 -1
  110. data/benchmarks/stubs/merb-app/public/javascripts/jquery.js +0 -19
  111. data/benchmarks/stubs/merb-app/public/merb.fcgi +0 -22
  112. data/benchmarks/stubs/merb-app/public/robots.txt +0 -5
  113. data/benchmarks/stubs/merb-app/public/stylesheets/master.css +0 -119
  114. data/benchmarks/stubs/merb-app/spec/spec_helper.rb +0 -27
  115. data/benchmarks/stubs/merb-app/tasks/doc.thor +0 -151
  116. data/benchmarks/stubs/merb-app/tasks/merb.thor/app_script.rb +0 -33
  117. data/benchmarks/stubs/merb-app/tasks/merb.thor/common.rb +0 -70
  118. data/benchmarks/stubs/merb-app/tasks/merb.thor/gem_ext.rb +0 -127
  119. data/benchmarks/stubs/merb-app/tasks/merb.thor/main.thor +0 -152
  120. data/benchmarks/stubs/merb-app/tasks/merb.thor/ops.rb +0 -95
  121. data/benchmarks/stubs/merb-app/tasks/merb.thor/utils.rb +0 -42
  122. data/benchmarks/stubs/merb-core/.gitignore +0 -21
  123. data/benchmarks/stubs/merb-core/Rakefile +0 -35
  124. data/benchmarks/stubs/merb-core/app/controllers/application.rb +0 -4
  125. data/benchmarks/stubs/merb-core/app/controllers/exceptions.rb +0 -15
  126. data/benchmarks/stubs/merb-core/app/helpers/global_helpers.rb +0 -7
  127. data/benchmarks/stubs/merb-core/app/views/exceptions/not_acceptable.html.erb +0 -63
  128. data/benchmarks/stubs/merb-core/app/views/exceptions/not_found.html.erb +0 -47
  129. data/benchmarks/stubs/merb-core/app/views/layout/application.html.erb +0 -12
  130. data/benchmarks/stubs/merb-core/autotest/discover.rb +0 -1
  131. data/benchmarks/stubs/merb-core/autotest/merb.rb +0 -151
  132. data/benchmarks/stubs/merb-core/autotest/merb_rspec.rb +0 -167
  133. data/benchmarks/stubs/merb-core/config/environments/development.rb +0 -17
  134. data/benchmarks/stubs/merb-core/config/environments/production.rb +0 -12
  135. data/benchmarks/stubs/merb-core/config/environments/rake.rb +0 -13
  136. data/benchmarks/stubs/merb-core/config/environments/staging.rb +0 -12
  137. data/benchmarks/stubs/merb-core/config/environments/test.rb +0 -14
  138. data/benchmarks/stubs/merb-core/config/init.rb +0 -27
  139. data/benchmarks/stubs/merb-core/config/rack.rb +0 -13
  140. data/benchmarks/stubs/merb-core/config/router.rb +0 -43
  141. data/benchmarks/stubs/merb-core/doc/rdoc/generators/merb_generator.rb +0 -1364
  142. data/benchmarks/stubs/merb-core/doc/rdoc/generators/template/merb/api_grease.js +0 -640
  143. data/benchmarks/stubs/merb-core/doc/rdoc/generators/template/merb/index.html.erb +0 -37
  144. data/benchmarks/stubs/merb-core/doc/rdoc/generators/template/merb/merb.css +0 -252
  145. data/benchmarks/stubs/merb-core/doc/rdoc/generators/template/merb/merb.rb +0 -353
  146. data/benchmarks/stubs/merb-core/doc/rdoc/generators/template/merb/merb_doc_styles.css +0 -492
  147. data/benchmarks/stubs/merb-core/doc/rdoc/generators/template/merb/prototype.js +0 -2515
  148. data/benchmarks/stubs/merb-core/public/.htaccess +0 -17
  149. data/benchmarks/stubs/merb-core/public/favicon.ico +0 -0
  150. data/benchmarks/stubs/merb-core/public/images/merb.jpg +0 -0
  151. data/benchmarks/stubs/merb-core/public/javascripts/application.js +0 -1
  152. data/benchmarks/stubs/merb-core/public/merb.fcgi +0 -22
  153. data/benchmarks/stubs/merb-core/public/robots.txt +0 -5
  154. data/benchmarks/stubs/merb-core/public/stylesheets/master.css +0 -119
  155. data/benchmarks/stubs/merb-core/spec/spec_helper.rb +0 -22
  156. data/benchmarks/stubs/merb-core/tasks/merb.thor/app_script.rb +0 -33
  157. data/benchmarks/stubs/merb-core/tasks/merb.thor/common.rb +0 -70
  158. data/benchmarks/stubs/merb-core/tasks/merb.thor/gem_ext.rb +0 -127
  159. data/benchmarks/stubs/merb-core/tasks/merb.thor/main.thor +0 -152
  160. data/benchmarks/stubs/merb-core/tasks/merb.thor/ops.rb +0 -95
  161. data/benchmarks/stubs/merb-core/tasks/merb.thor/utils.rb +0 -42
  162. data/benchmarks/stubs/merb-flat/.gitignore +0 -21
  163. data/benchmarks/stubs/merb-flat/README.txt +0 -10
  164. data/benchmarks/stubs/merb-flat/Rakefile +0 -35
  165. data/benchmarks/stubs/merb-flat/application.rb +0 -17
  166. data/benchmarks/stubs/merb-flat/config/framework.rb +0 -9
  167. data/benchmarks/stubs/merb-flat/config/init.rb +0 -42
  168. data/benchmarks/stubs/merb-flat/spec/spec_helper.rb +0 -26
  169. data/benchmarks/stubs/merb-flat/tasks/merb.thor/app_script.rb +0 -33
  170. data/benchmarks/stubs/merb-flat/tasks/merb.thor/common.rb +0 -70
  171. data/benchmarks/stubs/merb-flat/tasks/merb.thor/gem_ext.rb +0 -127
  172. data/benchmarks/stubs/merb-flat/tasks/merb.thor/main.thor +0 -152
  173. data/benchmarks/stubs/merb-flat/tasks/merb.thor/ops.rb +0 -95
  174. data/benchmarks/stubs/merb-flat/tasks/merb.thor/utils.rb +0 -42
  175. data/benchmarks/stubs/merb-flat/views/foo.html.erb +0 -3
  176. data/benchmarks/stubs/merb-very-flat/.gitignore +0 -21
  177. data/benchmarks/stubs/merb-very-flat/Rakefile +0 -35
  178. data/benchmarks/stubs/merb-very-flat/merb-very-flat.rb +0 -61
  179. data/benchmarks/stubs/merb-very-flat/spec/spec_helper.rb +0 -26
  180. data/benchmarks/stubs/merb-very-flat/tasks/merb.thor/app_script.rb +0 -33
  181. data/benchmarks/stubs/merb-very-flat/tasks/merb.thor/common.rb +0 -70
  182. data/benchmarks/stubs/merb-very-flat/tasks/merb.thor/gem_ext.rb +0 -127
  183. data/benchmarks/stubs/merb-very-flat/tasks/merb.thor/main.thor +0 -152
  184. data/benchmarks/stubs/merb-very-flat/tasks/merb.thor/ops.rb +0 -95
  185. data/benchmarks/stubs/merb-very-flat/tasks/merb.thor/utils.rb +0 -42
  186. data/benchmarks/stubs/rails/README +0 -243
  187. data/benchmarks/stubs/rails/Rakefile +0 -10
  188. data/benchmarks/stubs/rails/app/controllers/application_controller.rb +0 -12
  189. data/benchmarks/stubs/rails/app/helpers/application_helper.rb +0 -5
  190. data/benchmarks/stubs/rails/config/boot.rb +0 -112
  191. data/benchmarks/stubs/rails/config/database.yml +0 -22
  192. data/benchmarks/stubs/rails/config/environment.rb +0 -43
  193. data/benchmarks/stubs/rails/config/environments/development.rb +0 -19
  194. data/benchmarks/stubs/rails/config/environments/production.rb +0 -30
  195. data/benchmarks/stubs/rails/config/environments/test.rb +0 -30
  196. data/benchmarks/stubs/rails/config/initializers/backtrace_silencers.rb +0 -9
  197. data/benchmarks/stubs/rails/config/initializers/inflections.rb +0 -12
  198. data/benchmarks/stubs/rails/config/initializers/mime_types.rb +0 -7
  199. data/benchmarks/stubs/rails/config/initializers/new_rails_defaults.rb +0 -21
  200. data/benchmarks/stubs/rails/config/initializers/session_store.rb +0 -17
  201. data/benchmarks/stubs/rails/config/locales/en.yml +0 -5
  202. data/benchmarks/stubs/rails/config/routes.rb +0 -45
  203. data/benchmarks/stubs/rails/doc/README_FOR_APP +0 -2
  204. data/benchmarks/stubs/rails/public/404.html +0 -30
  205. data/benchmarks/stubs/rails/public/422.html +0 -30
  206. data/benchmarks/stubs/rails/public/500.html +0 -30
  207. data/benchmarks/stubs/rails/public/images/rails.png +0 -0
  208. data/benchmarks/stubs/rails/public/index.html +0 -275
  209. data/benchmarks/stubs/rails/public/javascripts/application.js +0 -2
  210. data/benchmarks/stubs/rails/public/javascripts/controls.js +0 -963
  211. data/benchmarks/stubs/rails/public/javascripts/dragdrop.js +0 -973
  212. data/benchmarks/stubs/rails/public/javascripts/effects.js +0 -1128
  213. data/benchmarks/stubs/rails/public/javascripts/prototype.js +0 -4320
  214. data/benchmarks/stubs/rails/public/robots.txt +0 -5
  215. data/benchmarks/stubs/rails/script/about +0 -4
  216. data/benchmarks/stubs/rails/script/console +0 -3
  217. data/benchmarks/stubs/rails/script/dbconsole +0 -3
  218. data/benchmarks/stubs/rails/script/destroy +0 -3
  219. data/benchmarks/stubs/rails/script/generate +0 -3
  220. data/benchmarks/stubs/rails/script/performance/benchmarker +0 -3
  221. data/benchmarks/stubs/rails/script/performance/profiler +0 -3
  222. data/benchmarks/stubs/rails/script/plugin +0 -3
  223. data/benchmarks/stubs/rails/script/runner +0 -3
  224. data/benchmarks/stubs/rails/script/server +0 -3
  225. data/benchmarks/stubs/rails/test/performance/browsing_test.rb +0 -11
  226. data/benchmarks/stubs/rails/test/test_helper.rb +0 -40
  227. data/benchmarks/stubs/ramaze.rb +0 -0
  228. data/benchmarks/stubs/sinatra.rb +0 -11
  229. data/gems/cache/code-cleaner-0.1.gem +0 -0
  230. data/gems/cache/code-cleaner-0.2.gem +0 -0
  231. data/gems/cache/code-cleaner-0.3.gem +0 -0
  232. data/gems/cache/code-cleaner-0.4.gem +0 -0
  233. data/gems/cache/code-cleaner-0.5.gem +0 -0
  234. data/gems/cache/code-cleaner-0.6.gem +0 -0
  235. data/gems/cache/code-cleaner-0.7.gem +0 -0
  236. data/gems/cache/code-cleaner-0.8.1.gem +0 -0
  237. data/gems/cache/code-cleaner-0.8.gem +0 -0
  238. data/gems/cache/extlib-0.9.14.gem +0 -0
  239. data/gems/cache/haml-2.2.16.gem +0 -0
  240. data/gems/cache/haml-2.2.17.gem +0 -0
  241. data/gems/cache/nake-0.0.2.gem +0 -0
  242. data/gems/cache/nake-0.0.3.gem +0 -0
  243. data/gems/cache/nake-0.0.5.gem +0 -0
  244. data/gems/cache/nake-0.0.6.gem +0 -0
  245. data/gems/cache/rack-1.0.1.gem +0 -0
  246. data/gems/cache/rack-1.1.0.gem +0 -0
  247. data/gems/cache/rspec-1.2.9.gem +0 -0
  248. data/gems/cache/term-ansicolor-1.0.4.gem +0 -0
  249. data/gems/cache/tilt-0.4.gem +0 -0
  250. data/gems/cache/tilt-0.5.gem +0 -0
  251. data/lib/rango/forms/form.rb +0 -30
  252. data/lib/rango/helpers.rb +0 -31
  253. data/lib/rango/helpers/assets.rb +0 -46
  254. data/lib/rango/helpers/general.rb +0 -53
  255. data/lib/rango/helpers/syntax.rb +0 -30
  256. data/lib/rango/mixins/chainable.rb +0 -66
  257. data/lib/rango/mixins/http_caching.rb +0 -78
  258. data/lib/rango/router/adapters/rack_router.rb +0 -7
  259. data/lib/rango/templates/exts/erubis.rb +0 -65
  260. data/spec/rango/forms/form_spec.rb +0 -0
  261. data/spec/rango/helpers/assets_spec.rb +0 -0
  262. data/spec/rango/helpers/general_spec.rb +0 -0
  263. data/spec/rango/helpers/syntax_spec.rb +0 -0
  264. data/spec/rango/helpers_spec.rb +0 -0
  265. data/spec/rango/rack/middlewares/email_obfuscator_spec.rb +0 -0
  266. data/spec/rango/router/adapters/rack_router_spec.rb +0 -0
  267. data/spec/rango/templates/exts/erubis_spec.rb +0 -0
  268. data/spec/stubs/templates/_basic.html.erb +0 -6
  269. data/spec/stubs/templates/basic.html.erb +0 -6
  270. data/spec/stubs/templates/capture.html.erb +0 -11
  271. data/spec/stubs/templates/context.html.erb +0 -6
  272. data/spec/stubs/templates/erubis.html.erubis +0 -2
  273. data/spec/stubs/templates/exception.html.erb +0 -1
  274. data/spec/stubs/templates/inheritance/capture/erb/base.html.erb +0 -3
  275. data/spec/stubs/templates/inheritance/capture/erb/index.html.erb +0 -4
  276. data/spec/stubs/templates/inheritance/capture/erubis/base.html.erubis +0 -3
  277. data/spec/stubs/templates/inheritance/capture/erubis/index.html.erubis +0 -4
  278. data/stubs/stack/content/lib/%name%/config.rb.rbt +0 -0
  279. data/stubs/stack/content/lib/%name%/initializers/middlewares.rb.rbt +0 -5
  280. data/stubs/stack/content/rackup.rb.rbt +0 -41
  281. data/support/hooks/pre-commit +0 -12
@@ -1,5 +0,0 @@
1
- # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
- #
3
- # To ban all spiders from the entire site uncomment the next two lines:
4
- # User-Agent: *
5
- # Disallow: /
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- $LOAD_PATH.unshift "#{RAILTIES_PATH}/builtin/rails_info"
4
- require 'commands/about'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/console'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/dbconsole'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/destroy'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/generate'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../../config/boot'
3
- require 'commands/performance/benchmarker'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../../config/boot'
3
- require 'commands/performance/profiler'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/plugin'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/runner'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/server'
@@ -1,11 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'test_helper'
4
- require 'performance_test_help'
5
-
6
- # Profiling results for each test method are written to tmp/performance.
7
- class BrowsingTest < ActionController::PerformanceTest
8
- def test_homepage
9
- get '/'
10
- end
11
- end
@@ -1,40 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ENV["RAILS_ENV"] = "test"
4
- require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
5
- require 'test_help'
6
-
7
- class ActiveSupport::TestCase
8
- # Transactional fixtures accelerate your tests by wrapping each test method
9
- # in a transaction that's rolled back on completion. This ensures that the
10
- # test database remains unchanged so your fixtures don't have to be reloaded
11
- # between every test method. Fewer database queries means faster tests.
12
- #
13
- # Read Mike Clark's excellent walkthrough at
14
- # http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
15
- #
16
- # Every Active Record database supports transactions except MyISAM tables
17
- # in MySQL. Turn off transactional fixtures in this case; however, if you
18
- # don't care one way or the other, switching from MyISAM to InnoDB tables
19
- # is recommended.
20
- #
21
- # The only drawback to using transactional fixtures is when you actually
22
- # need to test transactions. Since your test is bracketed by a transaction,
23
- # any transactions started in your code will be automatically rolled back.
24
- self.use_transactional_fixtures = true
25
-
26
- # Instantiated fixtures are slow, but give you @david where otherwise you
27
- # would need people(:david). If you don't want to migrate your existing
28
- # test cases which use the @david style and don't mind the speed hit (each
29
- # instantiated fixtures translates to a database query per test method),
30
- # then set this back to true.
31
- self.use_instantiated_fixtures = false
32
-
33
- # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
34
- #
35
- # Note: You'll currently still have to declare fixtures explicitly in integration tests
36
- # -- they do not yet inherit this setting
37
- fixtures :all
38
-
39
- # Add more helper methods to be used by all tests here...
40
- end
File without changes
@@ -1,11 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class BenchmarkApp < Sinatra::Mocked
4
- get "/success" do
5
- "Hello World"
6
- end
7
-
8
- get "/:foo/:bar" do
9
- "Hello World"
10
- end
11
- end
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,30 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # class ContactForm < Rango::Form
4
- # property :subject, String
5
- # property :message, Text
6
- # property :cc_self, Boolean
7
- # end
8
-
9
- # @future 0.0.3 It's just a prototype now
10
- module Rango
11
- class Form
12
- def media
13
- end
14
-
15
- def valid?
16
- end
17
-
18
- def to_html
19
- output = Array.new
20
- output << %{<form action="#{@action}" method="post">}
21
- output << *@fields.map { |field| field.to_html }
22
- output << %{</form>}
23
- return output.join("\n")
24
- end
25
- end
26
-
27
- class ModelForm
28
-
29
- end
30
- end
@@ -1,31 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Rango
4
- module Helpers
5
- # tag :a, href: "/contact" { anchor }
6
- # tag :a, "contact", href: "/contact"
7
- # @since 0.0.2
8
- def tag(tag, content, attrs = Hash.new, &block)
9
- attrs, content = content, String.new if attrs.empty? && content.is_a?(Hash)
10
- block.call if block
11
- %[<#{tag}#{attrs_to_html(attrs)}>#{content}</#{tag}>]
12
- end
13
-
14
- # @since 0.0.2
15
- def single_tag(tag, attrs = Hash.new)
16
- %[<#{tag}#{attrs_to_html(attrs)} />]
17
- end
18
-
19
- private
20
- def attrs_to_html(attrs)
21
- attrs.inject(String.new) do |result, pair|
22
- key, value = pair
23
- result += " #{key}='#{value}'"
24
- end
25
- end
26
- end
27
- end
28
-
29
- require "rango/helpers/assets"
30
- require "rango/helpers/syntax"
31
- require "rango/helpers/general"
@@ -1,46 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # TODO: javascript "application" => media/javascripts/application.js
4
- # ... but what if I need full path? It should be tested if file exist, of course
5
- # javascript Path.new("design/whatever.js")
6
- require "rango/helpers"
7
-
8
- begin
9
- require "media-path"
10
- rescue LoadError
11
- raise LoadError, "You have to install media-path gem!"
12
- end
13
-
14
- module Rango
15
- module Helpers
16
- # stolen from pupu (but it's OK, it's my code)
17
- # @since 0.0.2
18
- def javascript(basename)
19
- path = MediaPath.new(File.join(Rango.media_root, "javascripts", "#{basename}.js"))
20
- tag :script, src: path.url, type: "text/javascript"
21
- end
22
-
23
- # @since 0.0.2
24
- def stylesheet(basename, attrs = Hash.new)
25
- path = MediaPath.new(File.join(Rango.media_root, "stylesheets", basename))
26
- default = {href: path.url, media: 'screen', rel: 'stylesheet', type: 'text/css'}
27
- single_tag :link, default.merge(attrs)
28
- end
29
-
30
- def image(basename, attrs = Hash.new)
31
- path = MediaPath.new(File.join(Rango.media_root, "images", basename))
32
- default = {src: path.url, alt: path.basename}
33
- single_tag :img, default.merge(attrs)
34
- end
35
-
36
- # @since 0.0.2
37
- def javascripts(*names)
38
- names.map { |name| self.javascript(name) }.join("\n")
39
- end
40
-
41
- # @since 0.0.2
42
- def stylesheets(*names)
43
- names.map { |name| self.stylesheet(name) }.join("\n")
44
- end
45
- end
46
- end
@@ -1,53 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "uri"
4
- require "rango/helpers"
5
-
6
- module Rango
7
- module Helpers
8
- # @since 0.0.1
9
- def copyright(from)
10
- now = Time.now.year
11
- now.eql?(from) ? now : "#{from} - #{now}"
12
- end
13
-
14
- # @since 0.0.2
15
- def link_to(name, url, options = Hash.new)
16
- default = {href: URI.escape(url), title: name.to_s.gsub(/'/, '&apos;')}
17
- tag :a, name, default.merge(options)
18
- end
19
-
20
- # @since 0.0.2
21
- def link_item(name, url)
22
- tag :li, link_to(name, url)
23
- end
24
-
25
- # @since 0.0.2
26
- # mail_to "joe@example.com"
27
- # => "<a href='mailto:joe@example.com'>joe@example.com</a>"
28
- # mail_to "joe@example.com", "Title"
29
- # => "<a href='mailto:joe@example.com'>Title</a>"
30
- def mail_to(mail, text = mail)
31
- mail.gsub!("@" "&#x40;")
32
- tag :a, text, href: "mailto:#{mail}"
33
- end
34
-
35
- # @since 0.0.2
36
- def error_messages_for(model_instance)
37
- tag :ul do
38
- messages = model_instance.errors.full_messages
39
- messages.map { |message| tag :li, message }
40
- end
41
- end
42
-
43
- def truncate(text, *args)
44
- options = args.extract_options!
45
- unless args.empty?
46
- options[:size] = args[0] || 75
47
- options[:omission] = args[1] || "..."
48
- end
49
- options = {size: 75, omission: "..."}.merge(options)
50
- text.scan(/(\S+)(\s+)/)[0..options[:size]].flatten.join << options[:omission] if text
51
- end
52
- end
53
- end
@@ -1,30 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "rango/helpers"
4
-
5
- module Rango
6
- module Helpers
7
- # @since 0.0.1
8
- def textile(text)
9
- require "redcloth"
10
- RedCloth.new(text).to_html
11
- end
12
-
13
- # @since 0.0.1
14
- def markdown(text)
15
- require "bluecloth"
16
- end
17
-
18
- # @since 0.0.1
19
- def maruku(text, options = Hash.new)
20
- require "maruku"
21
- end
22
-
23
- # @since 0.0.1
24
- def syntax(text, options = Hash.new)
25
- require "syntax/convertors/html"
26
- convertor = Syntax::Convertors::HTML.for_syntax(options[:language] || "ruby")
27
- convertor.convert(text, false)
28
- end
29
- end
30
- end
@@ -1,66 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # from merb-core
4
- module Chainable
5
- # Allows the definition of methods on a class that will be available via
6
- # super.
7
- #
8
- # ==== Examples
9
- # class Foo
10
- # extend Chainable
11
- # chainable do
12
- # def hello
13
- # "hello"
14
- # end
15
- # end
16
- # end
17
- #
18
- # class Foo
19
- # def hello
20
- # super + " Merb!"
21
- # end
22
- # end
23
- #
24
- # # Example with mixin:
25
- # module TestMixin
26
- # extend Chainable
27
- # chainable do
28
- # def test
29
- # "from mixin!"
30
- # end
31
- # end
32
- # end
33
- #
34
- # class Test
35
- # include TestMixin
36
- # def test
37
- # "hello " + super
38
- # end
39
- # end
40
- #
41
- # puts Test.new.test
42
- #
43
- #
44
- # Foo.new.hello #=> "hello Merb!"
45
- #
46
- # ==== Parameters
47
- # &block::
48
- # a block containing method definitions that should be
49
- # marked as chainable
50
- #
51
- # ==== Returns
52
- # Module:: The anonymous module that was created
53
- def chainable(method = nil, &block)
54
- if method.nil? && block_given?
55
- mixin = Module.new(&block)
56
- include mixin
57
- return mixin
58
- elsif method && ! block_given?
59
- # TODO
60
- # def test
61
- # # ...
62
- # end
63
- # chainable :test
64
- end
65
- end
66
- end
@@ -1,78 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Rango
4
- module HttpCaching
5
- def self.included(base)
6
- base.send(:include, LastModified)
7
- base.send(:include, ETag)
8
- end
9
-
10
- module LastModified
11
- def self.included(base)
12
- Rango.logger.debug("LastModified caching mixin included to #{self.inspect}")
13
- base.before_render_filters.push(:check_last_modified_for_template)
14
- base.before_display_filters.push(:check_last_modified_for_object)
15
- base.after_display_filters.push(:set_last_modified_for_object)
16
- base.after_render_filters.push(:set_last_modified_for_template)
17
- # Cache-Control: must-revalidate means that browser must send validation request every time even if there is already cache entry exists for this object.
18
- base.headers["Cache-Control"] = "must-revalidate" unless base.headers["Cache-Control"]
19
- end
20
-
21
- # set headers
22
- # after display
23
- def set_last_modified_for_object(object, result)
24
- if request.last_modified.nil? || request.last_modified < object.updated_at
25
- self.headers["Last-Modified"] = object.updated_at
26
- end
27
- end
28
-
29
- # after render
30
- def set_last_modified_for_template(template)
31
- if self["Last-Modified"].nil? || self["Last-Modified"] < template.mtime
32
- self.headers["Last-Modified"] = template.mtime
33
- end
34
- end
35
-
36
- # check headers
37
- # before render
38
- def check_last_modified_for_template(template)
39
- template.last_modified
40
- end
41
-
42
- # TODO: last modified for static files as JS, CSS ... (middleware)
43
- # before display
44
- def check_last_modified_for_object(object)
45
- last_modified = [object.updated_at, template.mtime].max
46
- raise NotModified if request.if_modified_since < last_modified
47
- end
48
- end
49
-
50
- module ETag
51
- def self.included(base)
52
- Rango.logger.debug("ETag-based caching mixin included to #{self.inspect}")
53
- base.after_render_filters.push(:check_etag)
54
- base.after_render_filters.push(:set_etag)
55
- # Cache-Control: must-revalidate means that browser must send validation request every time even if there is already cache entry exists for this object.
56
- base.headers["Cache-Control"] = "must-revalidate" unless base.headers["Cache-Control"]
57
- end
58
-
59
- # set headers
60
- # after render
61
- def set_etag(template)
62
- headers["ETag"] = template.render.hash.to_s
63
- end
64
-
65
- # check headers
66
- # Rango::Controller#display use it
67
- # server sends HTTP ETAG
68
- # client sends HTTP_IF_NONE_MATCH
69
- # This method suits for cases when it’s difficult to maintain Last-Modified value: when you have complicated application with many page fragments especially if there are third-party libraries. Or for the case with authentication, when page content depends on authentication info.
70
- # Etag is useful for dynamic content, when modify time is not known. In this case Etage can be
71
- # generated from hash (md5/sha) of content.
72
- # after render
73
- def check_etag(result)
74
- raise NotModified if request.etag.eql?(result.hash)
75
- end
76
- end
77
- end
78
- end