middleman-core 3.1.0.rc.2 → 3.1.0.rc.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.simplecov +2 -1
- data/features/capture_html.feature +18 -0
- data/features/content_for.feature +3 -3
- data/features/v4_extension_callbacks.feature +8 -0
- data/fixtures/capture-html-app/config.rb +7 -0
- data/fixtures/capture-html-app/source/capture_html_erb.html.erb +5 -0
- data/fixtures/capture-html-app/source/capture_html_haml.html.haml +4 -0
- data/fixtures/capture-html-app/source/capture_html_slim.html.slim +4 -0
- data/fixtures/capture-html-app/source/layouts/capture_html.erb +4 -0
- data/fixtures/content-for-app/source/content_for_erb.html.erb +1 -1
- data/fixtures/content-for-app/source/content_for_haml.html.haml +1 -1
- data/fixtures/content-for-app/source/content_for_slim.html.slim +2 -1
- data/fixtures/v4-extension-callbacks/config.rb +26 -0
- data/fixtures/v4-extension-callbacks/source/index.html.erb +2 -0
- data/lib/middleman-core/core_extensions/extensions.rb +6 -1
- data/lib/middleman-core/core_extensions/file_watcher.rb +1 -0
- data/lib/middleman-core/core_extensions/rendering.rb +1 -2
- data/lib/middleman-core/core_extensions/request.rb +2 -2
- data/lib/middleman-core/extensions.rb +21 -0
- data/lib/middleman-core/meta_pages/sitemap_resource.rb +4 -1
- data/lib/middleman-core/version.rb +1 -1
- data/lib/middleman-more/core_extensions/default_helpers.rb +17 -3
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/.document +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/.gitignore +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/.yardopts +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/LICENSE.txt +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/README.rdoc +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/Rakefile +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/bin/padrino +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core.rb +58 -4
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/application.rb +40 -16
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/application/flash.rb +229 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/application/rendering.rb +39 -11
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/application/rendering/extensions/erubis.rb +55 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/application/rendering/extensions/haml.rb +26 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/application/rendering/extensions/slim.rb +14 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/application/routing.rb +133 -37
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/application/showexceptions.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/caller.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/cli/adapter.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/cli/base.rb +41 -38
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/cli/console.rb +0 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/cli/rake.rb +47 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/cli/rake_tasks.rb +9 -14
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/command.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/images/404.png +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/images/500.png +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/loader.rb +23 -9
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/cs.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/da.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/de.yml +6 -6
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/en.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/es.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/fr.yml +1 -1
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/hu.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/it.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/ja.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/lv.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/nl.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/no.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/pl.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/pt_br.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/ro.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/ru.yml +1 -1
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/sv.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/tr.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/uk.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/zh_cn.yml +11 -11
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/locale/zh_tw.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/logger.rb +48 -32
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/module.rb +58 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/mounter.rb +15 -5
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/reloader.rb +139 -52
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/router.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/server.rb +5 -5
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/support_lite.rb +59 -6
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/tasks.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/lib/padrino-core/version.rb +1 -1
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/padrino-core.gemspec +10 -5
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/test/fixtures/app_gem/Gemfile +4 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/test/fixtures/app_gem/app/app.rb +3 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/test/fixtures/app_gem/app_gem.gemspec +17 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/test/fixtures/app_gem/lib/app_gem.rb +7 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/test/fixtures/app_gem/lib/app_gem/version.rb +3 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/apps/.components +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/apps/.gitignore +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/apps/complex.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/apps/simple.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/dependencies/a.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/dependencies/b.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/dependencies/c.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/dependencies/circular/e.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/dependencies/circular/f.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/dependencies/circular/g.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/fixtures/dependencies/d.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/helper.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/mini_shoulda.rb +2 -2
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_application.rb +38 -21
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_core.rb +0 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/test/test_csrf_protection.rb +80 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_dependencies.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_filters.rb +70 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/test/test_flash.rb +168 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_locale.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_logger.rb +27 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_mounter.rb +24 -2
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_reloader_complex.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_reloader_simple.rb +4 -4
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_rendering.rb +75 -4
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_restful_routing.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_router.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-core-0.10.7 → padrino-core-0.11.2}/test/test_routing.rb +209 -35
- data/lib/vendored-middleman-deps/padrino-core-0.11.2/test/test_support_lite.rb +56 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/.document +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/.gitignore +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/.yardopts +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/LICENSE.txt +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/README.rdoc +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/Rakefile +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers.rb +2 -1
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/asset_tag_helpers.rb +58 -66
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/breadcrumb_helpers.rb +171 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/form_builder/abstract_form_builder.rb +84 -26
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/form_builder/standard_form_builder.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/form_helpers.rb +94 -19
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/format_helpers.rb +9 -5
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/cs.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/da.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/de.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/en.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/es.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/fr.yml +12 -12
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/hu.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/it.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/ja.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/lv.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/nl.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/no.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/pl.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/pt_br.yml +2 -2
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/ro.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/ru.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/sv.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/tr.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/uk.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/zh_cn.yml +13 -14
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/locale/zh_tw.yml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/number_helpers.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/output_helpers.rb +45 -5
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/output_helpers/abstract_handler.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/output_helpers/erb_handler.rb +3 -3
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/output_helpers/haml_handler.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/output_helpers/slim_handler.rb +6 -7
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/render_helpers.rb +2 -2
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/tag_helpers.rb +34 -6
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/lib/padrino-helpers/translation_helpers.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/padrino-helpers.gemspec +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/app.rb +13 -6
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/capture_concat.erb +2 -2
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/capture_concat.haml +2 -2
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/capture_concat.slim +4 -5
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/content_for.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/content_for.haml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/content_for.slim +4 -4
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/content_tag.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/content_tag.haml +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/markup_app/views/content_tag.slim +9 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/current_engine.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/current_engine.haml +1 -1
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/current_engine.slim +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/fields_for.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/fields_for.haml +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/markup_app/views/fields_for.slim +15 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/form_for.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/form_for.haml +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/markup_app/views/form_for.slim +59 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/form_tag.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/form_tag.haml +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/markup_app/views/form_tag.slim +70 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/link_to.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/link_to.haml +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/markup_app/views/link_to.slim +4 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/mail_to.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/mail_to.haml +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/markup_app/views/mail_to.slim +3 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/meta_tag.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/meta_tag.haml +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/markup_app/views/meta_tag.slim +3 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/partials/_erb.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/partials/_haml.haml +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/markup_app/views/partials/_slim.slim +1 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/simple_partial.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/markup_app/views/simple_partial.haml +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/markup_app/views/simple_partial.slim +1 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/app.rb +7 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/current_engine.haml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/current_engines/_erb.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/current_engines/_haml.haml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/current_engines/_slim.slim +0 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/render_app/views/double_capture_erb.erb +3 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/render_app/views/double_capture_haml.haml +2 -0
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/test/fixtures/render_app/views/double_capture_slim.slim +2 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/erb/test.erb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/explicit_engine.haml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/haml/test.haml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/template/_user.haml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/template/haml_template.haml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/fixtures/render_app/views/template/some_template.haml +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/helper.rb +1 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/test_asset_tag_helpers.rb +24 -5
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/test_form_builder.rb +41 -1
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/test_form_helpers.rb +36 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/test_format_helpers.rb +14 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/test_locale.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/test_number_helpers.rb +0 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/test_output_helpers.rb +5 -3
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/test_render_helpers.rb +18 -0
- data/lib/vendored-middleman-deps/{padrino-helpers-0.10.7 → padrino-helpers-0.11.2}/test/test_tag_helpers.rb +11 -0
- data/middleman-core.gemspec +1 -1
- metadata +218 -184
- data/lib/vendored-middleman-deps/padrino-core-0.10.7/lib/padrino-core/cli/rake.rb +0 -25
- data/lib/vendored-middleman-deps/padrino-helpers-0.10.7/test/fixtures/markup_app/views/content_tag.slim +0 -9
- data/lib/vendored-middleman-deps/padrino-helpers-0.10.7/test/fixtures/markup_app/views/fields_for.slim +0 -15
- data/lib/vendored-middleman-deps/padrino-helpers-0.10.7/test/fixtures/markup_app/views/form_for.slim +0 -59
- data/lib/vendored-middleman-deps/padrino-helpers-0.10.7/test/fixtures/markup_app/views/form_tag.slim +0 -70
- data/lib/vendored-middleman-deps/padrino-helpers-0.10.7/test/fixtures/markup_app/views/link_to.slim +0 -4
- data/lib/vendored-middleman-deps/padrino-helpers-0.10.7/test/fixtures/markup_app/views/mail_to.slim +0 -3
- data/lib/vendored-middleman-deps/padrino-helpers-0.10.7/test/fixtures/markup_app/views/meta_tag.slim +0 -3
- data/lib/vendored-middleman-deps/padrino-helpers-0.10.7/test/fixtures/markup_app/views/partials/_slim.slim +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.10.7/test/fixtures/markup_app/views/simple_partial.slim +0 -1
- data/spec/middleman-core/sitemap_spec.rb +0 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
module Padrino
|
2
|
+
module Module
|
3
|
+
attr_accessor :root
|
4
|
+
|
5
|
+
##
|
6
|
+
# Register this module as being loaded from a gem. This automatically
|
7
|
+
# sets the root and therefore the dependency paths correctly.
|
8
|
+
#
|
9
|
+
# @param [String] name
|
10
|
+
# The name of the gem. Has to be the name as stated in the gemspec.
|
11
|
+
#
|
12
|
+
# @returns the gems root.
|
13
|
+
def gem!(name)
|
14
|
+
self.root = Padrino.gem(name, self)
|
15
|
+
end
|
16
|
+
|
17
|
+
##
|
18
|
+
# Helper method for file references within a Padrino module.
|
19
|
+
#
|
20
|
+
# @param [Array<String>] args
|
21
|
+
# The directories to join to {Module.root}.
|
22
|
+
#
|
23
|
+
# @return [String]
|
24
|
+
# The absolute path.
|
25
|
+
#
|
26
|
+
# @example
|
27
|
+
# module MyModule
|
28
|
+
# extend Padrino::Module
|
29
|
+
# gem! 'my_gem'
|
30
|
+
# end
|
31
|
+
# Module.root!
|
32
|
+
def root(*args)
|
33
|
+
File.expand_path(File.join(@root, *args))
|
34
|
+
end
|
35
|
+
|
36
|
+
##
|
37
|
+
# Returns the list of path globs to load as dependencies
|
38
|
+
# Appends custom dependency patterns to the be loaded for Padrino.
|
39
|
+
#
|
40
|
+
# @return [Array<String>]
|
41
|
+
# The dependency paths.
|
42
|
+
#
|
43
|
+
# @example
|
44
|
+
# module MyModule
|
45
|
+
# extend Padrino::Module
|
46
|
+
# gem! 'my_gem'
|
47
|
+
# end
|
48
|
+
#
|
49
|
+
# Module.dependency_paths << "#{MyModule.root}/uploaders/*.rb"
|
50
|
+
#
|
51
|
+
def dependency_paths
|
52
|
+
[
|
53
|
+
"#{root}/lib/**/*.rb", "#{root}/shared/lib/**/*.rb",
|
54
|
+
"#{root}/models/**/*.rb", "#{root}/shared/models/**/*.rb"
|
55
|
+
]
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -22,10 +22,12 @@ module Padrino
|
|
22
22
|
# @option options [Symbol] :app_file (Automatically detected)
|
23
23
|
# @option options [Symbol] :app_obj (Detected)
|
24
24
|
# @option options [Symbol] :app_root (Directory of :app_file)
|
25
|
+
# @option options [Symbol] :gem The gem to load the app from (Detected from name)
|
25
26
|
#
|
26
27
|
def initialize(name, options={})
|
27
28
|
@name = name.to_s
|
28
29
|
@app_class = options[:app_class] || @name.camelize
|
30
|
+
@gem = options[:gem] || @app_class.split("::").first.underscore
|
29
31
|
@app_file = options[:app_file] || locate_app_file
|
30
32
|
@app_obj = options[:app_obj] || app_constant || locate_app_object
|
31
33
|
ensure_app_file! || ensure_app_object!
|
@@ -104,11 +106,12 @@ module Padrino
|
|
104
106
|
#
|
105
107
|
def named_routes
|
106
108
|
app_obj.routes.map { |route|
|
107
|
-
name_array = "(#{route.
|
108
|
-
request_method = route.
|
109
|
-
|
110
|
-
|
111
|
-
|
109
|
+
name_array = "(#{route.name.to_s.split("_").map { |piece| %Q[:#{piece}] }.join(", ")})"
|
110
|
+
request_method = route.request_methods.first
|
111
|
+
next if route.name.blank? || request_method == 'HEAD'
|
112
|
+
original_path = route.original_path.is_a?(Regexp) ? route.original_path.inspect : route.original_path
|
113
|
+
full_path = File.join(uri_root, original_path)
|
114
|
+
OpenStruct.new(:verb => request_method, :identifier => route.name, :name => name_array, :path => full_path)
|
112
115
|
}.compact
|
113
116
|
end
|
114
117
|
|
@@ -158,6 +161,13 @@ module Padrino
|
|
158
161
|
candidates << app_constant.app_file if app_constant.respond_to?(:app_file) && File.exist?(app_constant.app_file.to_s)
|
159
162
|
candidates << Padrino.first_caller if File.identical?(Padrino.first_caller.to_s, Padrino.called_from.to_s)
|
160
163
|
candidates << Padrino.mounted_root(name.downcase, "app.rb")
|
164
|
+
simple_name = name.split("::").last.downcase
|
165
|
+
mod_name = name.split("::")[0..-2].join("::")
|
166
|
+
Padrino.modules.each do |mod|
|
167
|
+
if mod.name == mod_name
|
168
|
+
candidates << mod.root(simple_name, "app.rb")
|
169
|
+
end
|
170
|
+
end
|
161
171
|
candidates << Padrino.root("app", "app.rb")
|
162
172
|
candidates.find { |candidate| File.exist?(candidate) }
|
163
173
|
end
|
@@ -33,7 +33,7 @@ module Padrino
|
|
33
33
|
# Specified constants can be excluded from the code unloading process.
|
34
34
|
#
|
35
35
|
def exclude_constants
|
36
|
-
@_exclude_constants ||=
|
36
|
+
@_exclude_constants ||= Set.new
|
37
37
|
end
|
38
38
|
|
39
39
|
##
|
@@ -41,7 +41,7 @@ module Padrino
|
|
41
41
|
# Default included constants are: [none]
|
42
42
|
#
|
43
43
|
def include_constants
|
44
|
-
@_include_constants ||=
|
44
|
+
@_include_constants ||= Set.new
|
45
45
|
end
|
46
46
|
|
47
47
|
##
|
@@ -51,7 +51,7 @@ module Padrino
|
|
51
51
|
# Detect changed files
|
52
52
|
rotation do |file, mtime|
|
53
53
|
# Retrive the last modified time
|
54
|
-
new_file
|
54
|
+
new_file = MTIMES[file].nil?
|
55
55
|
previous_mtime = MTIMES[file] ||= mtime
|
56
56
|
logger.devel "Detected a new file #{file}" if new_file
|
57
57
|
# We skip to next file if it is not new and not modified
|
@@ -74,15 +74,9 @@ module Padrino
|
|
74
74
|
# Remove files and classes loaded with stat
|
75
75
|
#
|
76
76
|
def clear!
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
LOADED_CLASSES.delete(file)
|
81
|
-
end
|
82
|
-
LOADED_FILES.each do |file, dependencies|
|
83
|
-
dependencies.each { |dependency| $LOADED_FEATURES.delete(dependency) }
|
84
|
-
$LOADED_FEATURES.delete(file)
|
85
|
-
end
|
77
|
+
clear_modification_times
|
78
|
+
clear_loaded_classes
|
79
|
+
clear_loaded_files_and_features
|
86
80
|
end
|
87
81
|
|
88
82
|
##
|
@@ -103,67 +97,59 @@ module Padrino
|
|
103
97
|
# We lock dependencies sets to prevent reloading of protected constants
|
104
98
|
#
|
105
99
|
def lock!
|
106
|
-
klasses = ObjectSpace.classes
|
100
|
+
klasses = ObjectSpace.classes do |klass|
|
101
|
+
klass._orig_klass_name.split('::')[0]
|
102
|
+
end
|
103
|
+
|
107
104
|
klasses = klasses | Padrino.mounted_apps.map { |app| app.app_class }
|
108
|
-
Padrino::Reloader.exclude_constants.
|
105
|
+
Padrino::Reloader.exclude_constants.merge(klasses)
|
109
106
|
end
|
110
107
|
|
111
108
|
##
|
112
109
|
# A safe Kernel::require which issues the necessary hooks depending on results
|
113
110
|
#
|
114
111
|
def safe_load(file, options={})
|
115
|
-
began_at
|
116
|
-
force
|
112
|
+
began_at = Time.now
|
113
|
+
force = options[:force]
|
114
|
+
file = figure_path(file)
|
115
|
+
reload = should_reload?(file)
|
116
|
+
m_time = modification_time(file)
|
117
117
|
|
118
|
-
|
119
|
-
reload = MTIMES[file] && File.mtime(file) > MTIMES[file]
|
120
|
-
return if !force && !reload && MTIMES[file]
|
118
|
+
return if !force && m_time && !reload
|
121
119
|
|
122
|
-
|
123
|
-
|
124
|
-
klasses.each { |klass| remove_constant(klass) }
|
125
|
-
end
|
126
|
-
|
127
|
-
# Remove all loaded fatures with our file
|
128
|
-
if features = LOADED_FILES[file]
|
129
|
-
features.each { |feature| $LOADED_FEATURES.delete(feature) }
|
130
|
-
end
|
120
|
+
remove_loaded_file_classes(file)
|
121
|
+
remove_loaded_file_features(file)
|
131
122
|
|
132
123
|
# Duplicate objects and loaded features before load file
|
133
|
-
klasses = ObjectSpace.classes
|
134
|
-
files = $LOADED_FEATURES.dup
|
124
|
+
klasses = ObjectSpace.classes
|
125
|
+
files = Set.new($LOADED_FEATURES.dup)
|
135
126
|
|
136
|
-
|
137
|
-
if features = LOADED_FILES.delete(file)
|
138
|
-
features.each { |feature| safe_load(feature, :force => true) }
|
139
|
-
end
|
127
|
+
reload_deps_of_file(file)
|
140
128
|
|
141
129
|
# And finally load the specified file
|
142
130
|
begin
|
143
131
|
logger.devel :loading, began_at, file if !reload
|
144
132
|
logger.debug :reload, began_at, file if reload
|
145
|
-
|
146
|
-
|
133
|
+
|
134
|
+
$LOADED_FEATURES.delete(file) if files.include?(file)
|
135
|
+
Padrino::Utils.silence_output
|
147
136
|
loaded = false
|
148
137
|
require(file)
|
149
138
|
loaded = true
|
150
|
-
|
139
|
+
update_modification_time(file)
|
151
140
|
rescue SyntaxError => e
|
152
141
|
logger.error "Cannot require #{file} due to a syntax error: #{e.message}"
|
153
142
|
ensure
|
154
|
-
|
155
|
-
new_constants =
|
143
|
+
Padrino::Utils.unsilence_output
|
144
|
+
new_constants = ObjectSpace.new_classes(klasses)
|
156
145
|
if loaded
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
# Track only features in our Padrino.root
|
161
|
-
LOADED_FILES[file].delete_if { |feature| !in_root?(feature) }
|
146
|
+
process_loaded_file(:file => file,
|
147
|
+
:constants => new_constants,
|
148
|
+
:files => files)
|
162
149
|
else
|
163
150
|
logger.devel "Failed to load #{file}; removing partially defined constants"
|
164
|
-
new_constants
|
151
|
+
unload_constants(new_constants)
|
165
152
|
end
|
166
|
-
|
167
153
|
end
|
168
154
|
end
|
169
155
|
|
@@ -183,8 +169,8 @@ module Padrino
|
|
183
169
|
# Removes the specified class and constant.
|
184
170
|
#
|
185
171
|
def remove_constant(const)
|
186
|
-
return if exclude_constants.
|
187
|
-
!include_constants.
|
172
|
+
return if exclude_constants.any? { |c| const._orig_klass_name.index(c) == 0 } &&
|
173
|
+
!include_constants.any? { |c| const._orig_klass_name.index(c) == 0 }
|
188
174
|
begin
|
189
175
|
parts = const.to_s.sub(/^::(Object)?/, 'Object::').split('::')
|
190
176
|
object = parts.pop
|
@@ -195,6 +181,101 @@ module Padrino
|
|
195
181
|
end
|
196
182
|
|
197
183
|
private
|
184
|
+
|
185
|
+
###
|
186
|
+
# Clear instance variables that keep track of
|
187
|
+
# loaded features/files/mtimes
|
188
|
+
#
|
189
|
+
def clear_modification_times
|
190
|
+
MTIMES.clear
|
191
|
+
end
|
192
|
+
|
193
|
+
def clear_loaded_classes
|
194
|
+
LOADED_CLASSES.each do |file, klasses|
|
195
|
+
klasses.each { |klass| remove_constant(klass) }
|
196
|
+
LOADED_CLASSES.delete(file)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
def clear_loaded_files_and_features
|
201
|
+
LOADED_FILES.each do |file, dependencies|
|
202
|
+
dependencies.each { |dependency| $LOADED_FEATURES.delete(dependency) }
|
203
|
+
$LOADED_FEATURES.delete(file)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
###
|
208
|
+
# Macro for mtime query
|
209
|
+
#
|
210
|
+
def modification_time(file)
|
211
|
+
MTIMES[file]
|
212
|
+
end
|
213
|
+
|
214
|
+
###
|
215
|
+
# Macro for mtime update
|
216
|
+
#
|
217
|
+
def update_modification_time(file)
|
218
|
+
MTIMES[file] = File.mtime(file)
|
219
|
+
end
|
220
|
+
|
221
|
+
###
|
222
|
+
# Tracks loaded file features/classes/constants
|
223
|
+
#
|
224
|
+
def process_loaded_file(*args)
|
225
|
+
options = args.extract_options!
|
226
|
+
new_constants = options[:constants]
|
227
|
+
files = options[:files]
|
228
|
+
file = options[:file]
|
229
|
+
|
230
|
+
# Store the file details
|
231
|
+
LOADED_CLASSES[file] = new_constants
|
232
|
+
LOADED_FILES[file] = Set.new($LOADED_FEATURES) - files - [file]
|
233
|
+
|
234
|
+
# Track only features in our Padrino.root
|
235
|
+
LOADED_FILES[file].delete_if { |feature| !in_root?(feature) }
|
236
|
+
end
|
237
|
+
|
238
|
+
###
|
239
|
+
# Unloads all constants in new_constants
|
240
|
+
#
|
241
|
+
def unload_constants(new_constants)
|
242
|
+
new_constants.each { |klass| remove_constant(klass) }
|
243
|
+
end
|
244
|
+
|
245
|
+
###
|
246
|
+
# Safe load dependencies of a file
|
247
|
+
#
|
248
|
+
def reload_deps_of_file(file)
|
249
|
+
if features = LOADED_FILES.delete(file)
|
250
|
+
features.each { |feature| safe_load(feature, :force => true) }
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
##
|
255
|
+
# Check if file was changed or if force a reload
|
256
|
+
#
|
257
|
+
def should_reload?(file)
|
258
|
+
MTIMES[file] && File.mtime(file) > MTIMES[file]
|
259
|
+
end
|
260
|
+
|
261
|
+
##
|
262
|
+
# Removes all classes declared in the specified file
|
263
|
+
#
|
264
|
+
def remove_loaded_file_classes(file)
|
265
|
+
if klasses = LOADED_CLASSES.delete(file)
|
266
|
+
klasses.each { |klass| remove_constant(klass) }
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
##
|
271
|
+
# Remove all loaded fatures with our file
|
272
|
+
#
|
273
|
+
def remove_loaded_file_features(file)
|
274
|
+
if features = LOADED_FILES[file]
|
275
|
+
features.each { |feature| $LOADED_FEATURES.delete(feature) }
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
198
279
|
##
|
199
280
|
# Return the mounted_apps providing the app location
|
200
281
|
# Can be an array because in one app.rb we can define multiple Padrino::Appplications
|
@@ -218,15 +299,21 @@ module Padrino
|
|
218
299
|
# and monitors them for any changes.
|
219
300
|
#
|
220
301
|
def rotation
|
221
|
-
|
222
|
-
files = files | Padrino.mounted_apps.map { |app| app.app_file }
|
223
|
-
files = files | Padrino.mounted_apps.map { |app| app.app_obj.dependencies }.flatten
|
224
|
-
files.uniq.map do |file|
|
302
|
+
files_for_rotation.uniq.map do |file|
|
225
303
|
file = File.expand_path(file)
|
226
304
|
next if Padrino::Reloader.exclude.any? { |base| file.index(base) == 0 } || !File.exist?(file)
|
227
305
|
yield file, File.mtime(file)
|
228
306
|
end.compact
|
229
307
|
end
|
308
|
+
|
309
|
+
##
|
310
|
+
# Creates an array of paths for use in #rotation
|
311
|
+
#
|
312
|
+
def files_for_rotation
|
313
|
+
files = Padrino.load_paths.map { |path| Dir["#{path}/**/*.rb"] }.flatten
|
314
|
+
files = files | Padrino.mounted_apps.map { |app| app.app_file }
|
315
|
+
files = files | Padrino.mounted_apps.map { |app| app.app_obj.dependencies }.flatten
|
316
|
+
end
|
230
317
|
end # self
|
231
318
|
|
232
319
|
##
|
File without changes
|
@@ -4,8 +4,8 @@ module Padrino
|
|
4
4
|
# thin, mongrel, or webrick in that order.
|
5
5
|
#
|
6
6
|
# @example
|
7
|
-
# Padrino.run! # with these defaults => host: "
|
8
|
-
# Padrino.run!("
|
7
|
+
# Padrino.run! # with these defaults => host: "127.0.0.1", port: "3000", adapter: the first found
|
8
|
+
# Padrino.run!("0.0.0.0", "4000", "mongrel") # use => host: "0.0.0.0", port: "4000", adapter: "mongrel"
|
9
9
|
#
|
10
10
|
def self.run!(options={})
|
11
11
|
Padrino.load!
|
@@ -17,17 +17,17 @@ module Padrino
|
|
17
17
|
#
|
18
18
|
class Server < Rack::Server
|
19
19
|
# Server Handlers
|
20
|
-
Handlers = [:thin, :mongrel, :trinidad, :webrick]
|
20
|
+
Handlers = [:thin, :puma, :mongrel, :trinidad, :webrick]
|
21
21
|
|
22
22
|
# Starts the application on the available server with specified options.
|
23
23
|
def self.start(app, opts={})
|
24
24
|
options = {}.merge(opts) # We use a standard hash instead of Thor::CoreExt::HashWithIndifferentAccess
|
25
25
|
options.symbolize_keys!
|
26
|
-
options[:Host] = options.delete(:host) || '
|
26
|
+
options[:Host] = options.delete(:host) || '127.0.0.1'
|
27
27
|
options[:Port] = options.delete(:port) || 3000
|
28
28
|
options[:AccessLog] = []
|
29
29
|
if options[:daemonize]
|
30
|
-
options[:pid] = options[:pid].blank? ?
|
30
|
+
options[:pid] = File.expand_path(options[:pid].blank? ? 'tmp/pids/server.pid' : opts[:pid])
|
31
31
|
FileUtils.mkdir_p(File.dirname(options[:pid]))
|
32
32
|
end
|
33
33
|
options[:server] = detect_rack_handler if options[:server].blank?
|
@@ -9,6 +9,7 @@ require 'active_support/core_ext/object/blank' # present?
|
|
9
9
|
require 'active_support/core_ext/array/extract_options' # extract_options
|
10
10
|
require 'active_support/inflector/methods' # constantize
|
11
11
|
require 'active_support/inflector/inflections' # pluralize
|
12
|
+
require 'active_support/core_ext/string/output_safety' # SafeBuffer and html_safe
|
12
13
|
require 'active_support/inflections' # load default inflections
|
13
14
|
require 'yaml' unless defined?(YAML) # load yaml for i18n
|
14
15
|
require 'win32console' if RUBY_PLATFORM =~ /(win|m)32/ # ruby color support for win
|
@@ -110,13 +111,49 @@ end
|
|
110
111
|
|
111
112
|
module ObjectSpace
|
112
113
|
class << self
|
114
|
+
##
|
113
115
|
# Returns all the classes in the object space.
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
116
|
+
# Optionally, a block can be passed, for example the following code
|
117
|
+
# would return the classes that start with the character "A":
|
118
|
+
#
|
119
|
+
# ObjectSpace.classes do |klass|
|
120
|
+
# if klass.to_s[0] == "A"
|
121
|
+
# klass
|
122
|
+
# end
|
123
|
+
# end
|
124
|
+
#
|
125
|
+
def classes(&block)
|
126
|
+
rs = Set.new
|
127
|
+
|
128
|
+
ObjectSpace.each_object(Class).each do |klass|
|
129
|
+
if block
|
130
|
+
if r = block.call(klass)
|
131
|
+
# add the returned value if the block returns something
|
132
|
+
rs << r
|
133
|
+
end
|
134
|
+
else
|
135
|
+
rs << klass
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
rs
|
140
|
+
end
|
141
|
+
|
142
|
+
##
|
143
|
+
# Returns a list of existing classes that are not included in "snapshot"
|
144
|
+
# This method is useful to get the list of new classes that were loaded
|
145
|
+
# after an event like requiring a file.
|
146
|
+
# Usage:
|
147
|
+
#
|
148
|
+
# snapshot = ObjectSpace.classes
|
149
|
+
# # require a file
|
150
|
+
# ObjectSpace.new_classes(snapshot)
|
151
|
+
#
|
152
|
+
def new_classes(snapshot)
|
153
|
+
self.classes do |klass|
|
154
|
+
if !snapshot.include?(klass)
|
155
|
+
klass
|
156
|
+
end
|
120
157
|
end
|
121
158
|
end
|
122
159
|
end
|
@@ -205,3 +242,19 @@ I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"] if defined?(I18n
|
|
205
242
|
# Used to determine if this file has already been required
|
206
243
|
#
|
207
244
|
module SupportLite; end
|
245
|
+
|
246
|
+
module Padrino
|
247
|
+
class Utils
|
248
|
+
###
|
249
|
+
# Silences output verbosity level so load
|
250
|
+
# errors are not visible when safe_load(file)
|
251
|
+
#
|
252
|
+
def self.silence_output
|
253
|
+
@verbosity_level, $-v = $-v, nil
|
254
|
+
end
|
255
|
+
|
256
|
+
def self.unsilence_output
|
257
|
+
$-v = @verbosity_level
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|