middleman 2.0.16.1 → 3.0.0.alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/CHANGELOG +16 -8
- data/features/builder.feature +2 -5
- data/features/cache_buster.feature +1 -1
- data/features/clean_build.feature +0 -1
- data/features/coffee-script.feature +3 -3
- data/features/custom_layout_engines.feature +10 -0
- data/features/directory_index.feature +0 -1
- data/features/dynamic_pages.feature +0 -1
- data/features/fonts.feature +0 -1
- data/features/{padrino_helpers.feature → former_padrino_helpers.feature} +1 -1
- data/features/sprockets.feature +34 -5
- data/features/sprockets_gems.feature +7 -4
- data/features/step_definitions/asset_host_steps.rb +7 -6
- data/features/step_definitions/builder_steps.rb +4 -0
- data/features/step_definitions/middleman_steps.rb +22 -16
- data/features/step_definitions/page_layout_steps.rb +10 -8
- data/fixtures/custom-layout-app/config.rb +1 -0
- data/fixtures/custom-layout-app/source/index.html.erb +1 -0
- data/fixtures/custom-layout-app/source/layout.haml +6 -0
- data/fixtures/sprockets-app/config.rb +2 -1
- data/fixtures/sprockets-app/source/library/css/bootstrap_include.css.scss +1 -0
- data/fixtures/sprockets-app/source/library/css/plain.css +3 -0
- data/fixtures/sprockets-app/source/library/css/sprockets_base1.css.scss +1 -0
- data/fixtures/sprockets-app/source/library/css/sprockets_base2.css.scss +1 -0
- data/fixtures/sprockets-app/source/library/css/sprockets_sub.css.scss +1 -0
- data/fixtures/sprockets-app/source/{jquery_include.js → library/js/jquery_include.js} +0 -0
- data/fixtures/sprockets-app/source/library/js/plain.js +3 -0
- data/fixtures/sprockets-app/source/library/{javascripts → js}/sprockets_base.js +0 -0
- data/fixtures/sprockets-app/source/library/{javascripts → js}/sprockets_sub.js +0 -0
- data/fixtures/test-app/config.rb +5 -4
- data/fixtures/test-app/source/{padrino_test.html.haml → former_padrino_test.html.haml} +0 -0
- data/fixtures/test-app/source/stylesheets/sprockets_base1.css.scss +1 -0
- data/fixtures/test-app/source/stylesheets/sprockets_base2.css.scss +1 -0
- data/fixtures/test-app/source/stylesheets/sprockets_sub.css.scss +1 -0
- data/lib/middleman.rb +27 -25
- data/lib/middleman/base.rb +408 -166
- data/lib/middleman/builder.rb +78 -162
- data/lib/middleman/cli.rb +61 -32
- data/lib/middleman/core_extensions/assets.rb +4 -44
- data/lib/middleman/core_extensions/builder.rb +12 -16
- data/lib/middleman/core_extensions/compass.rb +28 -57
- data/lib/middleman/core_extensions/data.rb +65 -49
- data/lib/middleman/core_extensions/default_helpers.rb +33 -18
- data/lib/middleman/core_extensions/features.rb +48 -26
- data/lib/middleman/core_extensions/file_watcher.rb +66 -0
- data/lib/middleman/core_extensions/front_matter.rb +91 -86
- data/lib/middleman/core_extensions/rendering.rb +9 -8
- data/lib/middleman/core_extensions/routing.rb +19 -53
- data/lib/middleman/core_extensions/sitemap.rb +229 -0
- data/lib/middleman/core_extensions/sprockets.rb +53 -37
- data/lib/middleman/features/asset_host.rb +20 -10
- data/lib/middleman/features/automatic_image_sizes.rb +12 -9
- data/lib/middleman/features/cache_buster.rb +38 -25
- data/lib/middleman/features/directory_indexes.rb +31 -28
- data/lib/middleman/features/minify_css.rb +3 -2
- data/lib/middleman/features/minify_css/cssmin.rb +55 -0
- data/lib/middleman/features/minify_javascript.rb +12 -5
- data/lib/middleman/features/relative_assets.rb +28 -25
- data/lib/middleman/features/sitemap_tree.rb +34 -0
- data/lib/middleman/guard.rb +57 -23
- data/lib/middleman/renderers/erb.rb +29 -0
- data/lib/middleman/renderers/liquid.rb +3 -12
- data/lib/middleman/renderers/markdown.rb +16 -15
- data/lib/middleman/renderers/sass.rb +34 -38
- data/lib/middleman/vendor/hooks-0.2.0/CHANGES.textile +9 -0
- data/lib/middleman/vendor/hooks-0.2.0/Gemfile +3 -0
- data/lib/middleman/vendor/hooks-0.2.0/README.rdoc +107 -0
- data/lib/middleman/vendor/hooks-0.2.0/Rakefile +12 -0
- data/lib/middleman/vendor/hooks-0.2.0/hooks.gemspec +22 -0
- data/lib/middleman/vendor/hooks-0.2.0/lib/hooks.rb +109 -0
- data/lib/middleman/vendor/hooks-0.2.0/lib/hooks/inheritable_attribute.rb +33 -0
- data/lib/middleman/vendor/hooks-0.2.0/test/hooks_test.rb +141 -0
- data/lib/middleman/vendor/hooks-0.2.0/test/inheritable_attribute_test.rb +55 -0
- data/lib/middleman/vendor/hooks-0.2.0/test/test_helper.rb +10 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/.document +5 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/.gitignore +22 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/.yardopts +1 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/LICENSE.txt +20 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/README.rdoc +294 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/Rakefile +5 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/bin/padrino +9 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core.rb +167 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application.rb +270 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application/rendering.rb +292 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application/routing.rb +934 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/application/showexceptions.rb +20 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/caller.rb +53 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/adapter.rb +24 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/base.rb +151 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/console.rb +20 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake.rb +24 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake_tasks.rb +59 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/command.rb +38 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/images/404.png +0 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/images/500.png +0 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/loader.rb +210 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/cs.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/da.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/de.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/en.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/es.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/fr.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/hu.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/it.yml +40 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ja.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/lv.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/nl.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/no.yml +35 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pl.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pt_br.yml +40 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ru.yml +35 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/tr.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/uk.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_cn.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_tw.yml +34 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/logger.rb +345 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/mounter.rb +224 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/reloader.rb +254 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/router.rb +98 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/server.rb +79 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/support_lite.rb +199 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/tasks.rb +21 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/lib/padrino-core/version.rb +20 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/padrino-core.gemspec +38 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/.components +6 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/.gitignore +7 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/complex.rb +32 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/apps/simple.rb +33 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/a.rb +9 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/b.rb +4 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/c.rb +1 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/e.rb +13 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/f.rb +2 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/g.rb +2 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/fixtures/dependencies/d.rb +4 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/helper.rb +81 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/mini_shoulda.rb +45 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_application.rb +108 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_core.rb +79 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_dependencies.rb +44 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_filters.rb +278 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_locale.rb +21 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_logger.rb +100 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_mounter.rb +177 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_reloader_complex.rb +75 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_reloader_simple.rb +98 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_rendering.rb +461 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_restful_routing.rb +33 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_router.rb +146 -0
- data/lib/middleman/vendor/padrino-core-0.10.5/test/test_routing.rb +1673 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/.document +5 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/.gitignore +21 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/.yardopts +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/LICENSE.txt +20 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/README.rdoc +239 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/Rakefile +5 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers.rb +58 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/asset_tag_helpers.rb +420 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/abstract_form_builder.rb +220 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/standard_form_builder.rb +43 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_helpers.rb +602 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/format_helpers.rb +381 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/cs.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/da.yml +91 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/de.yml +81 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/en.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/es.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/fr.yml +80 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/hu.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/it.yml +89 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ja.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/lv.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/nl.yml +82 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/no.yml +91 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pl.yml +95 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pt_br.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ru.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/tr.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/uk.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_cn.yml +104 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_tw.yml +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/number_helpers.rb +288 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers.rb +175 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/abstract_handler.rb +98 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/erb_handler.rb +79 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/haml_handler.rb +63 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/slim_handler.rb +81 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/render_helpers.rb +60 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/tag_helpers.rb +103 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/translation_helpers.rb +38 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/padrino-helpers.gemspec +27 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/app.rb +73 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.erb +14 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.haml +12 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.slim +13 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.erb +14 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.haml +12 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.slim +12 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.erb +11 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.haml +9 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.slim +9 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.erb +5 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.haml +5 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.slim +5 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.erb +20 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.haml +15 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.slim +15 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.erb +56 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.haml +47 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.slim +47 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.erb +56 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.haml +45 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.slim +45 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.erb +5 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.haml +4 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.slim +4 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.erb +3 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.haml +3 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.slim +3 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.erb +3 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.haml +3 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.slim +3 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_erb.erb +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_haml.haml +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_slim.slim +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.erb +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.haml +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.slim +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/app.rb +50 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engine.haml +5 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_erb.erb +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_haml.haml +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_slim.slim +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/erb/test.erb +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/explicit_engine.haml +5 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/haml/test.haml +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/_user.haml +7 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/haml_template.haml +1 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/some_template.haml +2 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/helper.rb +66 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_asset_tag_helpers.rb +320 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_form_builder.rb +996 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_form_helpers.rb +645 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_format_helpers.rb +227 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_locale.rb +20 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_number_helpers.rb +136 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_output_helpers.rb +153 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_render_helpers.rb +76 -0
- data/lib/middleman/vendor/padrino-helpers-0.10.5/test/test_tag_helpers.rb +105 -0
- data/lib/middleman/version.rb +1 -1
- data/middleman-x86-mingw32.gemspec +16 -33
- data/middleman.gemspec +16 -31
- metadata +590 -349
- data/features/sinatra.feature +0 -6
- data/lib/middleman/core_extensions/rack_map.rb +0 -35
- data/lib/middleman/renderers/coffee_script.rb +0 -8
- data/lib/middleman/renderers/haml.rb +0 -31
- data/lib/middleman/renderers/slim.rb +0 -8
@@ -0,0 +1,98 @@
|
|
1
|
+
module Padrino
|
2
|
+
##
|
3
|
+
# This class is an extended version of Rack::URLMap
|
4
|
+
#
|
5
|
+
# Padrino::Router like Rack::URLMap dispatches in such a way that the
|
6
|
+
# longest paths are tried first, since they are most specific.
|
7
|
+
#
|
8
|
+
# Features:
|
9
|
+
#
|
10
|
+
# * Map a path to the specified App
|
11
|
+
# * Ignore server names (this solve issues with vhost and domain aliases)
|
12
|
+
# * Use hosts instead of server name for mappings (this help us with our vhost and doman aliases)
|
13
|
+
#
|
14
|
+
# @example
|
15
|
+
#
|
16
|
+
# routes = Padrino::Router.new do
|
17
|
+
# map(:path => "/", :to => PadrinoWeb, :host => "padrino.local")
|
18
|
+
# map(:path => "/", :to => Admin, :host => "admin.padrino.local")
|
19
|
+
# end
|
20
|
+
# run routes
|
21
|
+
#
|
22
|
+
# routes = Padrino::Router.new do
|
23
|
+
# map(:path => "/", :to => PadrinoWeb, :host => /*.padrino.local/)
|
24
|
+
# end
|
25
|
+
# run routes
|
26
|
+
#
|
27
|
+
# @api semipublic
|
28
|
+
class Router
|
29
|
+
|
30
|
+
# Constructs a new route mapper instance
|
31
|
+
def initialize(*mapping, &block)
|
32
|
+
@mapping = []
|
33
|
+
mapping.each { |m| map(m) }
|
34
|
+
instance_eval(&block) if block
|
35
|
+
end
|
36
|
+
|
37
|
+
##
|
38
|
+
# Map a route path and host to a specified application.
|
39
|
+
#
|
40
|
+
# @param [Hash] options
|
41
|
+
# The options to map.
|
42
|
+
# @option options [Sinatra::Application] :to
|
43
|
+
# The class of the application to mount.
|
44
|
+
# @option options [String] :path ("/")
|
45
|
+
# The path to map the specified application.
|
46
|
+
# @option options [String] :host
|
47
|
+
# The host to map the specified application.
|
48
|
+
#
|
49
|
+
# @example
|
50
|
+
# map(:path => "/", :to => PadrinoWeb, :host => "padrino.local")
|
51
|
+
#
|
52
|
+
# @return [Array] The sorted route mappings.
|
53
|
+
# @api semipublic
|
54
|
+
def map(options={})
|
55
|
+
path = options[:path] || "/"
|
56
|
+
host = options[:host]
|
57
|
+
app = options[:to]
|
58
|
+
|
59
|
+
raise ArgumentError, "paths need to start with /" if path[0] != ?/
|
60
|
+
raise ArgumentError, "app is required" if app.nil?
|
61
|
+
|
62
|
+
path = path.chomp('/')
|
63
|
+
match = Regexp.new("^#{Regexp.quote(path).gsub('/', '/+')}(.*)", nil, 'n')
|
64
|
+
host = Regexp.new("^#{Regexp.quote(host)}$", true, 'n') unless host.nil? || host.is_a?(Regexp)
|
65
|
+
|
66
|
+
@mapping << [host, path, match, app]
|
67
|
+
sort!
|
68
|
+
end
|
69
|
+
|
70
|
+
# The call handler setup to route a request given the mappings specified.
|
71
|
+
# @api private
|
72
|
+
def call(env)
|
73
|
+
rPath = env["PATH_INFO"].to_s
|
74
|
+
script_name = env['SCRIPT_NAME']
|
75
|
+
hHost, sName, sPort = env.values_at('HTTP_HOST','SERVER_NAME','SERVER_PORT')
|
76
|
+
@mapping.each do |host, path, match, app|
|
77
|
+
next unless host.nil? || hHost =~ host
|
78
|
+
next unless rPath =~ match && rest = $1
|
79
|
+
next unless rest.empty? || rest[0] == ?/
|
80
|
+
|
81
|
+
rest = "/" if rest.empty?
|
82
|
+
|
83
|
+
return app.call(
|
84
|
+
env.merge(
|
85
|
+
'SCRIPT_NAME' => (script_name + path),
|
86
|
+
'PATH_INFO' => rest))
|
87
|
+
end
|
88
|
+
[404, {"Content-Type" => "text/plain", "X-Cascade" => "pass"}, ["Not Found: #{rPath}"]]
|
89
|
+
end
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
# Sorts the mapped routes in consistent order
|
94
|
+
def sort!
|
95
|
+
@mapping = @mapping.sort_by { |h, p, m, a| -p.size }
|
96
|
+
end
|
97
|
+
end # Router
|
98
|
+
end # Padrino
|
@@ -0,0 +1,79 @@
|
|
1
|
+
module Padrino
|
2
|
+
##
|
3
|
+
# Runs the Padrino apps as a self-hosted server using:
|
4
|
+
# thin, mongrel, or webrick in that order.
|
5
|
+
#
|
6
|
+
# @example
|
7
|
+
# Padrino.run! # with these defaults => host: "localhost", port: "3000", adapter: the first found
|
8
|
+
# Padrino.run!("localhost", "4000", "mongrel") # use => host: "0.0.0.0", port: "3000", adapter: "mongrel"
|
9
|
+
#
|
10
|
+
def self.run!(options={})
|
11
|
+
Padrino.load!
|
12
|
+
Server.start(Padrino.application, options)
|
13
|
+
end
|
14
|
+
|
15
|
+
##
|
16
|
+
# This module builds a Padrino server to run the project based on available handlers.
|
17
|
+
#
|
18
|
+
class Server < Rack::Server
|
19
|
+
# Server Handlers
|
20
|
+
Handlers = [:thin, :mongrel, :webrick]
|
21
|
+
|
22
|
+
# Starts the application on the available server with specified options.
|
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
|
+
# Starts the application on the available server with specified options.
|
42
|
+
def start
|
43
|
+
puts "=> Padrino/#{Padrino.version} has taken the stage #{Padrino.env} at http://#{options[:Host]}:#{options[:Port]}"
|
44
|
+
[:INT, :TERM].each { |sig| trap(sig) { exit } }
|
45
|
+
super
|
46
|
+
ensure
|
47
|
+
puts "<= Padrino has ended his set (crowd applauds)" unless options[:daemonize]
|
48
|
+
end
|
49
|
+
|
50
|
+
# The application the server will run.
|
51
|
+
def app
|
52
|
+
@app
|
53
|
+
end
|
54
|
+
alias :wrapped_app :app
|
55
|
+
|
56
|
+
# The options specified to the server.
|
57
|
+
def options
|
58
|
+
@options
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
# Detects the supported handler to use.
|
64
|
+
#
|
65
|
+
# @example
|
66
|
+
# detect_rack_handler => <ThinHandler>
|
67
|
+
#
|
68
|
+
def self.detect_rack_handler
|
69
|
+
Handlers.each do |handler|
|
70
|
+
begin
|
71
|
+
return handler if Rack::Handler.get(handler.to_s.downcase)
|
72
|
+
rescue LoadError
|
73
|
+
rescue NameError
|
74
|
+
end
|
75
|
+
end
|
76
|
+
fail "Server handler (#{Handlers.join(', ')}) not found."
|
77
|
+
end
|
78
|
+
end # Server
|
79
|
+
end # Padrino
|
@@ -0,0 +1,199 @@
|
|
1
|
+
##
|
2
|
+
# This file loads certain extensions required by Padrino from ActiveSupport.
|
3
|
+
#
|
4
|
+
require 'active_support/core_ext/module/aliasing' # alias_method_chain
|
5
|
+
require 'active_support/core_ext/hash/keys' # symbolize_keys
|
6
|
+
require 'active_support/core_ext/hash/reverse_merge' # reverse_merge
|
7
|
+
require 'active_support/core_ext/hash/slice' # slice
|
8
|
+
require 'active_support/core_ext/object/blank' # present?
|
9
|
+
require 'active_support/core_ext/array/extract_options' # extract_options
|
10
|
+
require 'active_support/inflector/methods' # constantize
|
11
|
+
require 'active_support/inflector/inflections' # pluralize
|
12
|
+
require 'active_support/inflections' # load default inflections
|
13
|
+
require 'yaml' unless defined?(YAML) # load yaml for i18n
|
14
|
+
require 'Win32/Console/ANSI' if RUBY_PLATFORM =~ /win32/ # ruby color suppor for win
|
15
|
+
|
16
|
+
##
|
17
|
+
# This is an adapted version of active_support/core_ext/string/inflections.rb
|
18
|
+
# to prevent loading several dependencies including I18n gem.
|
19
|
+
#
|
20
|
+
# Issue: https://github.com/rails/rails/issues/1526
|
21
|
+
#
|
22
|
+
class String
|
23
|
+
##
|
24
|
+
# Returns the plural form of the word in the string.
|
25
|
+
#
|
26
|
+
# "post".pluralize # => "posts"
|
27
|
+
# "octopus".pluralize # => "octopi"
|
28
|
+
# "sheep".pluralize # => "sheep"
|
29
|
+
# "words".pluralize # => "words"
|
30
|
+
# "the blue mailman".pluralize # => "the blue mailmen"
|
31
|
+
# "CamelOctopus".pluralize # => "CamelOctopi"
|
32
|
+
#
|
33
|
+
def pluralize
|
34
|
+
ActiveSupport::Inflector.pluralize(self)
|
35
|
+
end
|
36
|
+
|
37
|
+
##
|
38
|
+
# Returns the singular form of the word in the string.
|
39
|
+
#
|
40
|
+
# "posts".singularize # => "post"
|
41
|
+
# "octopi".singularize # => "octopus"
|
42
|
+
# "sheep".singularize # => "sheep"
|
43
|
+
# "words".singularize # => "word"
|
44
|
+
# "the blue mailmen".singularize # => "the blue mailman"
|
45
|
+
# "CamelOctopi".singularize # => "CamelOctopus"
|
46
|
+
#
|
47
|
+
def singularize
|
48
|
+
ActiveSupport::Inflector.singularize(self)
|
49
|
+
end
|
50
|
+
|
51
|
+
##
|
52
|
+
# +constantize+ tries to find a declared constant with the name specified
|
53
|
+
# in the string. It raises a NameError when the name is not in CamelCase
|
54
|
+
# or is not initialized.
|
55
|
+
#
|
56
|
+
# "Module".constantize # => Module
|
57
|
+
# "Class".constantize # => Class
|
58
|
+
#
|
59
|
+
def constantize
|
60
|
+
ActiveSupport::Inflector.constantize(self)
|
61
|
+
end
|
62
|
+
|
63
|
+
##
|
64
|
+
# The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string.
|
65
|
+
#
|
66
|
+
# +underscore+ will also change '::' to '/' to convert namespaces to paths.
|
67
|
+
#
|
68
|
+
# "ActiveRecord".underscore # => "active_record"
|
69
|
+
# "ActiveRecord::Errors".underscore # => active_record/errors
|
70
|
+
#
|
71
|
+
def underscore
|
72
|
+
ActiveSupport::Inflector.underscore(self)
|
73
|
+
end
|
74
|
+
|
75
|
+
##
|
76
|
+
# By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize
|
77
|
+
# is set to <tt>:lower</tt> then camelize produces lowerCamelCase.
|
78
|
+
#
|
79
|
+
# +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces.
|
80
|
+
#
|
81
|
+
# "active_record".camelize # => "ActiveRecord"
|
82
|
+
# "active_record".camelize(:lower) # => "activeRecord"
|
83
|
+
# "active_record/errors".camelize # => "ActiveRecord::Errors"
|
84
|
+
# "active_record/errors".camelize(:lower) # => "activeRecord::Errors"
|
85
|
+
#
|
86
|
+
def camelize(first_letter = :upper)
|
87
|
+
case first_letter
|
88
|
+
when :upper then ActiveSupport::Inflector.camelize(self, true)
|
89
|
+
when :lower then ActiveSupport::Inflector.camelize(self, false)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
alias_method :camelcase, :camelize
|
93
|
+
|
94
|
+
##
|
95
|
+
# Create a class name from a plural table name like Rails does for table names to models.
|
96
|
+
# Note that this returns a string and not a class. (To convert to an actual class
|
97
|
+
# follow +classify+ with +constantize+.)
|
98
|
+
#
|
99
|
+
# "egg_and_hams".classify # => "EggAndHam"
|
100
|
+
# "posts".classify # => "Post"
|
101
|
+
#
|
102
|
+
# Singular names are not handled correctly.
|
103
|
+
#
|
104
|
+
# "business".classify # => "Busines"
|
105
|
+
#
|
106
|
+
def classify
|
107
|
+
ActiveSupport::Inflector.classify(self)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
module ObjectSpace
|
112
|
+
class << self
|
113
|
+
# Returns all the classes in the object space.
|
114
|
+
def classes
|
115
|
+
ObjectSpace.each_object(Module).select do |klass|
|
116
|
+
# Why this? Ruby when you remove a constant don't clean it from
|
117
|
+
# rb_tables, this mean that here we can found classes that was
|
118
|
+
# removed.
|
119
|
+
klass.name rescue false
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
##
|
126
|
+
# FileSet helper method for iterating and interacting with files inside a directory
|
127
|
+
#
|
128
|
+
module FileSet
|
129
|
+
extend self
|
130
|
+
##
|
131
|
+
# Iterates over every file in the glob pattern and yields to a block
|
132
|
+
# Returns the list of files matching the glob pattern
|
133
|
+
# FileSet.glob('padrino-core/application/*.rb', __FILE__) { |file| load file }
|
134
|
+
#
|
135
|
+
def glob(glob_pattern, file_path=nil, &block)
|
136
|
+
glob_pattern = File.join(File.dirname(file_path), glob_pattern) if file_path
|
137
|
+
file_list = Dir.glob(glob_pattern).sort
|
138
|
+
file_list.each { |file| block.call(file) }
|
139
|
+
file_list
|
140
|
+
end
|
141
|
+
|
142
|
+
##
|
143
|
+
# Requires each file matched in the glob pattern into the application
|
144
|
+
# FileSet.glob_require('padrino-core/application/*.rb', __FILE__)
|
145
|
+
#
|
146
|
+
def glob_require(glob_pattern, file_path=nil)
|
147
|
+
glob(glob_pattern, file_path) { |f| require f }
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
##
|
152
|
+
# Removes indentation
|
153
|
+
# Add colors
|
154
|
+
#
|
155
|
+
# @example
|
156
|
+
# help <<-EOS.undent
|
157
|
+
# Here my help usage
|
158
|
+
# sample_code
|
159
|
+
#
|
160
|
+
# Fix
|
161
|
+
# EOS
|
162
|
+
# puts help.red.bold
|
163
|
+
#
|
164
|
+
class String
|
165
|
+
def self.colors
|
166
|
+
@_colors ||= {
|
167
|
+
:clear => 0,
|
168
|
+
:bold => 1,
|
169
|
+
:black => 30,
|
170
|
+
:red => 31,
|
171
|
+
:green => 32,
|
172
|
+
:yellow => 33,
|
173
|
+
:blue => 34,
|
174
|
+
:magenta => 35,
|
175
|
+
:cyan => 36,
|
176
|
+
:white => 37
|
177
|
+
}
|
178
|
+
end
|
179
|
+
|
180
|
+
colors.each do |color, value|
|
181
|
+
define_method(color) do
|
182
|
+
["\e[", value.to_s, "m", self, "\e[", self.class.colors[:clear], "m"] * ''
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
def undent
|
187
|
+
gsub(/^.{#{slice(/^ +/).size}}/, '')
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
##
|
192
|
+
# Loads our locale configuration files
|
193
|
+
#
|
194
|
+
I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"] if defined?(I18n)
|
195
|
+
|
196
|
+
##
|
197
|
+
# Used to determine if this file has already been required
|
198
|
+
#
|
199
|
+
module SupportLite; end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Padrino
|
2
|
+
##
|
3
|
+
# This module it's used for bootstrap with padrino rake
|
4
|
+
# thirdy party tasks, in your gem/plugin/extension you
|
5
|
+
# need only do this:
|
6
|
+
#
|
7
|
+
# @example
|
8
|
+
# Padrino::Tasks.files << yourtask.rb
|
9
|
+
# Padrino::Tasks.files.concat(Dir["/path/to/all/my/tasks/*.rb"])
|
10
|
+
# Padrino::Tasks.files.unshift("yourtask.rb")
|
11
|
+
#
|
12
|
+
module Tasks
|
13
|
+
|
14
|
+
##
|
15
|
+
# Returns a list of files to handle with padrino rake
|
16
|
+
#
|
17
|
+
def self.files
|
18
|
+
@files ||= []
|
19
|
+
end
|
20
|
+
end # Tasks
|
21
|
+
end # Padrino
|
@@ -0,0 +1,20 @@
|
|
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
|
+
# The version constant for the current version of Padrino.
|
9
|
+
VERSION = '0.10.5' unless defined?(Padrino::VERSION)
|
10
|
+
|
11
|
+
#
|
12
|
+
# The current Padrino version.
|
13
|
+
#
|
14
|
+
# @return [String]
|
15
|
+
# The version number.
|
16
|
+
#
|
17
|
+
def self.version
|
18
|
+
VERSION
|
19
|
+
end
|
20
|
+
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.3.1")
|
35
|
+
s.add_dependency("http_router", "~> 0.10.2")
|
36
|
+
s.add_dependency("thor", "~> 0.14.3")
|
37
|
+
s.add_dependency("activesupport", "~> 3.1.0")
|
38
|
+
end
|