middleman 2.0.16.1 → 3.0.0.alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,40 @@
|
|
|
1
|
+
pt_br:
|
|
2
|
+
date:
|
|
3
|
+
formats:
|
|
4
|
+
# Use the strftime parameters for formats.
|
|
5
|
+
# When no format has been given, it uses default.
|
|
6
|
+
# You can provide other formats here if you like!
|
|
7
|
+
default: "%d-%m-%Y"
|
|
8
|
+
short: "%d %b"
|
|
9
|
+
long: "%d %B %Y"
|
|
10
|
+
only_day: "%e"
|
|
11
|
+
|
|
12
|
+
day_names: [Domingo, Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado]
|
|
13
|
+
abbr_day_names: [Dom, Seg, Ter, Qua, Qui, Sex, Sab]
|
|
14
|
+
month_names: [~, Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro]
|
|
15
|
+
abbr_month_names: [~, Jan, Fev, Mar, Abr, Maio, Jun, Jul, Ago, Set, Out, Nov, Dez]
|
|
16
|
+
order:
|
|
17
|
+
- day
|
|
18
|
+
- month
|
|
19
|
+
- year
|
|
20
|
+
|
|
21
|
+
time:
|
|
22
|
+
formats:
|
|
23
|
+
default: "%a %d %b %Y, %H:%M:%S %z"
|
|
24
|
+
time: "%H:%M"
|
|
25
|
+
short: "%d %b %H:%M"
|
|
26
|
+
long: "%d %B %Y %H:%M"
|
|
27
|
+
only_second: "%S"
|
|
28
|
+
|
|
29
|
+
datetime:
|
|
30
|
+
formats:
|
|
31
|
+
default: "%d-%m-%YT%H:%M:%S%Z"
|
|
32
|
+
|
|
33
|
+
am: 'am'
|
|
34
|
+
pm: 'pm'
|
|
35
|
+
|
|
36
|
+
# Used in array.to_sentence.
|
|
37
|
+
support:
|
|
38
|
+
array:
|
|
39
|
+
sentence_connector: "e"
|
|
40
|
+
skip_last_comma: false
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
ru:
|
|
2
|
+
date:
|
|
3
|
+
formats:
|
|
4
|
+
# Use the strftime parameters for formats.
|
|
5
|
+
# When no format has been given, it uses default.
|
|
6
|
+
# You can provide other formats here if you like!
|
|
7
|
+
default: "%d.%m.%Y"
|
|
8
|
+
short: "%d %b"
|
|
9
|
+
long: "%e %B, %Y"
|
|
10
|
+
only_day: "%e"
|
|
11
|
+
|
|
12
|
+
day_names: [Воскресенье, Понедельник, Вторник, Среда, Четверг, Пятница, Суббота]
|
|
13
|
+
abbr_day_names: [Вс, Пн, Вт, Ср, Чт, Пт, Сб]
|
|
14
|
+
month_names: [~, Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь]
|
|
15
|
+
abbr_month_names: [~, Янв, Феб, Мар, Апр, Май, Июн, Июл, Авг, Сен, Окт, Ноя, Дек]
|
|
16
|
+
order:
|
|
17
|
+
- year
|
|
18
|
+
- month
|
|
19
|
+
- day
|
|
20
|
+
|
|
21
|
+
time:
|
|
22
|
+
formats:
|
|
23
|
+
default: "%a, %d %b %Y %H:%M:%S %z"
|
|
24
|
+
short: "%d %b %H:%M"
|
|
25
|
+
long: "%e %B, %Y %H:%M"
|
|
26
|
+
am: "д.п."
|
|
27
|
+
pm: "п.п."
|
|
28
|
+
|
|
29
|
+
# Used in array.to_sentence.
|
|
30
|
+
support:
|
|
31
|
+
array:
|
|
32
|
+
words_connector: ", "
|
|
33
|
+
two_words_connector: " и "
|
|
34
|
+
last_word_connector: " и "
|
|
35
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
tr:
|
|
2
|
+
date:
|
|
3
|
+
formats:
|
|
4
|
+
# Use the strftime parameters for formats.
|
|
5
|
+
# When no format has been given, it uses default.
|
|
6
|
+
# You can provide other formats here if you like!
|
|
7
|
+
default: "%d/%m/%Y"
|
|
8
|
+
short: "%d %b"
|
|
9
|
+
long: "%d %B %Y"
|
|
10
|
+
only_day: "%e"
|
|
11
|
+
|
|
12
|
+
day_names: [Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi]
|
|
13
|
+
abbr_day_names: [Paz, Pts, Sal, Çar, Per, Cum, Cts]
|
|
14
|
+
month_names: [~, Ocak, Şubat, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül, Ekim, Kasım, Aralık]
|
|
15
|
+
abbr_month_names: [~, Oca, Şub, Mar, Nis, May, Haz, Tem, Ağu, Eyl, Eki, Kas, Ara]
|
|
16
|
+
order:
|
|
17
|
+
- day
|
|
18
|
+
- month
|
|
19
|
+
- year
|
|
20
|
+
|
|
21
|
+
time:
|
|
22
|
+
formats:
|
|
23
|
+
default: "%a, %b %b %Y %H:%M:%S %z"
|
|
24
|
+
short: "%b %d %H:%M"
|
|
25
|
+
long: "%d %B, %Y %H:%M"
|
|
26
|
+
am: "öö"
|
|
27
|
+
pm: "ös"
|
|
28
|
+
|
|
29
|
+
# Used in array.to_sentence.
|
|
30
|
+
support:
|
|
31
|
+
array:
|
|
32
|
+
words_connector: ", "
|
|
33
|
+
two_words_connector: " ve "
|
|
34
|
+
last_word_connector: " ve "
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
uk:
|
|
2
|
+
date:
|
|
3
|
+
formats:
|
|
4
|
+
# Use the strftime parameters for formats.
|
|
5
|
+
# When no format has been given, it uses default.
|
|
6
|
+
# You can provide other formats here if you like!
|
|
7
|
+
default: "%d.%m.%Y"
|
|
8
|
+
short: "%d %b"
|
|
9
|
+
long: "%e %B, %Y"
|
|
10
|
+
only_day: "%e"
|
|
11
|
+
|
|
12
|
+
day_names: [Неділя, Понеділок, Вівторок, Середа, Четвер, Пятница, Субота]
|
|
13
|
+
abbr_day_names: [Нд, Пн, Вт, Ср, Чт, Пт, Сб]
|
|
14
|
+
month_names: [~, Січено, Лютий, Березень, Квітень, Травень, Червень, Липень, Серпень, Вересень, Жовтень, Листопад, Грудень]
|
|
15
|
+
abbr_month_names: [~, Січ, Лют, Бер, Кві, Тра, Чер, Лип, Сер, Вер, Жов, Лис, Гру]
|
|
16
|
+
order:
|
|
17
|
+
- year
|
|
18
|
+
- month
|
|
19
|
+
- day
|
|
20
|
+
|
|
21
|
+
time:
|
|
22
|
+
formats:
|
|
23
|
+
default: "%a, %d %b %Y %H:%M:%S %z"
|
|
24
|
+
short: "%d %b %H:%M"
|
|
25
|
+
long: "%e %B, %Y %H:%M"
|
|
26
|
+
am: "д.п."
|
|
27
|
+
pm: "п.п"
|
|
28
|
+
|
|
29
|
+
# Used in array.to_sentence.
|
|
30
|
+
support:
|
|
31
|
+
array:
|
|
32
|
+
words_connector: ", "
|
|
33
|
+
two_words_connector: " і "
|
|
34
|
+
last_word_connector: ", і "
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
zh_cn:
|
|
2
|
+
date:
|
|
3
|
+
formats:
|
|
4
|
+
# Use the strftime parameters for formats.
|
|
5
|
+
# When no format has been given, it uses default.
|
|
6
|
+
# You can provide other formats here if you like!
|
|
7
|
+
default: "%Y-%m-%d"
|
|
8
|
+
short: "%b%d日"
|
|
9
|
+
long: "%Y年%b%d日"
|
|
10
|
+
only_day: "%e"
|
|
11
|
+
|
|
12
|
+
day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
|
|
13
|
+
abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
|
|
14
|
+
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
|
|
15
|
+
abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
|
|
16
|
+
order:
|
|
17
|
+
- year
|
|
18
|
+
- month
|
|
19
|
+
- day
|
|
20
|
+
|
|
21
|
+
time:
|
|
22
|
+
formats:
|
|
23
|
+
default: "%Y年%b%d日 %A %H:%M:%S %Z"
|
|
24
|
+
short: "%b%d日 %H:%M"
|
|
25
|
+
long: "%Y年%b%d日 %H:%M"
|
|
26
|
+
am: "上午"
|
|
27
|
+
pm: "下午"
|
|
28
|
+
|
|
29
|
+
# Used in array.to_sentence.
|
|
30
|
+
support:
|
|
31
|
+
array:
|
|
32
|
+
words_connector: ", "
|
|
33
|
+
two_words_connector: " 和 "
|
|
34
|
+
last_word_connector: ", 和 "
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
zh_tw:
|
|
2
|
+
date:
|
|
3
|
+
formats:
|
|
4
|
+
# Use the strftime parameters for formats.
|
|
5
|
+
# When no format has been given, it uses default.
|
|
6
|
+
# You can provide other formats here if you like!
|
|
7
|
+
default: "%Y-%m-%d"
|
|
8
|
+
short: "%b%d日"
|
|
9
|
+
long: "%Y年%b%d日"
|
|
10
|
+
only_day: "%e"
|
|
11
|
+
|
|
12
|
+
day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
|
|
13
|
+
abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
|
|
14
|
+
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
|
|
15
|
+
abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
|
|
16
|
+
order:
|
|
17
|
+
- year
|
|
18
|
+
- month
|
|
19
|
+
- day
|
|
20
|
+
|
|
21
|
+
time:
|
|
22
|
+
formats:
|
|
23
|
+
default: "%Y年%b%d日 %A %H:%M:%S %Z"
|
|
24
|
+
short: "%b%d日 %H:%M"
|
|
25
|
+
long: "%Y年%b%d日 %H:%M"
|
|
26
|
+
am: "上午"
|
|
27
|
+
pm: "下午"
|
|
28
|
+
|
|
29
|
+
# Used in array.to_sentence.
|
|
30
|
+
support:
|
|
31
|
+
array:
|
|
32
|
+
words_connector: ", "
|
|
33
|
+
two_words_connector: " 和 "
|
|
34
|
+
last_word_connector: ", 和 "
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
# Defines the log level for a Padrino project.
|
|
2
|
+
PADRINO_LOG_LEVEL = ENV['PADRINO_LOG_LEVEL'] unless defined?(PADRINO_LOG_LEVEL)
|
|
3
|
+
# Defines the logger used for a Padrino project.
|
|
4
|
+
PADRINO_LOGGER = ENV['PADRINO_LOGGER'] unless defined?(PADRINO_LOGGER)
|
|
5
|
+
|
|
6
|
+
module Padrino
|
|
7
|
+
|
|
8
|
+
##
|
|
9
|
+
# @return [Padrino::Logger]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# logger.debug "foo"
|
|
13
|
+
# logger.warn "bar"
|
|
14
|
+
#
|
|
15
|
+
def self.logger
|
|
16
|
+
Padrino::Logger.setup! if Thread.current[:padrino_logger].nil?
|
|
17
|
+
Thread.current[:padrino_logger]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# Set the padrino logger
|
|
22
|
+
#
|
|
23
|
+
# @param [Object] value
|
|
24
|
+
# an object that respond to <<, write, puts, debug, warn etc..
|
|
25
|
+
#
|
|
26
|
+
# @return [Object]
|
|
27
|
+
# the given value
|
|
28
|
+
#
|
|
29
|
+
# @example using ruby default logger
|
|
30
|
+
# require 'logger'
|
|
31
|
+
# Padrino.logger = Logger.new(STDOUT)
|
|
32
|
+
#
|
|
33
|
+
# @example using ActiveSupport
|
|
34
|
+
# require 'active_support/buffered_logger'
|
|
35
|
+
# Padrino.logger = Buffered.new(STDOUT)
|
|
36
|
+
#
|
|
37
|
+
def self.logger=(value)
|
|
38
|
+
Thread.current[:padrino_logger] = value
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
##
|
|
42
|
+
# Extensions to the built in Ruby logger.
|
|
43
|
+
#
|
|
44
|
+
class Logger
|
|
45
|
+
|
|
46
|
+
attr_accessor :level
|
|
47
|
+
attr_accessor :auto_flush
|
|
48
|
+
attr_reader :buffer
|
|
49
|
+
attr_reader :log
|
|
50
|
+
attr_reader :init_args
|
|
51
|
+
attr_accessor :log_static
|
|
52
|
+
|
|
53
|
+
##
|
|
54
|
+
# Ruby (standard) logger levels:
|
|
55
|
+
#
|
|
56
|
+
# :fatal:: An unhandleable error that results in a program crash
|
|
57
|
+
# :error:: A handleable error condition
|
|
58
|
+
# :warn:: A warning
|
|
59
|
+
# :info:: generic (useful) information about system operation
|
|
60
|
+
# :debug:: low-level information for developers
|
|
61
|
+
#
|
|
62
|
+
Levels = {
|
|
63
|
+
:fatal => 7,
|
|
64
|
+
:error => 6,
|
|
65
|
+
:warn => 4,
|
|
66
|
+
:info => 3,
|
|
67
|
+
:debug => 0,
|
|
68
|
+
:devel => -1,
|
|
69
|
+
} unless const_defined?(:Levels)
|
|
70
|
+
|
|
71
|
+
@@mutex = {}
|
|
72
|
+
|
|
73
|
+
##
|
|
74
|
+
# Configuration for a given environment, possible options are:
|
|
75
|
+
#
|
|
76
|
+
# :log_level:: Once of [:fatal, :error, :warn, :info, :debug]
|
|
77
|
+
# :stream:: Once of [:to_file, :null, :stdout, :stderr] our your custom stream
|
|
78
|
+
# :log_level::
|
|
79
|
+
# The log level from, e.g. :fatal or :info. Defaults to :warn in the
|
|
80
|
+
# production environment and :debug otherwise.
|
|
81
|
+
# :auto_flush::
|
|
82
|
+
# Whether the log should automatically flush after new messages are
|
|
83
|
+
# added. Defaults to true.
|
|
84
|
+
# :format_datetime:: Format of datetime. Defaults to: "%d/%b/%Y %H:%M:%S"
|
|
85
|
+
# :format_message:: Format of message. Defaults to: ""%s - - [%s] \"%s\"""
|
|
86
|
+
# :log_static:: Whether or not to show log messages for static files. Defaults to: false
|
|
87
|
+
#
|
|
88
|
+
# @example
|
|
89
|
+
# Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :to_file }
|
|
90
|
+
# # or you can edit our defaults
|
|
91
|
+
# Padrino::Logger::Config[:development][:log_level] = :error
|
|
92
|
+
# # or you can use your stream
|
|
93
|
+
# Padrino::Logger::Config[:development][:stream] = StringIO.new
|
|
94
|
+
#
|
|
95
|
+
# Defaults are:
|
|
96
|
+
#
|
|
97
|
+
# :production => { :log_level => :warn, :stream => :to_file }
|
|
98
|
+
# :development => { :log_level => :debug, :stream => :stdout }
|
|
99
|
+
# :test => { :log_level => :fatal, :stream => :null }
|
|
100
|
+
#
|
|
101
|
+
# In some cases, configuring the loggers before loading the framework is necessary.
|
|
102
|
+
# You can do so by setting PADRINO_LOGGER:
|
|
103
|
+
#
|
|
104
|
+
# PADRINO_LOGGER = { :staging => { :log_level => :debug, :stream => :to_file }}
|
|
105
|
+
#
|
|
106
|
+
Config = {
|
|
107
|
+
:production => { :log_level => :warn, :stream => :to_file },
|
|
108
|
+
:development => { :log_level => :debug, :stream => :stdout, :format_datetime => ' ' },
|
|
109
|
+
:test => { :log_level => :debug, :stream => :null }
|
|
110
|
+
}
|
|
111
|
+
Config.merge!(PADRINO_LOGGER) if PADRINO_LOGGER
|
|
112
|
+
|
|
113
|
+
# Colors for levels
|
|
114
|
+
ColoredLevels = {
|
|
115
|
+
:fatal => [:bold, :red],
|
|
116
|
+
:error => [:red],
|
|
117
|
+
:warn => [:yellow],
|
|
118
|
+
:info => [:green],
|
|
119
|
+
:debug => [:cyan],
|
|
120
|
+
:devel => [:magenta]
|
|
121
|
+
} unless defined?(ColoredLevels)
|
|
122
|
+
|
|
123
|
+
##
|
|
124
|
+
# Setup a new logger
|
|
125
|
+
#
|
|
126
|
+
# @return [Padrino::Logger]
|
|
127
|
+
# A {Padrino::Logger} instance
|
|
128
|
+
#
|
|
129
|
+
def self.setup!
|
|
130
|
+
config_level = (PADRINO_LOG_LEVEL || Padrino.env || :test).to_sym # need this for PADRINO_LOG_LEVEL
|
|
131
|
+
config = Config[config_level]
|
|
132
|
+
|
|
133
|
+
unless config
|
|
134
|
+
warn("No logging configuration for :#{config_level} found, falling back to :production")
|
|
135
|
+
config = Config[:production]
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
stream = case config[:stream]
|
|
139
|
+
when :to_file
|
|
140
|
+
FileUtils.mkdir_p(Padrino.root("log")) unless File.exists?(Padrino.root("log"))
|
|
141
|
+
File.new(Padrino.root("log", "#{Padrino.env}.log"), "a+")
|
|
142
|
+
when :null then StringIO.new
|
|
143
|
+
when :stdout then $stdout
|
|
144
|
+
when :stderr then $stderr
|
|
145
|
+
else config[:stream] # return itself, probabilly is a custom stream.
|
|
146
|
+
end
|
|
147
|
+
Thread.current[:padrino_logger] = Padrino::Logger.new(config.merge(:stream => stream))
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
##
|
|
151
|
+
# To initialize the logger you create a new object, proxies to set_log.
|
|
152
|
+
#
|
|
153
|
+
# @param [Hash] options
|
|
154
|
+
#
|
|
155
|
+
# @option options [Symbol] :stream ($stdout)
|
|
156
|
+
# Either an IO object or a name of a logfile. Defaults to $stdout
|
|
157
|
+
#
|
|
158
|
+
# @option options [Symbol] :log_level (:production in the production environment and :debug otherwise)
|
|
159
|
+
# The log level from, e.g. :fatal or :info.
|
|
160
|
+
#
|
|
161
|
+
# @option options [Symbol] :auto_flush (true)
|
|
162
|
+
# Whether the log should automatically flush after new messages are
|
|
163
|
+
# added. Defaults to true.
|
|
164
|
+
#
|
|
165
|
+
# @option options [Symbol] :format_datetime (" [%d/%b/%Y %H:%M:%S] ")
|
|
166
|
+
# Format of datetime
|
|
167
|
+
#
|
|
168
|
+
# @option options [Symbol] :format_message ("%s -%s%s")
|
|
169
|
+
# Format of message
|
|
170
|
+
#
|
|
171
|
+
# @option options [Symbol] :log_static (false)
|
|
172
|
+
# Whether or not to show log messages for static files.
|
|
173
|
+
#
|
|
174
|
+
def initialize(options={})
|
|
175
|
+
@buffer = []
|
|
176
|
+
@auto_flush = options.has_key?(:auto_flush) ? options[:auto_flush] : true
|
|
177
|
+
@level = options[:log_level] ? Levels[options[:log_level]] : Levels[:debug]
|
|
178
|
+
@log = options[:stream] || $stdout
|
|
179
|
+
@log.sync = true
|
|
180
|
+
@mutex = @@mutex[@log] ||= Mutex.new
|
|
181
|
+
@format_datetime = options[:format_datetime] || "%d/%b/%Y %H:%M:%S"
|
|
182
|
+
@format_message = options[:format_message] || "%s -%s%s"
|
|
183
|
+
@log_static = options.has_key?(:log_static) ? options[:log_static] : false
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
##
|
|
187
|
+
# Colorize our level
|
|
188
|
+
#
|
|
189
|
+
# @param [String, Symbol] level
|
|
190
|
+
#
|
|
191
|
+
# @see Padrino::Logger::ColoredLevels
|
|
192
|
+
#
|
|
193
|
+
def colored_level(level)
|
|
194
|
+
style = ColoredLevels[level].map { |c| "\e[%dm" % String.colors[c] } * ''
|
|
195
|
+
[style, level.to_s.upcase.rjust(7), "\e[0m"] * ''
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
##
|
|
199
|
+
# Flush the entire buffer to the log object.
|
|
200
|
+
#
|
|
201
|
+
def flush
|
|
202
|
+
return unless @buffer.size > 0
|
|
203
|
+
@mutex.synchronize do
|
|
204
|
+
@log.write(@buffer.slice!(0..-1).join(''))
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
##
|
|
209
|
+
# Close and remove the current log object.
|
|
210
|
+
#
|
|
211
|
+
# @return [NilClass]
|
|
212
|
+
#
|
|
213
|
+
def close
|
|
214
|
+
flush
|
|
215
|
+
@log.close if @log.respond_to?(:close) && !@log.tty?
|
|
216
|
+
@log = nil
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
##
|
|
220
|
+
# Appends a message to the log. The methods yield to an optional block and
|
|
221
|
+
# the output of this block will be appended to the message.
|
|
222
|
+
#
|
|
223
|
+
# @param [String] message
|
|
224
|
+
# The message that you want write to your stream
|
|
225
|
+
#
|
|
226
|
+
# @param [String] level
|
|
227
|
+
# The level one of :debug, :warn etc...
|
|
228
|
+
#
|
|
229
|
+
#
|
|
230
|
+
def push(message = nil, level = nil)
|
|
231
|
+
write @format_message % [colored_level(level), Time.now.strftime(@format_datetime).yellow, message.to_s.strip]
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
##
|
|
235
|
+
# Append a to development logger a given action with time
|
|
236
|
+
#
|
|
237
|
+
# @param [string] action
|
|
238
|
+
# The action
|
|
239
|
+
#
|
|
240
|
+
# @param [float] time
|
|
241
|
+
# Time duration for the given action
|
|
242
|
+
#
|
|
243
|
+
# @param [message] string
|
|
244
|
+
# The message that you want to log
|
|
245
|
+
#
|
|
246
|
+
# @example
|
|
247
|
+
# logger.bench 'GET', started_at, '/blog/categories'
|
|
248
|
+
# # => DEBUG - GET (0.056ms) - /blog/categories
|
|
249
|
+
#
|
|
250
|
+
def bench(action, began_at, message, level=:debug, color=:yellow)
|
|
251
|
+
@_pad ||= 8
|
|
252
|
+
@_pad = action.to_s.size if action.to_s.size > @_pad
|
|
253
|
+
duration = Time.now - began_at
|
|
254
|
+
color = :red if duration > 1
|
|
255
|
+
push "%s (" % action.to_s.upcase.rjust(@_pad).send(color) + "%0.4fms".bold.send(color) % duration + ") %s" % message.to_s, level
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
##
|
|
259
|
+
# Directly append message to the log.
|
|
260
|
+
#
|
|
261
|
+
# @param [String] message
|
|
262
|
+
# The message
|
|
263
|
+
#
|
|
264
|
+
def <<(message = nil)
|
|
265
|
+
message << "\n" unless message[-1] == ?\n
|
|
266
|
+
@buffer << message
|
|
267
|
+
flush if @auto_flush
|
|
268
|
+
message
|
|
269
|
+
end
|
|
270
|
+
alias :write :<<
|
|
271
|
+
|
|
272
|
+
##
|
|
273
|
+
# Generate the logging methods for {Padrino.logger} for each log level.
|
|
274
|
+
#
|
|
275
|
+
Levels.each_pair do |name, number|
|
|
276
|
+
define_method(name) do |*args|
|
|
277
|
+
return if number < level
|
|
278
|
+
if args.size > 1
|
|
279
|
+
bench(*args)
|
|
280
|
+
else
|
|
281
|
+
push(args * '', name)
|
|
282
|
+
end
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
define_method(:"#{name}?") do
|
|
286
|
+
number >= level
|
|
287
|
+
end
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
##
|
|
291
|
+
# Padrino::Loggger::Rack forwards every request to an +app+ given, and
|
|
292
|
+
# logs a line in the Apache common log format to the +logger+, or
|
|
293
|
+
# rack.errors by default.
|
|
294
|
+
#
|
|
295
|
+
class Rack
|
|
296
|
+
|
|
297
|
+
def initialize(app, uri_root) # @private
|
|
298
|
+
@app = app
|
|
299
|
+
@uri_root = uri_root.sub(/\/$/,"")
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
def call(env) # @private
|
|
303
|
+
env['rack.logger'] = Padrino.logger
|
|
304
|
+
env['rack.errors'] = Padrino.logger.log
|
|
305
|
+
began_at = Time.now
|
|
306
|
+
status, header, body = @app.call(env)
|
|
307
|
+
log(env, status, header, began_at)
|
|
308
|
+
[status, header, body]
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
private
|
|
312
|
+
def log(env, status, header, began_at)
|
|
313
|
+
return if env['sinatra.static_file'] and !logger.log_static
|
|
314
|
+
logger.bench(
|
|
315
|
+
env["REQUEST_METHOD"],
|
|
316
|
+
began_at,
|
|
317
|
+
[
|
|
318
|
+
@uri_root.to_s,
|
|
319
|
+
env["PATH_INFO"],
|
|
320
|
+
env["QUERY_STRING"].empty? ? "" : "?" + env["QUERY_STRING"],
|
|
321
|
+
' - ',
|
|
322
|
+
status.to_s[0..3].bold,
|
|
323
|
+
' ',
|
|
324
|
+
code_to_name(status)
|
|
325
|
+
] * '',
|
|
326
|
+
:debug,
|
|
327
|
+
:magenta
|
|
328
|
+
)
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
def code_to_name(status)
|
|
332
|
+
::Rack::Utils::HTTP_STATUS_CODES[status.to_i] || ''
|
|
333
|
+
end
|
|
334
|
+
end # Rack
|
|
335
|
+
end # Logger
|
|
336
|
+
end # Padrino
|
|
337
|
+
|
|
338
|
+
module Kernel # @private
|
|
339
|
+
##
|
|
340
|
+
# Define a logger available every where in our app
|
|
341
|
+
#
|
|
342
|
+
def logger
|
|
343
|
+
Padrino.logger
|
|
344
|
+
end
|
|
345
|
+
end # Kernel
|