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
data/lib/middleman/builder.rb
CHANGED
@@ -3,8 +3,10 @@ require "thor/group"
|
|
3
3
|
require 'rack/test'
|
4
4
|
require 'find'
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
SHARED_SERVER_INST = Middleman.server.inst do
|
7
|
+
set :environment, :build
|
8
|
+
end
|
9
|
+
SHARED_SERVER = SHARED_SERVER_INST.class
|
8
10
|
|
9
11
|
module Middleman
|
10
12
|
module ThorActions
|
@@ -12,73 +14,21 @@ module Middleman
|
|
12
14
|
config = args.last.is_a?(Hash) ? args.pop : {}
|
13
15
|
destination = args.first || source
|
14
16
|
|
15
|
-
|
16
|
-
# context = instance_eval('binding')
|
17
|
+
request_path = destination.sub(/^#{SHARED_SERVER_INST.build_dir}/, "")
|
17
18
|
|
18
|
-
|
19
|
-
|
20
|
-
begin
|
21
|
-
destination, request_path = SHARED_SERVER.reroute_builder(destination, request_path)
|
19
|
+
# begin
|
20
|
+
destination, request_path = SHARED_SERVER_INST.reroute_builder(destination, request_path)
|
22
21
|
|
23
22
|
request_path.gsub!(/\s/, "%20")
|
24
23
|
response = Middleman::Builder.shared_rack.get(request_path)
|
25
|
-
|
26
|
-
dequeue_file_from destination if cleaning?
|
27
24
|
|
28
25
|
create_file destination, nil, config do
|
29
26
|
response.body
|
30
27
|
end if response.status == 200
|
31
|
-
rescue
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
def clean!(destination)
|
37
|
-
return unless cleaning?
|
38
|
-
queue_current_paths_from destination
|
39
|
-
add_clean_up_callback
|
40
|
-
end
|
41
|
-
|
42
|
-
def cleaning?
|
43
|
-
options.has_key?("clean") && options["clean"]
|
44
|
-
end
|
45
|
-
|
46
|
-
def add_clean_up_callback
|
47
|
-
clean_up_callback = lambda do
|
48
|
-
files = @cleaning_queue.select { |q| File.file? q }
|
49
|
-
directories = @cleaning_queue.select { |q| File.directory? q }
|
50
|
-
|
51
|
-
files.each { |f| remove_file f, :force => true }
|
52
|
-
|
53
|
-
directories = directories.sort_by {|d| d.length }.reverse!
|
54
|
-
|
55
|
-
directories.each do |d|
|
56
|
-
remove_file d, :force => true if directory_empty? d
|
57
|
-
end
|
58
|
-
end
|
59
|
-
self.class.after_run :clean_up_callback do
|
60
|
-
clean_up_callback.call
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def directory_empty?(directory)
|
65
|
-
Dir["#{directory}/*"].empty?
|
28
|
+
# rescue
|
29
|
+
# say_status :error, destination, :red
|
30
|
+
# end
|
66
31
|
end
|
67
|
-
|
68
|
-
def queue_current_paths_from(destination)
|
69
|
-
@cleaning_queue = []
|
70
|
-
Find.find(destination) do |path|
|
71
|
-
next if path.match(/\/\./)
|
72
|
-
unless path == destination
|
73
|
-
@cleaning_queue << path.sub(destination, destination[/([^\/]+?)$/])
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def dequeue_file_from(destination)
|
79
|
-
@cleaning_queue.delete_if {|q| q == destination }
|
80
|
-
end
|
81
|
-
|
82
32
|
end
|
83
33
|
|
84
34
|
class Builder < Thor::Group
|
@@ -87,7 +37,7 @@ module Middleman
|
|
87
37
|
|
88
38
|
def self.shared_rack
|
89
39
|
@shared_rack ||= begin
|
90
|
-
mock = ::Rack::MockSession.new(SHARED_SERVER)
|
40
|
+
mock = ::Rack::MockSession.new(SHARED_SERVER.to_rack_app)
|
91
41
|
sess = ::Rack::Test::Session.new(mock)
|
92
42
|
response = sess.get("__middleman__")
|
93
43
|
sess
|
@@ -101,155 +51,121 @@ module Middleman
|
|
101
51
|
super
|
102
52
|
|
103
53
|
if options.has_key?("relative") && options["relative"]
|
104
|
-
|
54
|
+
SHARED_SERVER_INST.activate :relative_assets
|
105
55
|
end
|
106
56
|
end
|
107
57
|
|
108
58
|
def source_paths
|
109
59
|
@source_paths ||= [
|
110
|
-
|
60
|
+
SHARED_SERVER_INST.root
|
111
61
|
]
|
112
62
|
end
|
113
63
|
|
114
64
|
def build_all_files
|
115
65
|
self.class.shared_rack
|
116
66
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
action DirectoryAction.new(self, SHARED_SERVER.views, SHARED_SERVER.build_dir, { :force => true })
|
67
|
+
opts = { }
|
68
|
+
opts[:glob] = options["glob"] if options.has_key?("glob")
|
69
|
+
opts[:clean] = options["clean"] if options.has_key?("clean")
|
121
70
|
|
122
|
-
|
123
|
-
tilt_template(url.gsub(/^\//, "#{SHARED_SERVER.build_dir}/"), { :force => true })
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
@@hooks = {}
|
129
|
-
def self.after_run(name, &block)
|
130
|
-
@@hooks[name] = block
|
131
|
-
end
|
132
|
-
|
133
|
-
def run_hooks
|
134
|
-
return if options.has_key?("glob")
|
135
|
-
|
136
|
-
@@hooks.each do |name, proc|
|
137
|
-
instance_eval(&proc)
|
138
|
-
end
|
71
|
+
action GlobAction.new(self, SHARED_SERVER_INST, opts)
|
139
72
|
|
140
|
-
|
141
|
-
instance_eval(&proc)
|
142
|
-
end
|
73
|
+
SHARED_SERVER_INST.run_hook :after_build, self
|
143
74
|
end
|
144
75
|
end
|
145
76
|
|
146
|
-
class
|
77
|
+
class GlobAction < ::Thor::Actions::EmptyDirectory
|
147
78
|
attr_reader :source
|
148
79
|
|
149
|
-
def initialize(base,
|
80
|
+
def initialize(base, app, config={}, &block)
|
81
|
+
@app = app
|
82
|
+
source = @app.views
|
83
|
+
@destination = @app.build_dir
|
84
|
+
|
150
85
|
@source = File.expand_path(base.find_in_source_paths(source.to_s))
|
151
|
-
|
152
|
-
super(base, destination,
|
86
|
+
|
87
|
+
super(base, destination, config)
|
153
88
|
end
|
154
89
|
|
155
90
|
def invoke!
|
156
|
-
|
91
|
+
queue_current_paths if cleaning?
|
157
92
|
execute!
|
93
|
+
clean! if cleaning?
|
158
94
|
end
|
159
95
|
|
160
96
|
def revoke!
|
161
97
|
execute!
|
162
98
|
end
|
163
|
-
|
99
|
+
|
164
100
|
protected
|
165
|
-
def handle_path(file_source)
|
166
|
-
# Skip partials prefixed with an underscore while still handling files prefixed with 2 consecutive underscores
|
167
|
-
return unless file_source.gsub(SHARED_SERVER.root, '').split('/').select { |p| p[/^_[^_]/] }.empty?
|
168
|
-
|
169
|
-
file_extension = File.extname(file_source)
|
170
|
-
file_destination = File.join(given_destination, file_source.gsub(source, '.'))
|
171
|
-
file_destination.gsub!('/./', '/')
|
172
|
-
|
173
|
-
handled_by_tilt = ::Tilt.mappings.has_key?(file_extension.gsub(/^\./, ""))
|
174
|
-
if handled_by_tilt
|
175
|
-
file_destination.gsub!(file_extension, "")
|
176
|
-
end
|
177
|
-
|
178
|
-
destination = base.tilt_template(file_source, file_destination, config, &@block)
|
179
|
-
end
|
180
|
-
end
|
181
101
|
|
182
|
-
|
102
|
+
def clean!
|
103
|
+
files = @cleaning_queue.select { |q| File.file? q }
|
104
|
+
directories = @cleaning_queue.select { |q| File.directory? q }
|
183
105
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
file_name = path.gsub(SHARED_SERVER.views + "/", "")
|
188
|
-
if file_name == "layouts"
|
189
|
-
false
|
190
|
-
elsif file_name.include?("layout.") && file_name.split(".").length == 2
|
191
|
-
false
|
192
|
-
else
|
193
|
-
next if File.directory?(path)
|
106
|
+
files.each do |f|
|
107
|
+
base.remove_file f, :force => true
|
108
|
+
end
|
194
109
|
|
195
|
-
|
110
|
+
directories = directories.sort_by {|d| d.length }.reverse!
|
196
111
|
|
197
|
-
|
198
|
-
|
112
|
+
directories.each do |d|
|
113
|
+
base.remove_file d, :force => true if directory_empty? d
|
199
114
|
end
|
200
115
|
end
|
201
|
-
end
|
202
116
|
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
117
|
+
def cleaning?
|
118
|
+
@config.has_key?(:clean) && @config[:clean]
|
119
|
+
end
|
120
|
+
|
121
|
+
def directory_empty?(directory)
|
122
|
+
Dir["#{directory}/*"].empty?
|
123
|
+
end
|
124
|
+
|
125
|
+
def queue_current_paths
|
126
|
+
@cleaning_queue = []
|
127
|
+
Find.find(@destination) do |path|
|
128
|
+
next if path.match(/\/\./)
|
129
|
+
unless path == destination
|
130
|
+
@cleaning_queue << path.sub(@destination, destination[/([^\/]+?)$/])
|
131
|
+
end
|
132
|
+
end
|
207
133
|
end
|
208
134
|
|
209
|
-
|
210
|
-
|
211
|
-
lookup = File.join(lookup, '*')
|
135
|
+
def execute!
|
136
|
+
sort_order = %w(.png .jpeg .jpg .gif .bmp .ico .woff .otf .ttf .eot .js .css)
|
212
137
|
|
213
|
-
|
214
|
-
|
215
|
-
|
138
|
+
paths = @app.sitemap.all_paths.sort do |a, b|
|
139
|
+
a_ext = File.extname(a)
|
140
|
+
b_ext = File.extname(b)
|
216
141
|
|
217
|
-
|
218
|
-
|
142
|
+
a_idx = sort_order.index(a_ext) || 100
|
143
|
+
b_idx = sort_order.index(b_ext) || 100
|
219
144
|
|
220
|
-
|
221
|
-
-1
|
222
|
-
elsif b_dir == SHARED_SERVER.images_dir
|
223
|
-
1
|
224
|
-
else
|
225
|
-
0
|
226
|
-
end
|
145
|
+
a_idx <=> b_idx
|
227
146
|
end
|
228
147
|
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
148
|
+
paths.each do |path|
|
149
|
+
file_source = path
|
150
|
+
file_destination = File.join(given_destination, file_source.gsub(source, '.'))
|
151
|
+
file_destination.gsub!('/./', '/')
|
152
|
+
|
153
|
+
if @app.sitemap.generic_path?(file_source)
|
154
|
+
# no-op
|
155
|
+
elsif @app.sitemap.proxied_path?(file_source)
|
156
|
+
file_source = @app.sitemap.path_target(file_source)
|
157
|
+
elsif @app.sitemap.ignored_path?(file_source)
|
234
158
|
next
|
235
159
|
end
|
236
160
|
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
def execute!
|
242
|
-
handle_directory(source) do |path|
|
243
|
-
file_name = path.gsub(SHARED_SERVER.views + "/", "")
|
244
|
-
if file_name == "layouts"
|
245
|
-
false
|
246
|
-
elsif file_name.include?("layout.") && file_name.split(".").length == 2
|
247
|
-
false
|
248
|
-
else
|
249
|
-
true
|
161
|
+
@cleaning_queue.delete(file_destination) if cleaning?
|
162
|
+
|
163
|
+
if @config[:glob]
|
164
|
+
next unless File.fnmatch(@config[:glob], file_source)
|
250
165
|
end
|
166
|
+
|
167
|
+
base.tilt_template(file_source, file_destination, { :force => true })
|
251
168
|
end
|
252
169
|
end
|
253
|
-
|
254
170
|
end
|
255
171
|
end
|
data/lib/middleman/cli.rb
CHANGED
@@ -6,20 +6,38 @@ module Middleman
|
|
6
6
|
check_unknown_options!
|
7
7
|
default_task :server
|
8
8
|
|
9
|
-
class_option "help",
|
9
|
+
class_option "help",
|
10
|
+
:type => :boolean,
|
11
|
+
:default => false,
|
12
|
+
:aliases => "-h"
|
10
13
|
def initialize(*)
|
11
14
|
super
|
12
15
|
help_check if options[:help]
|
13
16
|
end
|
14
17
|
|
15
|
-
desc "init NAME", "Create new
|
18
|
+
desc "init NAME [options]", "Create new project NAME"
|
16
19
|
available_templates = Middleman::Templates.registered_names.join(", ")
|
17
|
-
method_option "template",
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
method_option "
|
22
|
-
|
20
|
+
method_option "template",
|
21
|
+
:aliases => "-T",
|
22
|
+
:default => "default",
|
23
|
+
:desc => "Use a project template: #{available_templates}"
|
24
|
+
method_option "css_dir",
|
25
|
+
:default => "stylesheets",
|
26
|
+
:desc => 'The path to the css files'
|
27
|
+
method_option "js_dir",
|
28
|
+
:default => "javascripts",
|
29
|
+
:desc => 'The path to the javascript files'
|
30
|
+
method_option "images_dir",
|
31
|
+
:default => "images",
|
32
|
+
:desc => 'The path to the image files'
|
33
|
+
method_option "rack",
|
34
|
+
:type => :boolean,
|
35
|
+
:default => false,
|
36
|
+
:desc => 'Include a config.ru file'
|
37
|
+
method_option "bundler",
|
38
|
+
:type => :boolean,
|
39
|
+
:default => false,
|
40
|
+
:desc => 'Create a Gemfile and use Bundler to manage gems'
|
23
41
|
def init(name)
|
24
42
|
key = options[:template].to_sym
|
25
43
|
unless Middleman::Templates.registered_templates.has_key?(key)
|
@@ -30,42 +48,54 @@ module Middleman
|
|
30
48
|
thor_group.new([name], options).invoke_all
|
31
49
|
end
|
32
50
|
|
33
|
-
desc "server [
|
34
|
-
method_option "environment",
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
method_option "
|
39
|
-
|
51
|
+
desc "server [options]", "Start the preview server"
|
52
|
+
method_option "environment",
|
53
|
+
:aliases => "-e",
|
54
|
+
:default => ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development',
|
55
|
+
:desc => "The environment Middleman will run under"
|
56
|
+
method_option "port",
|
57
|
+
:aliases => "-p",
|
58
|
+
:default => "4567",
|
59
|
+
:desc => "The port Middleman will listen on"
|
60
|
+
method_option "debug",
|
61
|
+
:type => :boolean,
|
62
|
+
:default => false,
|
63
|
+
:desc => 'Print debug messages'
|
40
64
|
def server
|
41
65
|
v1_check
|
42
66
|
|
43
|
-
if options["livereload"]
|
44
|
-
livereload_options = {:port => options["livereload-port"]}
|
45
|
-
end
|
46
|
-
|
47
67
|
params = {
|
48
|
-
:port => options[
|
49
|
-
:environment => options[
|
68
|
+
:port => options["port"],
|
69
|
+
:environment => options["environment"],
|
70
|
+
:debug => options["debug"]
|
50
71
|
}
|
51
72
|
|
52
|
-
|
53
|
-
|
54
|
-
else
|
55
|
-
Middleman::Guard.start(params, livereload_options)
|
56
|
-
end
|
73
|
+
puts "== The Middleman is loading"
|
74
|
+
Middleman::Guard.start(params)
|
57
75
|
end
|
58
76
|
|
59
77
|
desc "build", "Builds the static site for deployment"
|
60
|
-
method_option :relative,
|
61
|
-
|
62
|
-
|
78
|
+
method_option :relative,
|
79
|
+
:type => :boolean,
|
80
|
+
:aliases => "-r",
|
81
|
+
:default => false,
|
82
|
+
:desc => 'Force relative urls'
|
83
|
+
method_option :clean,
|
84
|
+
:type => :boolean,
|
85
|
+
:aliases => "-c",
|
86
|
+
:default => false,
|
87
|
+
:desc => 'Removes orpahand files or directories from build'
|
88
|
+
method_option :glob,
|
89
|
+
:type => :string,
|
90
|
+
:aliases => "-g",
|
91
|
+
:default => nil,
|
92
|
+
:desc => 'Build a subset of the project'
|
63
93
|
def build
|
64
94
|
v1_check
|
65
95
|
thor_group = Middleman::Builder.new([], options).invoke_all
|
66
96
|
end
|
67
97
|
|
68
|
-
desc "migrate", "Migrates an older
|
98
|
+
desc "migrate", "Migrates an older project to the 2.0 structure"
|
69
99
|
def migrate
|
70
100
|
return if File.exists?("source")
|
71
101
|
`mv public source`
|
@@ -73,7 +103,7 @@ module Middleman
|
|
73
103
|
`rm -rf views`
|
74
104
|
end
|
75
105
|
|
76
|
-
desc "version", "Show
|
106
|
+
desc "version", "Show version"
|
77
107
|
def version
|
78
108
|
require 'middleman/version'
|
79
109
|
say "Middleman #{Middleman::VERSION}"
|
@@ -92,6 +122,5 @@ module Middleman
|
|
92
122
|
help self.class.send(:retrieve_task_name, ARGV.dup)
|
93
123
|
exit 0
|
94
124
|
end
|
95
|
-
|
96
125
|
end
|
97
126
|
end
|