rango 0.2.3 → 0.2.4.1

Sign up to get free protection for your applications and to get access to all the features.
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,95 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Thor::Tasks
4
- module Merb
5
- class Collector
6
- attr_reader :dependencies
7
-
8
- def self.collect(str)
9
- collector = new
10
- collector.instance_eval(str)
11
- collector.dependencies
12
- end
13
-
14
- def initialize
15
- @dependencies = []
16
- end
17
-
18
- def dependency(name, *versions)
19
- versions.pop if versions.last.is_a?(Hash)
20
- @dependencies << [name, versions]
21
- end
22
- end
23
-
24
- class Gem < Thor
25
- def full_list
26
- @idx.load_gems_in("gems/specifications")
27
-
28
- @list.map do |name, versions|
29
- dep = ::Gem::Dependency.new(name, versions)
30
- spec = @idx.search(dep).last
31
- unless spec
32
- self.class.error "A required dependency #{dep} was not found"
33
- self.class.rollback_trans
34
- end
35
- deps = spec.recursive_dependencies(dep, @idx)
36
- [spec] + deps
37
- end.flatten.uniq
38
- end
39
-
40
- def rescue_failures(error = StandardError, prc = nil)
41
- begin
42
- yield
43
- rescue error => e
44
- if prc
45
- prc.call(e)
46
- else
47
- puts e.message
48
- puts e.backtrace
49
- end
50
- self.class.rollback_trans
51
- end
52
- end
53
-
54
- def self.begin_trans
55
- note "Beginning transaction"
56
- FileUtils.cp_r(Dir.pwd / "gems", Dir.pwd / ".original_gems")
57
- end
58
-
59
- def self.commit_trans
60
- note "Committing transaction"
61
- FileUtils.rm_rf(Dir.pwd / ".original_gems")
62
- end
63
-
64
- def self.rollback_trans
65
- if File.exist?(Dir.pwd / ".original_gems")
66
- note "Rolling back transaction"
67
- FileUtils.rm_rf(Dir.pwd / "gems")
68
- FileUtils.mv(Dir.pwd / ".original_gems", Dir.pwd / "gems")
69
- end
70
- exit!
71
- end
72
-
73
- private
74
- def _install(dep)
75
- @idx.load_gems_in("gems/specifications")
76
- return if @idx.search(dep).last
77
-
78
- installer = ::Gem::DependencyInstaller.new(
79
- :bin_dir => Dir.pwd / "bin",
80
- :install_dir => Dir.pwd / "gems",
81
- :user_install => false)
82
-
83
- begin
84
- installer.install dep.name, dep.version_requirements
85
- rescue ::Gem::GemNotFoundException => e
86
- puts "Cannot find #{dep}"
87
- rescue ::Gem::RemoteFetcher::FetchError => e
88
- puts e.message
89
- puts "Retrying..."
90
- retry
91
- end
92
- end
93
- end
94
- end
95
- end
@@ -1,42 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class String
4
- def /(other)
5
- (Pathname.new(self) + other).to_s
6
- end
7
- end
8
-
9
- module ColorfulMessages
10
-
11
- # red
12
- def error(*messages)
13
- puts messages.map { |msg| "\033[1;31m#{msg}\033[0m" }
14
- end
15
-
16
- # yellow
17
- def warning(*messages)
18
- puts messages.map { |msg| "\033[1;33m#{msg}\033[0m" }
19
- end
20
-
21
- # green
22
- def success(*messages)
23
- puts messages.map { |msg| "\033[1;32m#{msg}\033[0m" }
24
- end
25
-
26
- alias_method :message, :success
27
-
28
- # magenta
29
- def note(*messages)
30
- puts messages.map { |msg| "\033[1;35m#{msg}\033[0m" }
31
- end
32
-
33
- # blue
34
- def info(*messages)
35
- puts messages.map { |msg| "\033[1;34m#{msg}\033[0m" }
36
- end
37
-
38
- end
39
-
40
- module ThorUI
41
- extend ColorfulMessages
42
- end
@@ -1,21 +0,0 @@
1
- .DS_Store
2
- log/*
3
- tmp/*
4
- TAGS
5
- *~
6
- .#*
7
- schema/schema.rb
8
- schema/*_structure.sql
9
- schema/*.sqlite3
10
- schema/*.sqlite
11
- schema/*.db
12
- *.sqlite
13
- *.sqlite3
14
- *.db
15
- src/*
16
- .hgignore
17
- .hg/*
18
- .svn/*
19
- gems/gems/*
20
- gems/specifications/*
21
- merb_profile_results
@@ -1,10 +0,0 @@
1
- Merb Flat
2
- ==============
3
-
4
- An example of a small Merb application. Uses a single views directory and one
5
- controller file.
6
-
7
- Start with
8
-
9
- merb
10
-
@@ -1,35 +0,0 @@
1
- require 'rubygems'
2
- require 'rake/rdoctask'
3
-
4
- require 'merb-core'
5
- require 'merb-core/tasks/merb'
6
-
7
- include FileUtils
8
-
9
- # Load the basic runtime dependencies; this will include
10
- # any plugins and therefore plugin rake tasks.
11
- init_env = ENV['MERB_ENV'] || 'rake'
12
- Merb.load_dependencies(:environment => init_env)
13
-
14
- # Get Merb plugins and dependencies
15
- Merb::Plugins.rakefiles.each { |r| require r }
16
-
17
- # Load any app level custom rakefile extensions from lib/tasks
18
- tasks_path = File.join(File.dirname(__FILE__), "lib", "tasks")
19
- rake_files = Dir["#{tasks_path}/*.rake"]
20
- rake_files.each{|rake_file| load rake_file }
21
-
22
- desc "Start runner environment"
23
- task :merb_env do
24
- Merb.start_environment(:environment => init_env, :adapter => 'runner')
25
- end
26
-
27
- require 'spec/rake/spectask'
28
- require 'merb-core/test/tasks/spectasks'
29
- desc 'Default: run spec examples'
30
- task :default => 'spec'
31
-
32
- ##############################################################################
33
- # ADD YOUR CUSTOM TASKS IN /lib/tasks
34
- # NAME YOUR RAKE FILES file_name.rake
35
- ##############################################################################
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class MerbFlat < Merb::Controller
4
-
5
- def _template_location(action, type = nil, controller = controller_name)
6
- controller == "layout" ? "layout.#{action}.#{type}" : "#{action}.#{type}"
7
- end
8
-
9
- def index
10
- "Hello, I am flat Merb application. I only have one single file for the application, single file for configs and routes, and a directory for views."
11
- end
12
-
13
- def foo
14
- render
15
- end
16
-
17
- end
@@ -1,9 +0,0 @@
1
- # encoding: utf-8
2
-
3
- Merb::Config[:framework] = {
4
- :application => Merb.root / "application.rb",
5
- :config => [Merb.root / "config", nil],
6
- :public => [Merb.root / "public", nil],
7
- :view => Merb.root / "views"
8
- }
9
-
@@ -1,42 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # Go to http://wiki.merbivore.com/pages/init-rb
4
-
5
- # use_orm :none
6
- use_test :rspec
7
- use_template_engine :erb
8
-
9
- # Specify a specific version of a dependency
10
- # dependency "RedCloth", "> 3.0"
11
-
12
- Merb::BootLoader.before_app_loads do
13
- # This will get executed after dependencies have been loaded but before your app's classes have loaded.
14
- end
15
-
16
- Merb::BootLoader.after_app_loads do
17
- # This will get executed after your app's classes have been loaded.
18
- end
19
-
20
- # Move this to application.rb if you want it to be reloadable in dev mode.
21
- Merb::Router.prepare do
22
- match('/').to(:controller => "merb_flat", :action =>'index')
23
-
24
- default_routes
25
- end
26
-
27
- Merb::Config.use { |c|
28
- c[:environment] = 'production',
29
- c[:framework] = {},
30
- c[:log_level] = :debug,
31
- c[:log_stream] = STDOUT,
32
- # or use file for logging:
33
- # c[:log_file] = Merb.root / "log" / "merb.log",
34
- c[:use_mutex] = false,
35
- c[:session_store] = 'cookie',
36
- c[:session_id_key] = '_merb-flat_session_id',
37
- c[:session_secret_key] = 'e3f5fa49385a0e117fd1fca8a45d21eec02055e7',
38
- c[:exception_details] = true,
39
- c[:reload_classes] = true,
40
- c[:reload_templates] = true,
41
- c[:reload_time] = 0.5
42
- }
@@ -1,26 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "rubygems"
4
-
5
- # Add the local gems dir if found within the app root; any dependencies loaded
6
- # hereafter will try to load from the local gems before loading system gems.
7
- if (local_gem_dir = File.join(File.dirname(__FILE__), '..', 'gems')) && $BUNDLE.nil?
8
- $BUNDLE = true; Gem.clear_paths; Gem.path.unshift(local_gem_dir)
9
- end
10
-
11
- require "spec"
12
- require "merb-core"
13
-
14
- Merb::Config.use do |c|
15
- c[:session_store] = "memory"
16
- end
17
-
18
- Merb.start_environment(:testing => true,
19
- :adapter => 'runner',
20
- :environment => ENV['MERB_ENV'] || 'test')
21
-
22
- Spec::Runner.configure do |config|
23
- config.include(Merb::Test::ViewHelper)
24
- config.include(Merb::Test::RouteHelper)
25
- config.include(Merb::Test::ControllerHelper)
26
- end
@@ -1,33 +0,0 @@
1
- # encoding: utf-8
2
-
3
- #!/usr/bin/env ruby
4
-
5
- # This was added by Merb's bundler
6
-
7
- require "rubygems"
8
- require File.join(File.dirname(__FILE__), "common")
9
-
10
- gems_dir = File.join(File.dirname(__FILE__), '..', 'gems')
11
-
12
- if File.directory?(gems_dir)
13
- $BUNDLE = true
14
- Gem.clear_paths
15
- Gem.path.replace([File.expand_path(gems_dir)])
16
- ENV["PATH"] = "#{File.dirname(__FILE__)}:#{ENV["PATH"]}"
17
-
18
- gem_file = File.join(gems_dir, "specifications", "<%= spec.name %>-*.gemspec")
19
-
20
- if local_gem = Dir[gem_file].last
21
- version = File.basename(local_gem)[/-([\.\d]+)\.gemspec$/, 1]
22
- end
23
- end
24
-
25
- version ||= "<%= Gem::Requirement.default %>"
26
-
27
- if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
28
- version = $1
29
- ARGV.shift
30
- end
31
-
32
- gem '<%= @spec.name %>', version
33
- load '<%= bin_file_name %>'
@@ -1,70 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # This was added via Merb's bundler
4
-
5
- require "rubygems"
6
- require "rubygems/source_index"
7
-
8
- module Gem
9
- BUNDLED_SPECS = File.join(Dir.pwd, "gems", "specifications")
10
- MAIN_INDEX = Gem::SourceIndex.from_gems_in(BUNDLED_SPECS)
11
- FALLBACK_INDEX = Gem::SourceIndex.from_installed_gems
12
-
13
- def self.source_index
14
- MultiSourceIndex.new
15
- end
16
-
17
- def self.searcher
18
- MultiPathSearcher.new
19
- end
20
-
21
- class ArbitrarySearcher < GemPathSearcher
22
- def initialize(source_index)
23
- @source_index = source_index
24
- super()
25
- end
26
-
27
- def init_gemspecs
28
- @source_index.map { |_, spec| spec }.sort { |a,b|
29
- (a.name <=> b.name).nonzero? || (b.version <=> a.version)
30
- }
31
- end
32
- end
33
-
34
- class MultiPathSearcher
35
- def initialize
36
- @main_searcher = ArbitrarySearcher.new(MAIN_INDEX)
37
- @fallback_searcher = ArbitrarySearcher.new(FALLBACK_INDEX)
38
- end
39
-
40
- def find(path)
41
- try = @main_searcher.find(path)
42
- return try if try
43
- @fallback_searcher.find(path)
44
- end
45
-
46
- def find_all(path)
47
- try = @main_searcher.find_all(path)
48
- return try unless try.empty?
49
- @fallback_searcher.find_all(path)
50
- end
51
- end
52
-
53
- class MultiSourceIndex
54
- # Used by merb.thor to confirm; not needed when MSI is in use
55
- def load_gems_in(*args)
56
- end
57
-
58
- def search(*args)
59
- try = MAIN_INDEX.search(*args)
60
- return try unless try.empty?
61
- FALLBACK_INDEX.search(*args)
62
- end
63
-
64
- def find_name(*args)
65
- try = MAIN_INDEX.find_name(*args)
66
- return try unless try.empty?
67
- FALLBACK_INDEX.find_name(*args)
68
- end
69
- end
70
- end
@@ -1,127 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "erb"
4
-
5
- Gem.pre_install_hooks.push(proc do |installer|
6
- unless File.file?(installer.bin_dir / "common.rb")
7
- FileUtils.mkdir_p(installer.bin_dir)
8
- FileUtils.cp(File.dirname(__FILE__) / "common.rb", installer.bin_dir / "common.rb")
9
- end
10
-
11
- include ColorfulMessages
12
- name = installer.spec.name
13
- if $GEMS && versions = ($GEMS.assoc(name) || [])[1]
14
- dep = Gem::Dependency.new(name, versions)
15
- unless dep.version_requirements.satisfied_by?(installer.spec.version)
16
- error "Cannot install #{installer.spec.full_name} " \
17
- "for #{$INSTALLING}; " \
18
- "you required #{dep}"
19
- ::Thor::Tasks::Merb::Gem.rollback_trans
20
- exit!
21
- end
22
- end
23
- success "Installing #{installer.spec.full_name}"
24
- end)
25
-
26
- class ::Gem::Uninstaller
27
- def self._with_silent_ui
28
-
29
- ui = Gem::DefaultUserInteraction.ui
30
- def ui.say(str)
31
- puts "- #{str}"
32
- end
33
-
34
- yield
35
-
36
- class << Gem::DefaultUserInteraction.ui
37
- remove_method :say
38
- end
39
- end
40
-
41
- def self._uninstall(source_index, name, op, version)
42
- unless source_index.find_name(name, "#{op} #{version}").empty?
43
- uninstaller = Gem::Uninstaller.new(
44
- name,
45
- :version => "#{op} #{version}",
46
- :install_dir => Dir.pwd / "gems",
47
- :all => true,
48
- :ignore => true
49
- )
50
- _with_silent_ui { uninstaller.uninstall }
51
- end
52
- end
53
-
54
- def self._uninstall_others(source_index, name, version)
55
- _uninstall(source_index, name, "<", version)
56
- _uninstall(source_index, name, ">", version)
57
- end
58
- end
59
-
60
- Gem.post_install_hooks.push(proc do |installer|
61
- source_index = installer.instance_variable_get("@source_index")
62
- ::Gem::Uninstaller._uninstall_others(
63
- source_index, installer.spec.name, installer.spec.version
64
- )
65
- end)
66
-
67
- class ::Gem::DependencyInstaller
68
- alias old_fg find_gems_with_sources
69
-
70
- def find_gems_with_sources(dep)
71
- if @source_index.any? { |_, installed_spec|
72
- installed_spec.satisfies_requirement?(dep)
73
- }
74
- return []
75
- end
76
-
77
- old_fg(dep)
78
- end
79
- end
80
-
81
- class ::Gem::SpecFetcher
82
- alias old_fetch fetch
83
- def fetch(dependency, all = false, matching_platform = true)
84
- idx = Gem::SourceIndex.from_installed_gems
85
-
86
- reqs = dependency.version_requirements.requirements
87
-
88
- if reqs.size == 1 && reqs[0][0] == "="
89
- dep = idx.search(dependency).sort.last
90
- end
91
-
92
- if dep
93
- file = dep.loaded_from.dup
94
- file.gsub!(/specifications/, "cache")
95
- file.gsub!(/gemspec$/, "gem")
96
- spec = ::Gem::Format.from_file_by_path(file).spec
97
- [[spec, file]]
98
- else
99
- old_fetch(dependency, all, matching_platform)
100
- end
101
- end
102
- end
103
-
104
- class ::Gem::Installer
105
- def app_script_text(bin_file_name)
106
- template = File.read(File.dirname(__FILE__) / "app_script.rb")
107
- erb = ERB.new(template)
108
- erb.result(binding)
109
- end
110
- end
111
-
112
- class ::Gem::Specification
113
- def recursive_dependencies(from, index = Gem.source_index)
114
- specs = self.runtime_dependencies.map do |dep|
115
- spec = index.search(dep).last
116
- unless spec
117
- from_name = from.is_a?(::Gem::Specification) ? from.full_name : from.to_s
118
- wider_net = index.find_name(dep.name).last
119
- ThorUI.error "Needed #{dep} for #{from_name}, but could not find it"
120
- ThorUI.error "Found #{wider_net.full_name}" if wider_net
121
- ::Thor::Tasks::Merb::Gem.rollback_trans
122
- end
123
- spec
124
- end
125
- specs + specs.map {|s| s.recursive_dependencies(self, index)}.flatten.uniq
126
- end
127
- end