middleman 2.0.4 → 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. data/CHANGELOG +8 -0
  2. data/lib/middleman.rb +7 -1
  3. data/lib/middleman/vendor/padrino-core-0.10.0/.document +5 -0
  4. data/lib/middleman/vendor/padrino-core-0.10.0/.gitignore +22 -0
  5. data/lib/middleman/vendor/padrino-core-0.10.0/LICENSE +20 -0
  6. data/lib/middleman/vendor/padrino-core-0.10.0/README.rdoc +294 -0
  7. data/lib/middleman/vendor/padrino-core-0.10.0/Rakefile +5 -0
  8. data/lib/middleman/vendor/padrino-core-0.10.0/bin/padrino +9 -0
  9. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core.rb +119 -0
  10. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application.rb +259 -0
  11. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application/rendering.rb +228 -0
  12. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application/routing.rb +821 -0
  13. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application/showexceptions.rb +18 -0
  14. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/caller.rb +45 -0
  15. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/adapter.rb +24 -0
  16. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/base.rb +152 -0
  17. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/console.rb +20 -0
  18. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/rake.rb +24 -0
  19. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/rake_tasks.rb +59 -0
  20. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/command.rb +27 -0
  21. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/images/404.png +0 -0
  22. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/images/500.png +0 -0
  23. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/loader.rb +182 -0
  24. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/cz.yml +30 -0
  25. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/da.yml +30 -0
  26. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/de.yml +30 -0
  27. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/en.yml +30 -0
  28. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/es.yml +30 -0
  29. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/fr.yml +30 -0
  30. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/hu.yml +30 -0
  31. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/it.yml +37 -0
  32. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/ja.yml +30 -0
  33. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/nl.yml +30 -0
  34. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/no.yml +31 -0
  35. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/pl.yml +30 -0
  36. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/pt_br.yml +37 -0
  37. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/ru.yml +30 -0
  38. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/tr.yml +30 -0
  39. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/uk.yml +30 -0
  40. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/zh_cn.yml +30 -0
  41. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/zh_tw.yml +30 -0
  42. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/logger.rb +344 -0
  43. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/mounter.rb +192 -0
  44. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/reloader.rb +247 -0
  45. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/router.rb +79 -0
  46. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/server.rb +70 -0
  47. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/support_lite.rb +135 -0
  48. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/tasks.rb +23 -0
  49. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/version.rb +15 -0
  50. data/lib/middleman/vendor/padrino-core-0.10.0/padrino-core.gemspec +38 -0
  51. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/.components +6 -0
  52. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/.gitignore +7 -0
  53. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/complex.rb +27 -0
  54. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/simple.rb +33 -0
  55. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/a.rb +9 -0
  56. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/b.rb +4 -0
  57. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/c.rb +1 -0
  58. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/circular/e.rb +13 -0
  59. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/circular/f.rb +2 -0
  60. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/circular/g.rb +2 -0
  61. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/d.rb +4 -0
  62. data/lib/middleman/vendor/padrino-core-0.10.0/test/helper.rb +101 -0
  63. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_application.rb +83 -0
  64. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_core.rb +79 -0
  65. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_dependencies.rb +44 -0
  66. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_filters.rb +266 -0
  67. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_logger.rb +91 -0
  68. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_mounter.rb +176 -0
  69. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_reloader_complex.rb +66 -0
  70. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_reloader_simple.rb +97 -0
  71. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_rendering.rb +437 -0
  72. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_router.rb +146 -0
  73. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_routing.rb +1491 -0
  74. data/lib/middleman/vendor/padrino-helpers-0.10.0/.document +5 -0
  75. data/lib/middleman/vendor/padrino-helpers-0.10.0/.gitignore +21 -0
  76. data/lib/middleman/vendor/padrino-helpers-0.10.0/LICENSE +20 -0
  77. data/lib/middleman/vendor/padrino-helpers-0.10.0/README.rdoc +239 -0
  78. data/lib/middleman/vendor/padrino-helpers-0.10.0/Rakefile +5 -0
  79. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers.rb +51 -0
  80. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/asset_tag_helpers.rb +288 -0
  81. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/form_builder/abstract_form_builder.rb +220 -0
  82. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/form_builder/standard_form_builder.rb +43 -0
  83. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/form_helpers.rb +446 -0
  84. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/format_helpers.rb +260 -0
  85. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/cz.yml +103 -0
  86. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/da.yml +91 -0
  87. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/de.yml +78 -0
  88. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/en.yml +103 -0
  89. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/es.yml +103 -0
  90. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/fr.yml +79 -0
  91. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/hu.yml +103 -0
  92. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/it.yml +85 -0
  93. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/ja.yml +103 -0
  94. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/nl.yml +78 -0
  95. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/no.yml +91 -0
  96. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/pl.yml +95 -0
  97. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/pt_br.yml +103 -0
  98. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/ru.yml +103 -0
  99. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/tr.yml +103 -0
  100. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/uk.yml +103 -0
  101. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/zh_cn.yml +103 -0
  102. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/zh_tw.yml +103 -0
  103. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/number_helpers.rb +273 -0
  104. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers.rb +128 -0
  105. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/abstract_handler.rb +103 -0
  106. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/erb_handler.rb +79 -0
  107. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/haml_handler.rb +64 -0
  108. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/slim_handler.rb +82 -0
  109. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/render_helpers.rb +40 -0
  110. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/tag_helpers.rb +59 -0
  111. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/translation_helpers.rb +21 -0
  112. data/lib/middleman/vendor/padrino-helpers-0.10.0/padrino-helpers.gemspec +27 -0
  113. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/app.rb +73 -0
  114. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/capture_concat.erb +14 -0
  115. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/capture_concat.haml +12 -0
  116. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/capture_concat.slim +13 -0
  117. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_for.erb +11 -0
  118. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_for.haml +9 -0
  119. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_for.slim +9 -0
  120. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_tag.erb +11 -0
  121. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_tag.haml +9 -0
  122. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_tag.slim +9 -0
  123. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/current_engine.erb +5 -0
  124. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/current_engine.haml +5 -0
  125. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/current_engine.slim +5 -0
  126. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/fields_for.erb +20 -0
  127. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/fields_for.haml +15 -0
  128. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/fields_for.slim +15 -0
  129. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_for.erb +56 -0
  130. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_for.haml +47 -0
  131. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_for.slim +47 -0
  132. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_tag.erb +56 -0
  133. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_tag.haml +45 -0
  134. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_tag.slim +45 -0
  135. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/link_to.erb +5 -0
  136. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/link_to.haml +4 -0
  137. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/link_to.slim +4 -0
  138. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/mail_to.erb +3 -0
  139. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/mail_to.haml +3 -0
  140. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/mail_to.slim +3 -0
  141. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/meta_tag.erb +3 -0
  142. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/meta_tag.haml +3 -0
  143. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/meta_tag.slim +3 -0
  144. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/partials/_erb.erb +1 -0
  145. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/partials/_haml.haml +1 -0
  146. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/partials/_slim.slim +1 -0
  147. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/simple_partial.erb +1 -0
  148. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/simple_partial.haml +1 -0
  149. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/simple_partial.slim +1 -0
  150. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/app.rb +45 -0
  151. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engine.haml +5 -0
  152. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engines/_erb.erb +1 -0
  153. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engines/_haml.haml +1 -0
  154. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engines/_slim.slim +1 -0
  155. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/erb/test.erb +1 -0
  156. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/explicit_engine.haml +5 -0
  157. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/haml/test.haml +1 -0
  158. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/template/_user.haml +7 -0
  159. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/template/haml_template.haml +1 -0
  160. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/template/some_template.haml +2 -0
  161. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/helper.rb +78 -0
  162. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_asset_tag_helpers.rb +320 -0
  163. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_form_builder.rb +998 -0
  164. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_form_helpers.rb +645 -0
  165. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_format_helpers.rb +227 -0
  166. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_number_helpers.rb +136 -0
  167. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_output_helpers.rb +133 -0
  168. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_render_helpers.rb +69 -0
  169. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_tag_helpers.rb +100 -0
  170. data/lib/middleman/version.rb +1 -1
  171. data/middleman.gemspec +6 -2
  172. metadata +218 -67
@@ -0,0 +1,70 @@
1
+ module Padrino
2
+ ##
3
+ # Run the Padrino apps as a self-hosted server using:
4
+ # thin, mongrel, webrick in that order.
5
+ #
6
+ # ==== Examples
7
+ #
8
+ # Padrino.run! # with these defaults => host: "localhost", port: "3000", adapter: the first found
9
+ # Padrino.run!("localhost", "4000", "mongrel") # use => host: "0.0.0.0", port: "3000", adapter: "mongrel"
10
+ #
11
+ def self.run!(options={})
12
+ Padrino.load!
13
+ Server.start(Padrino.application, options)
14
+ end
15
+
16
+ ##
17
+ # This module build a Padrino server
18
+ #
19
+ class Server < Rack::Server
20
+ # Server Handlers
21
+ Handlers = [:thin, :mongrel, :webrick]
22
+
23
+ def self.start(app, opts={})
24
+ options = {}.merge(opts) # We use a standard hash instead of Thor::CoreExt::HashWithIndifferentAccess
25
+ options.symbolize_keys!
26
+ options[:Host] = options.delete(:host) || '0.0.0.0'
27
+ options[:Port] = options.delete(:port) || 3000
28
+ options[:AccessLog] = []
29
+ if options[:daemonize]
30
+ options[:pid] = options[:pid].blank? ? File.expand_path('tmp/pids/server.pid') : opts[:pid]
31
+ FileUtils.mkdir_p(File.dirname(options[:pid]))
32
+ end
33
+ options[:server] = detect_rack_handler if options[:server].blank?
34
+ new(options, app).start
35
+ end
36
+
37
+ def initialize(options, app)
38
+ @options, @app = options, app
39
+ end
40
+
41
+ def start
42
+ puts "=> Padrino/#{Padrino.version} has taken the stage #{Padrino.env} at http://#{options[:Host]}:#{options[:Port]}"
43
+ [:INT, :TERM].each { |sig| trap(sig) { exit } }
44
+ super
45
+ ensure
46
+ puts "<= Padrino has ended his set (crowd applauds)" unless options[:daemonize]
47
+ end
48
+
49
+ def app
50
+ @app
51
+ end
52
+ alias :wrapped_app :app
53
+
54
+ def options
55
+ @options
56
+ end
57
+
58
+ private
59
+ def self.detect_rack_handler
60
+ Handlers.each do |handler|
61
+ begin
62
+ return handler if Rack::Handler.get(handler.to_s.downcase)
63
+ rescue LoadError
64
+ rescue NameError
65
+ end
66
+ end
67
+ fail "Server handler (#{Handlers.join(', ')}) not found."
68
+ end
69
+ end # Server
70
+ end # Padrino
@@ -0,0 +1,135 @@
1
+ ##
2
+ # This file loads certain extensions required by Padrino from ActiveSupport.
3
+ #
4
+ require 'active_support/core_ext/kernel' # silence_warnings
5
+ require 'active_support/core_ext/module/aliasing' # alias_method_chain
6
+ require 'active_support/core_ext/class/attribute_accessors' # cattr_reader
7
+ require 'active_support/core_ext/hash/keys' # symbolize_keys
8
+ require 'active_support/core_ext/hash/reverse_merge' # reverse_merge
9
+ require 'active_support/core_ext/hash/slice' # slice
10
+ require 'active_support/core_ext/object/blank' # present?
11
+ require 'active_support/core_ext/array/extract_options' # extract_options
12
+ require 'active_support/inflector/methods' # constantize
13
+ require 'active_support/inflector/inflections' # pluralize
14
+ require 'active_support/inflections' # load default inflections
15
+
16
+ ##
17
+ # This is a small version of active_support/core_ext/string/inflections.rb
18
+ # to prevent to load a lot of dependencies including I18n gem
19
+ #
20
+ # Issue: https://github.com/rails/rails/issues/1526
21
+ #
22
+ class String
23
+ # Returns the plural form of the word in the string.
24
+ #
25
+ # "post".pluralize # => "posts"
26
+ # "octopus".pluralize # => "octopi"
27
+ # "sheep".pluralize # => "sheep"
28
+ # "words".pluralize # => "words"
29
+ # "the blue mailman".pluralize # => "the blue mailmen"
30
+ # "CamelOctopus".pluralize # => "CamelOctopi"
31
+ def pluralize
32
+ ActiveSupport::Inflector.pluralize(self)
33
+ end
34
+
35
+ # +constantize+ tries to find a declared constant with the name specified
36
+ # in the string. It raises a NameError when the name is not in CamelCase
37
+ # or is not initialized.
38
+ #
39
+ # Examples
40
+ # "Module".constantize # => Module
41
+ # "Class".constantize # => Class
42
+ def constantize
43
+ ActiveSupport::Inflector.constantize(self)
44
+ end
45
+
46
+ # By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize
47
+ # is set to <tt>:lower</tt> then camelize produces lowerCamelCase.
48
+ #
49
+ # +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces.
50
+ #
51
+ # "active_record".camelize # => "ActiveRecord"
52
+ # "active_record".camelize(:lower) # => "activeRecord"
53
+ # "active_record/errors".camelize # => "ActiveRecord::Errors"
54
+ # "active_record/errors".camelize(:lower) # => "activeRecord::Errors"
55
+ def camelize(first_letter = :upper)
56
+ case first_letter
57
+ when :upper then ActiveSupport::Inflector.camelize(self, true)
58
+ when :lower then ActiveSupport::Inflector.camelize(self, false)
59
+ end
60
+ end
61
+ alias_method :camelcase, :camelize
62
+
63
+ # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string.
64
+ #
65
+ # +underscore+ will also change '::' to '/' to convert namespaces to paths.
66
+ #
67
+ # "ActiveRecord".underscore # => "active_record"
68
+ # "ActiveRecord::Errors".underscore # => active_record/errors
69
+ def underscore
70
+ ActiveSupport::Inflector.underscore(self)
71
+ end
72
+
73
+ # Create a class name from a plural table name like Rails does for table names to models.
74
+ # Note that this returns a string and not a class. (To convert to an actual class
75
+ # follow +classify+ with +constantize+.)
76
+ #
77
+ # "egg_and_hams".classify # => "EggAndHam"
78
+ # "posts".classify # => "Post"
79
+ #
80
+ # Singular names are not handled correctly.
81
+ #
82
+ # "business".classify # => "Busines"
83
+ def classify
84
+ ActiveSupport::Inflector.classify(self)
85
+ end
86
+ end
87
+
88
+ module ObjectSpace
89
+ class << self
90
+ # Returns all the classes in the object space.
91
+ def classes
92
+ ObjectSpace.each_object(Module).select do |klass|
93
+ Class.class_eval { klass } rescue false
94
+ end
95
+ end
96
+ end
97
+ end
98
+
99
+ ##
100
+ # FileSet helper method for iterating and interacting with files inside a directory
101
+ #
102
+ class FileSet
103
+ # Iterates over every file in the glob pattern and yields to a block
104
+ # Returns the list of files matching the glob pattern
105
+ # FileSet.glob('padrino-core/application/*.rb', __FILE__) { |file| load file }
106
+ def self.glob(glob_pattern, file_path=nil, &block)
107
+ glob_pattern = File.join(File.dirname(file_path), glob_pattern) if file_path
108
+ file_list = Dir.glob(glob_pattern).sort
109
+ file_list.each { |file| block.call(file) }
110
+ file_list
111
+ end
112
+
113
+ # Requires each file matched in the glob pattern into the application
114
+ # FileSet.glob_require('padrino-core/application/*.rb', __FILE__)
115
+ def self.glob_require(glob_pattern, file_path=nil)
116
+ self.glob(glob_pattern, file_path) { |f| require f }
117
+ end
118
+ end
119
+
120
+ ##
121
+ # YAML Engine Parsing Fix
122
+ # https://github.com/padrino/padrino-framework/issues/424
123
+ #
124
+ require 'yaml' unless defined?(YAML)
125
+ YAML::ENGINE.yamler = "syck" if defined?(YAML::ENGINE)
126
+
127
+ ##
128
+ # Loads our locale configuration files
129
+ #
130
+ I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"] if defined?(I18n)
131
+
132
+ ##
133
+ # Used to know if this file has already been required
134
+ #
135
+ module SupportLite; end
@@ -0,0 +1,23 @@
1
+ module Padrino
2
+
3
+ ##
4
+ # This module it's used for bootstrap with padrino rake
5
+ # thirdy party tasks, in your gem/plugin/extension you
6
+ # need only do this:
7
+ #
8
+ # ==== Examples
9
+ #
10
+ # Padrino::Tasks.files << yourtask.rb
11
+ # Padrino::Tasks.files.concat(Dir["/path/to/all/my/tasks/*.rb"])
12
+ # Padrino::Tasks.files.unshift("yourtask.rb")
13
+ #
14
+ module Tasks
15
+
16
+ ##
17
+ # Returns a list of files to handle with padrino rake
18
+ #
19
+ def self.files
20
+ @files ||= []
21
+ end
22
+ end # Tasks
23
+ end # Padrino
@@ -0,0 +1,15 @@
1
+ ##
2
+ # Manages current Padrino version for use in gem generation.
3
+ #
4
+ # We put this in a separate file so you can get padrino version
5
+ # without include full padrino core.
6
+ #
7
+ module Padrino
8
+ VERSION = '0.10.0' unless defined?(Padrino::VERSION)
9
+ ##
10
+ # Return the current Padrino version
11
+ #
12
+ def self.version
13
+ VERSION
14
+ end
15
+ end # Padrino
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env gem build
2
+ # encoding: utf-8
3
+
4
+ require File.expand_path("../lib/padrino-core/version.rb", __FILE__)
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "padrino-core"
8
+ s.rubyforge_project = "padrino-core"
9
+ s.authors = ["Padrino Team", "Nathan Esquenazi", "Davide D'Agostino", "Arthur Chiu"]
10
+ s.email = "padrinorb@gmail.com"
11
+ s.summary = "The required Padrino core gem"
12
+ s.homepage = "http://www.padrinorb.com"
13
+ s.description = "The Padrino core gem required for use of this framework"
14
+ s.required_rubygems_version = ">= 1.3.6"
15
+ s.version = Padrino.version
16
+ s.date = Time.now.strftime("%Y-%m-%d")
17
+
18
+ s.extra_rdoc_files = Dir["*.rdoc"]
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
+ s.require_paths = ["lib"]
23
+ s.rdoc_options = ["--charset=UTF-8"]
24
+
25
+ # TODO remove after a couple versions
26
+ s.post_install_message = "\e[32m" + ("*" * 20)
27
+ s.post_install_message << "\n UPGRADE NOTES\n\n\e[31m When upgrading, please 'enable :sessions' for each application"
28
+ s.post_install_message << " as shown here:\e[0m http://bit.ly/kODKMx\n"
29
+ s.post_install_message << "\e[31m When upgrading, please 'register Padrino::Rendering' for each application"
30
+ s.post_install_message << " as shown here:\e[0m https://gist.github.com/1d36a35794dbbd664ea4"
31
+ s.post_install_message << "\n\e[32m" + ("*" * 20) + "\n\e[0m"
32
+
33
+ s.add_dependency("tilt", "~> 1.3.0")
34
+ s.add_dependency("sinatra", "~> 1.2.6")
35
+ s.add_dependency("http_router", "~> 0.8.10")
36
+ s.add_dependency("thor", "~> 0.14.3")
37
+ s.add_dependency("activesupport", "~> 3.0.0")
38
+ end
@@ -0,0 +1,6 @@
1
+ ---
2
+ :test: bacon
3
+ :mock: mocha
4
+ :orm: datamapper
5
+ :renderer: erb
6
+ :script: jquery
@@ -0,0 +1,7 @@
1
+ .DS_Store
2
+ log/**/*
3
+ tmp/**/*
4
+ vendor/gems/gems
5
+ vendor/gems/specifications
6
+ vendor/gems/doc
7
+ vendor/gems/environment.rb
@@ -0,0 +1,27 @@
1
+ PADRINO_ROOT = File.dirname(__FILE__) unless defined? PADRINO_ROOT
2
+
3
+ module LibDemo
4
+ def self.give_me_a_random
5
+ @rand ||= rand(100)
6
+ end
7
+ end
8
+
9
+ class Complex1Demo < Padrino::Application
10
+ set :reload, true
11
+ get("/old"){ "Old Sinatra Way" }
12
+ end
13
+
14
+ class Complex2Demo < Padrino::Application
15
+ set :reload, true
16
+ get("/old"){ "Old Sinatra Way" }
17
+ get("/"){ "The magick number is: 12!" } # Change only the number!!!
18
+ end
19
+
20
+ Complex1Demo.controllers do
21
+ get("/"){ "Given random #{LibDemo.give_me_a_random}" }
22
+ end
23
+
24
+ Complex2Demo.controllers do
25
+ end
26
+
27
+ Padrino.load!
@@ -0,0 +1,33 @@
1
+ PADRINO_ROOT = File.dirname(__FILE__) unless defined? PADRINO_ROOT
2
+ # Remove this comment if you want do some like this: ruby PADRINO_ENV=test app.rb
3
+ #
4
+ # require 'rubygems'
5
+ # require 'padrino-core'
6
+ #
7
+
8
+ class SimpleDemo < Padrino::Application
9
+ set :reload, true
10
+ before { true }
11
+ after { true }
12
+ error(404) { "404" }
13
+ end
14
+
15
+ SimpleDemo.controllers do
16
+ get "/" do
17
+ 'The magick number is: 72!' # Change only the number!!!
18
+ end
19
+
20
+ get "/rand" do
21
+ rand(2 ** 256).to_s
22
+ end
23
+ end
24
+
25
+ ## If you want use this as a standalone app uncomment:
26
+ #
27
+ # Padrino.mount("SimpleDemo").to("/")
28
+ # Padrino.run! unless Padrino.loaded? # If you enable reloader prevent to re-run the app
29
+ #
30
+ # Then run it from your console: ruby -I"lib" test/fixtures/apps/simple.rb
31
+ #
32
+
33
+ Padrino.load!
@@ -0,0 +1,9 @@
1
+ # This file will be safe loaded three times.
2
+ # The first one fail because B and C constant are not defined
3
+ # The second one file because B requires C constant so will not be loaded
4
+ # The third one B and C are defined
5
+
6
+ # But here we need some of b.rb
7
+ A_result = [B, C]
8
+
9
+ A = "A"
@@ -0,0 +1,4 @@
1
+ # But here we need some of c.rb and a.rb
2
+ B_result = C
3
+
4
+ B = "B"
@@ -0,0 +1,13 @@
1
+ class E
2
+ def self.fields
3
+ @fields ||= []
4
+ end
5
+
6
+ def self.inherited(subclass)
7
+ subclass.fields.replace fields.dup
8
+ end
9
+
10
+ G
11
+
12
+ fields << "name"
13
+ end
@@ -0,0 +1,4 @@
1
+ D = 0 unless defined?(D)
2
+ D += 1
3
+
4
+ raise "SomeThing"
@@ -0,0 +1,101 @@
1
+ ENV['PADRINO_ENV'] = 'test'
2
+ PADRINO_ROOT = File.dirname(__FILE__) unless defined? PADRINO_ROOT
3
+
4
+ require File.expand_path('../../../load_paths', __FILE__)
5
+ require 'padrino-core'
6
+ require 'test/unit'
7
+ require 'rack/test'
8
+ require 'rack'
9
+ require 'shoulda'
10
+ require 'phocus'
11
+
12
+ # Rubies < 1.9 don't handle hashes in the properly order so to prevent
13
+ # this issue for now we remove extra values from mimetypes.
14
+ Rack::Mime::MIME_TYPES.delete(".xsl") # In this way application/xml respond only to .xml
15
+
16
+ module Kernel
17
+ # Silences the output by redirecting to stringIO
18
+ # silence_logger { ...commands... } => "...output..."
19
+ def silence_logger(&block)
20
+ $stdout = log_buffer = StringIO.new
21
+ block.call
22
+ $stdout = STDOUT
23
+ log_buffer.string
24
+ end
25
+ alias :silence_stdout :silence_logger
26
+
27
+ def silence_warnings
28
+ old_verbose, $VERBOSE = $VERBOSE, nil
29
+ yield
30
+ ensure
31
+ $VERBOSE = old_verbose
32
+ end
33
+ end
34
+
35
+ class Class
36
+ # Allow assertions in request context
37
+ include Test::Unit::Assertions
38
+ end
39
+
40
+ class Test::Unit::TestCase
41
+ include Rack::Test::Methods
42
+
43
+ # Sets up a Sinatra::Base subclass defined with the block
44
+ # given. Used in setup or individual spec methods to establish
45
+ # the application.
46
+ def mock_app(base=Padrino::Application, &block)
47
+ @app = Sinatra.new(base, &block)
48
+ end
49
+
50
+ def app
51
+ Rack::Lint.new(@app)
52
+ end
53
+
54
+ # Asserts that a file matches the pattern
55
+ def assert_match_in_file(pattern, file)
56
+ assert File.exist?(file), "File '#{file}' does not exist!"
57
+ assert_match pattern, File.read(file)
58
+ end
59
+
60
+ # Delegate other missing methods to response.
61
+ def method_missing(name, *args, &block)
62
+ if response && response.respond_to?(name)
63
+ response.send(name, *args, &block)
64
+ else
65
+ super(name, *args, &block)
66
+ end
67
+ end
68
+
69
+ alias :response :last_response
70
+
71
+ def create_template(name, content, options={})
72
+ FileUtils.mkdir_p(File.dirname(__FILE__) + "/views")
73
+ FileUtils.mkdir_p(File.dirname(__FILE__) + "/views/layouts")
74
+ path = "/views/#{name}"
75
+ path += ".#{options.delete(:locale)}" if options[:locale].present?
76
+ path += ".#{options[:format]}" if options[:format].present?
77
+ path += ".erb" unless options[:format].to_s =~ /haml|rss|atom/
78
+ path += ".builder" if options[:format].to_s =~ /rss|atom/
79
+ file = File.dirname(__FILE__) + path
80
+ File.open(file, 'w') { |io| io.write content }
81
+ file
82
+ end
83
+ alias :create_view :create_template
84
+ alias :create_layout :create_template
85
+
86
+ def remove_views
87
+ FileUtils.rm_rf(File.dirname(__FILE__) + "/views")
88
+ end
89
+
90
+ def with_template(name, content, options={})
91
+ # Build a temp layout
92
+ template = create_template(name, content, options)
93
+ yield
94
+ ensure
95
+ # Remove temp layout
96
+ File.unlink(template) rescue nil
97
+ remove_views
98
+ end
99
+ alias :with_view :with_template
100
+ alias :with_layout :with_template
101
+ end