middleman-core 3.2.2 → 3.3.0
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.
- checksums.yaml +4 -4
- data/features/cli_init.feature +18 -8
- data/features/helpers_select_tag.feature +1 -1
- data/features/layouts_dir.feature +8 -0
- data/features/markdown_redcarpet.feature +2 -2
- data/fixtures/asciidoc-app/source/layouts/default.erb +0 -1
- data/fixtures/capture-html-app/source/capture_html_haml.html.haml +1 -1
- data/fixtures/content-for-app/source/content_for_haml.html.haml +1 -1
- data/fixtures/frontmatter-settings-app/source/layouts/override.erb +1 -2
- data/fixtures/frontmatter-settings-neighbor-app/source/layouts/override.erb +1 -2
- data/fixtures/layouts-dir-app/source/ambiguous.html.erb +5 -0
- data/fixtures/layouts-dir-app/source/layouts/other.erb +3 -0
- data/fixtures/layouts-dir-app/source/other.erb +3 -0
- data/fixtures/link-to-app/source/link_to_haml.html.haml +1 -1
- data/fixtures/link-to-app/source/link_to_slim.html.slim +1 -1
- data/fixtures/nested-layout-app/source/layouts/inner_haml.haml +1 -1
- data/fixtures/nested-layout-app/source/layouts/inner_slim.slim +1 -1
- data/fixtures/nested-layout-app/source/layouts/outer_haml.haml +1 -1
- data/fixtures/nested-layout-app/source/layouts/outer_slim.slim +1 -1
- data/lib/middleman-core/application.rb +12 -3
- data/lib/middleman-core/cli/build.rb +5 -3
- data/lib/middleman-core/cli/console.rb +1 -1
- data/lib/middleman-core/cli/init.rb +1 -1
- data/lib/middleman-core/core_extensions.rb +0 -1
- data/lib/middleman-core/core_extensions/file_watcher.rb +11 -11
- data/lib/middleman-core/core_extensions/rendering.rb +40 -66
- data/lib/middleman-core/extension.rb +167 -0
- data/lib/middleman-core/extensions.rb +2 -151
- data/lib/middleman-core/logger.rb +2 -2
- data/lib/middleman-core/meta_pages/assets/config.css +13 -0
- data/lib/middleman-core/meta_pages/assets/meta.css +19 -3
- data/lib/middleman-core/meta_pages/assets/sitemap.css +18 -1
- data/lib/middleman-core/meta_pages/config_setting.rb +7 -9
- data/lib/middleman-core/meta_pages/sitemap_resource.rb +24 -15
- data/lib/middleman-core/meta_pages/sitemap_tree.rb +5 -1
- data/lib/middleman-core/meta_pages/templates/config.html.erb +2 -2
- data/lib/middleman-core/meta_pages/templates/index.html.erb +18 -8
- data/lib/middleman-core/meta_pages/templates/sitemap.html.erb +4 -5
- data/lib/middleman-core/preview_server.rb +6 -3
- data/lib/middleman-core/renderers/erb.rb +12 -14
- data/lib/middleman-core/renderers/haml.rb +10 -0
- data/lib/middleman-core/renderers/markdown.rb +5 -1
- data/lib/middleman-core/renderers/sass.rb +0 -4
- data/lib/middleman-core/renderers/slim.rb +16 -3
- data/lib/middleman-core/sitemap/resource.rb +1 -1
- data/lib/middleman-core/step_definitions.rb +2 -1
- data/lib/middleman-core/templates.rb +3 -1
- data/lib/middleman-core/templates/shared/Gemfile.tt +4 -1
- data/lib/middleman-core/templates/shared/config.tt +3 -1
- data/lib/middleman-core/templates/shared/gitignore +2 -1
- data/lib/middleman-core/util.rb +22 -16
- data/lib/middleman-core/version.rb +1 -1
- data/lib/middleman-more/core_extensions/compass.rb +3 -3
- data/lib/middleman-more/core_extensions/default_helpers.rb +18 -15
- data/lib/middleman-more/extensions/asset_hash.rb +1 -0
- data/middleman-core.gemspec +9 -6
- metadata +69 -227
- data/features/sass_cache_path.feature +0 -22
- data/fixtures/sass-cache-path-custom-app/config.rb +0 -3
- data/fixtures/sass-cache-path-custom-app/source/stylesheets/plain.css.sass +0 -4
- data/fixtures/sass-cache-path-default-app/config.rb +0 -3
- data/fixtures/sass-cache-path-default-app/source/stylesheets/plain.css.sass +0 -4
- data/lib/vendored-middleman-deps/hooks-0.2.0/CHANGES.textile +0 -9
- data/lib/vendored-middleman-deps/hooks-0.2.0/Gemfile +0 -3
- data/lib/vendored-middleman-deps/hooks-0.2.0/README.rdoc +0 -107
- data/lib/vendored-middleman-deps/hooks-0.2.0/Rakefile +0 -12
- data/lib/vendored-middleman-deps/hooks-0.2.0/hooks.gemspec +0 -22
- data/lib/vendored-middleman-deps/hooks-0.2.0/lib/hooks.rb +0 -109
- data/lib/vendored-middleman-deps/hooks-0.2.0/lib/hooks/inheritable_attribute.rb +0 -33
- data/lib/vendored-middleman-deps/hooks-0.2.0/test/hooks_test.rb +0 -141
- data/lib/vendored-middleman-deps/hooks-0.2.0/test/inheritable_attribute_test.rb +0 -55
- data/lib/vendored-middleman-deps/hooks-0.2.0/test/test_helper.rb +0 -10
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/.document +0 -5
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/.gitignore +0 -22
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/.yardopts +0 -1
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/LICENSE.txt +0 -20
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/README.rdoc +0 -294
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/Rakefile +0 -5
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/bin/padrino +0 -9
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core.rb +0 -200
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application.rb +0 -297
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application/flash.rb +0 -229
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application/rendering.rb +0 -317
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application/rendering/extensions/erubis.rb +0 -64
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application/rendering/extensions/haml.rb +0 -28
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application/rendering/extensions/slim.rb +0 -14
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application/routing.rb +0 -1077
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application/showexceptions.rb +0 -21
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/caller.rb +0 -53
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/cli/adapter.rb +0 -24
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/cli/base.rb +0 -159
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/cli/console.rb +0 -20
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/cli/rake.rb +0 -47
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/cli/rake_tasks.rb +0 -52
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/command.rb +0 -38
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/images/404.png +0 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/images/500.png +0 -0
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/loader.rb +0 -224
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/cs.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/da.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/de.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/en.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/es.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/fr.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/hu.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/it.yml +0 -39
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/ja.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/lv.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/nl.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/no.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/pl.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/pt_br.yml +0 -39
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/ro.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/ru.yml +0 -34
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/sv.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/tr.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/uk.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/zh_cn.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/locale/zh_tw.yml +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/logger.rb +0 -438
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/module.rb +0 -58
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/mounter.rb +0 -234
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/reloader.rb +0 -341
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/router.rb +0 -95
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/server.rb +0 -77
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/support_lite.rb +0 -260
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/tasks.rb +0 -21
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/version.rb +0 -20
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/padrino-core.gemspec +0 -43
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/app_gem/Gemfile +0 -4
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/app_gem/app/app.rb +0 -3
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/app_gem/app_gem.gemspec +0 -17
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/app_gem/lib/app_gem.rb +0 -7
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/app_gem/lib/app_gem/version.rb +0 -3
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/apps/.components +0 -6
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/apps/.gitignore +0 -7
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/apps/complex.rb +0 -32
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/apps/simple.rb +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/dependencies/a.rb +0 -9
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/dependencies/b.rb +0 -4
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/dependencies/c.rb +0 -1
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/dependencies/circular/e.rb +0 -13
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/dependencies/circular/f.rb +0 -2
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/dependencies/circular/g.rb +0 -2
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/fixtures/dependencies/d.rb +0 -4
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/helper.rb +0 -83
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/mini_shoulda.rb +0 -45
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_application.rb +0 -125
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_core.rb +0 -77
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_csrf_protection.rb +0 -80
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_dependencies.rb +0 -44
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_filters.rb +0 -348
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_flash.rb +0 -168
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_locale.rb +0 -21
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_logger.rb +0 -210
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_mounter.rb +0 -199
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_reloader_complex.rb +0 -75
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_reloader_simple.rb +0 -98
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_rendering.rb +0 -545
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_rendering_extensions.rb +0 -14
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_restful_routing.rb +0 -33
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_router.rb +0 -146
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_routing.rb +0 -1927
- data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_support_lite.rb +0 -56
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/.document +0 -5
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/.gitignore +0 -21
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/.yardopts +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/LICENSE.txt +0 -20
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/README.rdoc +0 -239
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/Rakefile +0 -5
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers.rb +0 -57
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/asset_tag_helpers.rb +0 -401
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/breadcrumb_helpers.rb +0 -183
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/form_builder/abstract_form_builder.rb +0 -317
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/form_builder/standard_form_builder.rb +0 -40
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/form_helpers.rb +0 -919
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/format_helpers.rb +0 -372
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/cs.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/da.yml +0 -91
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/de.yml +0 -81
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/en.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/es.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/fr.yml +0 -79
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/hu.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/it.yml +0 -89
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/ja.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/lv.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/nl.yml +0 -82
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/no.yml +0 -91
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/pl.yml +0 -95
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/pt_br.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/ro.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/ru.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/sv.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/tr.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/uk.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/zh_cn.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/locale/zh_tw.yml +0 -103
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/number_helpers.rb +0 -283
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/output_helpers.rb +0 -207
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/output_helpers/abstract_handler.rb +0 -96
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/output_helpers/erb_handler.rb +0 -78
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/output_helpers/haml_handler.rb +0 -63
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/output_helpers/slim_handler.rb +0 -78
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/render_helpers.rb +0 -59
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/tag_helpers.rb +0 -292
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/translation_helpers.rb +0 -36
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/padrino-helpers.gemspec +0 -27
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/app.rb +0 -84
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/button_to.erb +0 -8
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/button_to.haml +0 -5
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/button_to.slim +0 -6
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/capture_concat.erb +0 -14
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/capture_concat.haml +0 -12
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/capture_concat.slim +0 -12
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/content_for.erb +0 -14
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/content_for.haml +0 -12
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/content_for.slim +0 -12
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/content_tag.erb +0 -11
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/content_tag.haml +0 -9
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/content_tag.slim +0 -9
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/current_engine.erb +0 -5
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/current_engine.haml +0 -5
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/current_engine.slim +0 -5
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/fields_for.erb +0 -20
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/fields_for.haml +0 -15
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/fields_for.slim +0 -15
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/form_for.erb +0 -72
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/form_for.haml +0 -59
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/form_for.slim +0 -59
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/form_tag.erb +0 -95
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/form_tag.haml +0 -78
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/form_tag.slim +0 -79
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/link_to.erb +0 -5
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/link_to.haml +0 -4
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/link_to.slim +0 -4
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/mail_to.erb +0 -3
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/mail_to.haml +0 -3
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/mail_to.slim +0 -3
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/meta_tag.erb +0 -3
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/meta_tag.haml +0 -3
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/meta_tag.slim +0 -3
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/partials/_erb.erb +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/partials/_haml.haml +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/partials/_slim.slim +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/simple_partial.erb +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/simple_partial.haml +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/simple_partial.slim +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/app.rb +0 -58
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/current_engine.haml +0 -5
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/current_engines/_erb.erb +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/current_engines/_haml.haml +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/current_engines/_slim.slim +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/double_capture_erb.erb +0 -3
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/double_capture_haml.haml +0 -2
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/double_capture_slim.slim +0 -2
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/erb/test.erb +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/explicit_engine.haml +0 -5
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/haml/test.haml +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/template/_user.haml +0 -7
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/template/haml_template.haml +0 -1
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/render_app/views/template/some_template.haml +0 -2
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/helper.rb +0 -67
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_asset_tag_helpers.rb +0 -359
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_breadcrumb_helpers.rb +0 -134
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_form_builder.rb +0 -1178
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_form_helpers.rb +0 -1030
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_format_helpers.rb +0 -241
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_locale.rb +0 -20
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_number_helpers.rb +0 -143
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_output_helpers.rb +0 -154
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_render_helpers.rb +0 -94
- data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_tag_helpers.rb +0 -117
data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/number_helpers.rb
DELETED
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
module Padrino
|
|
2
|
-
module Helpers
|
|
3
|
-
##
|
|
4
|
-
# Provides methods for converting numbers into formatted strings.
|
|
5
|
-
# Methods are provided for phone numbers, currency, percentage,
|
|
6
|
-
# precision, positional notation, and file size.
|
|
7
|
-
#
|
|
8
|
-
# Adapted from Rails Number Helpers.
|
|
9
|
-
#
|
|
10
|
-
module NumberHelpers
|
|
11
|
-
##
|
|
12
|
-
# Formats a +number+ into a currency string (e.g., $13.65). You can customize the format
|
|
13
|
-
# in the +options+ hash.
|
|
14
|
-
#
|
|
15
|
-
# @param [Float] number
|
|
16
|
-
# Currency value to format.
|
|
17
|
-
# @param [Hash] options
|
|
18
|
-
# Options for currency conversion.
|
|
19
|
-
# @option options [Fixnum] :precision (2)
|
|
20
|
-
# Sets the level of precision.
|
|
21
|
-
# @option options [String] :unit ("$")
|
|
22
|
-
# Sets the denomination of the currency.
|
|
23
|
-
# @option options [String] :separator (".")
|
|
24
|
-
# Sets the separator between the units.
|
|
25
|
-
# @option options [String] :delimiter (",")
|
|
26
|
-
# Sets the thousands delimiter.
|
|
27
|
-
# @option options [String] :format ("%u%n")
|
|
28
|
-
# Sets the format of the output string. The field types are:
|
|
29
|
-
# %u The currency unit
|
|
30
|
-
# %n The number
|
|
31
|
-
#
|
|
32
|
-
# @return [String] The formatted representation of the currency.
|
|
33
|
-
#
|
|
34
|
-
# @example
|
|
35
|
-
# number_to_currency(1234567890.50) # => $1,234,567,890.50
|
|
36
|
-
# number_to_currency(1234567890.506) # => $1,234,567,890.51
|
|
37
|
-
# number_to_currency(1234567890.506, :precision => 3) # => $1,234,567,890.506
|
|
38
|
-
# number_to_currency(1234567890.50, :unit => "£", :separator => ",", :delimiter => "")
|
|
39
|
-
# # => £1234567890,50
|
|
40
|
-
# number_to_currency(1234567890.50, :unit => "£", :separator => ",", :delimiter => "", :format => "%n %u")
|
|
41
|
-
# # => 1234567890,50 £
|
|
42
|
-
#
|
|
43
|
-
def number_to_currency(number, options = {})
|
|
44
|
-
options.symbolize_keys!
|
|
45
|
-
|
|
46
|
-
defaults = I18n.translate(:'number.format', :locale => options[:locale], :raise => true) rescue {}
|
|
47
|
-
currency = I18n.translate(:'number.currency.format', :locale => options[:locale], :raise => true) rescue {}
|
|
48
|
-
defaults = defaults.merge(currency)
|
|
49
|
-
|
|
50
|
-
precision = options[:precision] || defaults[:precision]
|
|
51
|
-
unit = options[:unit] || defaults[:unit]
|
|
52
|
-
separator = options[:separator] || defaults[:separator]
|
|
53
|
-
delimiter = options[:delimiter] || defaults[:delimiter]
|
|
54
|
-
format = options[:format] || defaults[:format]
|
|
55
|
-
separator = '' if precision == 0
|
|
56
|
-
|
|
57
|
-
begin
|
|
58
|
-
format.gsub(/%n/, number_with_precision(number,
|
|
59
|
-
:precision => precision,
|
|
60
|
-
:delimiter => delimiter,
|
|
61
|
-
:separator => separator)
|
|
62
|
-
).gsub(/%u/, unit)
|
|
63
|
-
rescue
|
|
64
|
-
number
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
##
|
|
69
|
-
# Formats a +number+ as a percentage string (e.g., 65%). You can customize the
|
|
70
|
-
# format in the +options+ hash.
|
|
71
|
-
#
|
|
72
|
-
# @param [Fixnum, Float] number
|
|
73
|
-
# Percentage value to format.
|
|
74
|
-
# @param [Hash] options
|
|
75
|
-
# Options for percentage conversion.
|
|
76
|
-
# @option options [Fixnum] :precision (3)
|
|
77
|
-
# Sets the level of precision.
|
|
78
|
-
# @option options [String] :separator (".")
|
|
79
|
-
# Sets the separator between the units.
|
|
80
|
-
# @option options [String] :delimiter ("")
|
|
81
|
-
# Sets the thousands delimiter.
|
|
82
|
-
#
|
|
83
|
-
# @return [String] The formatted representation of the percentage
|
|
84
|
-
#
|
|
85
|
-
# @example
|
|
86
|
-
# number_to_percentage(100) # => 100.000%
|
|
87
|
-
# number_to_percentage(100, :precision => 0) # => 100%
|
|
88
|
-
# number_to_percentage(1000, :delimiter => '.', :separator => ',') # => 1.000,000%
|
|
89
|
-
# number_to_percentage(302.24398923423, :precision => 5) # => 302.24399%
|
|
90
|
-
#
|
|
91
|
-
def number_to_percentage(number, options = {})
|
|
92
|
-
options.symbolize_keys!
|
|
93
|
-
|
|
94
|
-
defaults = I18n.translate(:'number.format', :locale => options[:locale], :raise => true) rescue {}
|
|
95
|
-
percentage = I18n.translate(:'number.percentage.format', :locale => options[:locale], :raise => true) rescue {}
|
|
96
|
-
defaults = defaults.merge(percentage)
|
|
97
|
-
|
|
98
|
-
precision = options[:precision] || defaults[:precision]
|
|
99
|
-
separator = options[:separator] || defaults[:separator]
|
|
100
|
-
delimiter = options[:delimiter] || defaults[:delimiter]
|
|
101
|
-
|
|
102
|
-
begin
|
|
103
|
-
number_with_precision(number,
|
|
104
|
-
:precision => precision,
|
|
105
|
-
:separator => separator,
|
|
106
|
-
:delimiter => delimiter) + "%"
|
|
107
|
-
rescue
|
|
108
|
-
number
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
##
|
|
113
|
-
# Formats a +number+ with grouped thousands using +delimiter+ (e.g., 12,324). You can
|
|
114
|
-
# customize the format in the +options+ hash.
|
|
115
|
-
#
|
|
116
|
-
# @overload number_with_delimiter(number, options={})
|
|
117
|
-
# @param [Fixnum, Float] number
|
|
118
|
-
# Number value to format.
|
|
119
|
-
# @param [Hash] options
|
|
120
|
-
# Options for formatter.
|
|
121
|
-
# @option options [String] :delimiter (", ")
|
|
122
|
-
# Sets the thousands delimiter.
|
|
123
|
-
# @option options [String] :separator (".")
|
|
124
|
-
# Sets the separator between the units.
|
|
125
|
-
#
|
|
126
|
-
# @return [String] The formatted representation of the number.
|
|
127
|
-
#
|
|
128
|
-
# @example
|
|
129
|
-
# number_with_delimiter(12345678) # => 12,345,678
|
|
130
|
-
# number_with_delimiter(12345678.05) # => 12,345,678.05
|
|
131
|
-
# number_with_delimiter(12345678, :delimiter => ".") # => 12.345.678
|
|
132
|
-
# number_with_delimiter(12345678, :separator => ",") # => 12,345,678
|
|
133
|
-
# number_with_delimiter(98765432.98, :delimiter => " ", :separator => ",")
|
|
134
|
-
# # => 98 765 432,98
|
|
135
|
-
#
|
|
136
|
-
def number_with_delimiter(number, *args)
|
|
137
|
-
options = args.extract_options!
|
|
138
|
-
options.symbolize_keys!
|
|
139
|
-
|
|
140
|
-
defaults = I18n.translate(:'number.format', :locale => options[:locale], :raise => true) rescue {}
|
|
141
|
-
|
|
142
|
-
delimiter ||= (options[:delimiter] || defaults[:delimiter])
|
|
143
|
-
separator ||= (options[:separator] || defaults[:separator])
|
|
144
|
-
|
|
145
|
-
begin
|
|
146
|
-
parts = number.to_s.split('.')
|
|
147
|
-
parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{delimiter}")
|
|
148
|
-
parts.join(separator)
|
|
149
|
-
rescue
|
|
150
|
-
number
|
|
151
|
-
end
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
##
|
|
155
|
-
# Formats a +number+ with the specified level of <tt>:precision</tt> (e.g., 112.32 has a precision of 2).
|
|
156
|
-
# You can customize the format in the +options+ hash.
|
|
157
|
-
#
|
|
158
|
-
# @overload number_with_precision(number, options={})
|
|
159
|
-
# @param [Fixnum, Float] number
|
|
160
|
-
# Number value to format.
|
|
161
|
-
# @param [Hash] options
|
|
162
|
-
# Options for formatter.
|
|
163
|
-
# @option options [Fixnum] :precision (3)
|
|
164
|
-
# Sets the level of precision.
|
|
165
|
-
# @option options [String] :separator (".")
|
|
166
|
-
# Sets the separator between the units.
|
|
167
|
-
# @option options [String] :delimiter ("")
|
|
168
|
-
# Sets the thousands delimiter.
|
|
169
|
-
#
|
|
170
|
-
# @return [String] The formatted representation of the number.
|
|
171
|
-
#
|
|
172
|
-
# @example
|
|
173
|
-
# number_with_precision(111.2345) # => 111.235
|
|
174
|
-
# number_with_precision(111.2345, :precision => 2) # => 111.23
|
|
175
|
-
# number_with_precision(13, :precision => 5) # => 13.00000
|
|
176
|
-
# number_with_precision(389.32314, :precision => 0) # => 389
|
|
177
|
-
# number_with_precision(1111.2345, :precision => 2, :separator => ',', :delimiter => '.')
|
|
178
|
-
# # => 1.111,23
|
|
179
|
-
#
|
|
180
|
-
def number_with_precision(number, *args)
|
|
181
|
-
options = args.extract_options!
|
|
182
|
-
options.symbolize_keys!
|
|
183
|
-
|
|
184
|
-
defaults = I18n.translate(:'number.format', :locale => options[:locale], :raise => true) rescue {}
|
|
185
|
-
precision_defaults = I18n.translate(:'number.precision.format', :locale => options[:locale],
|
|
186
|
-
:raise => true) rescue {}
|
|
187
|
-
defaults = defaults.merge(precision_defaults)
|
|
188
|
-
|
|
189
|
-
precision ||= (options[:precision] || defaults[:precision])
|
|
190
|
-
separator ||= (options[:separator] || defaults[:separator])
|
|
191
|
-
delimiter ||= (options[:delimiter] || defaults[:delimiter])
|
|
192
|
-
|
|
193
|
-
begin
|
|
194
|
-
rounded_number = (Float(number) * (10 ** precision)).round.to_f / 10 ** precision
|
|
195
|
-
number_with_delimiter("%01.#{precision}f" % rounded_number,
|
|
196
|
-
:separator => separator,
|
|
197
|
-
:delimiter => delimiter)
|
|
198
|
-
rescue
|
|
199
|
-
number
|
|
200
|
-
end
|
|
201
|
-
end
|
|
202
|
-
|
|
203
|
-
# The units available for storage formatting.
|
|
204
|
-
STORAGE_UNITS = [:byte, :kb, :mb, :gb, :tb].freeze
|
|
205
|
-
|
|
206
|
-
##
|
|
207
|
-
# Formats the bytes in +size+ into a more understandable representation
|
|
208
|
-
# (e.g., giving it 1500 yields 1.5 KB). This method is useful for
|
|
209
|
-
# reporting file sizes to users. This method returns nil if
|
|
210
|
-
# +size+ cannot be converted into a number. You can customize the
|
|
211
|
-
# format in the +options+ hash.
|
|
212
|
-
#
|
|
213
|
-
#
|
|
214
|
-
# @overload number_to_human_size(number, options={})
|
|
215
|
-
# @param [Fixnum] number
|
|
216
|
-
# Number value to format.
|
|
217
|
-
# @param [Hash] options
|
|
218
|
-
# Options for formatter.
|
|
219
|
-
# @option options [Fixnum] :precision (1)
|
|
220
|
-
# Sets the level of precision.
|
|
221
|
-
# @option options [String] :separator (".")
|
|
222
|
-
# Sets the separator between the units.
|
|
223
|
-
# @option options [String] :delimiter ("")
|
|
224
|
-
# Sets the thousands delimiter.
|
|
225
|
-
#
|
|
226
|
-
# @return [String] The formatted representation of bytes
|
|
227
|
-
#
|
|
228
|
-
# @example
|
|
229
|
-
# number_to_human_size(123) # => 123 Bytes
|
|
230
|
-
# number_to_human_size(1234) # => 1.2 KB
|
|
231
|
-
# number_to_human_size(12345) # => 12.1 KB
|
|
232
|
-
# number_to_human_size(1234567) # => 1.2 MB
|
|
233
|
-
# number_to_human_size(1234567890) # => 1.1 GB
|
|
234
|
-
# number_to_human_size(1234567890123) # => 1.1 TB
|
|
235
|
-
# number_to_human_size(1234567, :precision => 2) # => 1.18 MB
|
|
236
|
-
# number_to_human_size(483989, :precision => 0) # => 473 KB
|
|
237
|
-
# number_to_human_size(1234567, :precision => 2, :separator => ',') # => 1,18 MB
|
|
238
|
-
#
|
|
239
|
-
def number_to_human_size(number, *args)
|
|
240
|
-
return nil if number.nil?
|
|
241
|
-
|
|
242
|
-
options = args.extract_options!
|
|
243
|
-
options.symbolize_keys!
|
|
244
|
-
|
|
245
|
-
defaults = I18n.translate(:'number.format', :locale => options[:locale], :raise => true) rescue {}
|
|
246
|
-
human = I18n.translate(:'number.human.format', :locale => options[:locale], :raise => true) rescue {}
|
|
247
|
-
defaults = defaults.merge(human)
|
|
248
|
-
|
|
249
|
-
precision ||= (options[:precision] || defaults[:precision])
|
|
250
|
-
separator ||= (options[:separator] || defaults[:separator])
|
|
251
|
-
delimiter ||= (options[:delimiter] || defaults[:delimiter])
|
|
252
|
-
|
|
253
|
-
storage_units_format = I18n.translate(:'number.human.storage_units.format', :locale => options[:locale], :raise => true)
|
|
254
|
-
|
|
255
|
-
if number.to_i < 1024
|
|
256
|
-
unit = I18n.translate(:'number.human.storage_units.units.byte', :locale => options[:locale], :count => number.to_i, :raise => true)
|
|
257
|
-
storage_units_format.gsub(/%n/, number.to_i.to_s).gsub(/%u/, unit)
|
|
258
|
-
else
|
|
259
|
-
max_exp = STORAGE_UNITS.size - 1
|
|
260
|
-
number = Float(number)
|
|
261
|
-
exponent = (Math.log(number) / Math.log(1024)).to_i # Convert to base 1024
|
|
262
|
-
exponent = max_exp if exponent > max_exp # we need this to avoid overflow for the highest unit
|
|
263
|
-
number /= 1024 ** exponent
|
|
264
|
-
|
|
265
|
-
unit_key = STORAGE_UNITS[exponent]
|
|
266
|
-
unit = I18n.translate(:"number.human.storage_units.units.#{unit_key}", :locale => options[:locale], :count => number, :raise => true)
|
|
267
|
-
|
|
268
|
-
begin
|
|
269
|
-
escaped_separator = Regexp.escape(separator)
|
|
270
|
-
formatted_number = number_with_precision(number,
|
|
271
|
-
:precision => precision,
|
|
272
|
-
:separator => separator,
|
|
273
|
-
:delimiter => delimiter
|
|
274
|
-
).sub(/(#{escaped_separator})(\d*[1-9])?0+\z/, '\1\2').sub(/#{escaped_separator}\z/, '')
|
|
275
|
-
storage_units_format.gsub(/%n/, formatted_number).gsub(/%u/, unit)
|
|
276
|
-
rescue
|
|
277
|
-
number
|
|
278
|
-
end
|
|
279
|
-
end
|
|
280
|
-
end
|
|
281
|
-
end
|
|
282
|
-
end
|
|
283
|
-
end
|
data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/output_helpers.rb
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
module Padrino
|
|
2
|
-
module Helpers
|
|
3
|
-
##
|
|
4
|
-
# Helpers related to buffer output for various template engines.
|
|
5
|
-
#
|
|
6
|
-
module OutputHelpers
|
|
7
|
-
def self.included(base)
|
|
8
|
-
base.send(:include, SinatraCurrentEngine) unless base.method_defined?(:current_engine)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
# Module used to detect the current engine in vanilla Sinatra apps.
|
|
13
|
-
#
|
|
14
|
-
module SinatraCurrentEngine
|
|
15
|
-
attr_reader :current_engine
|
|
16
|
-
|
|
17
|
-
def render(engine, *)
|
|
18
|
-
@current_engine, engine_was = engine, @current_engine
|
|
19
|
-
output = super
|
|
20
|
-
@current_engine = engine_was
|
|
21
|
-
output
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
##
|
|
26
|
-
# Captures the html from a block of template code for any available handler.
|
|
27
|
-
#
|
|
28
|
-
# Be aware that trusting the html is up to the caller.
|
|
29
|
-
#
|
|
30
|
-
# @param [Object] *args
|
|
31
|
-
# Objects yield to the captured block.
|
|
32
|
-
# @param [Proc] &block
|
|
33
|
-
# Template code to capture as HTML.
|
|
34
|
-
#
|
|
35
|
-
# @return [String] Captured HTML resulting from the block.
|
|
36
|
-
#
|
|
37
|
-
# @example
|
|
38
|
-
# capture_html(&block) => "...html..."
|
|
39
|
-
# capture_html(object_for_block, &block) => "...html..."
|
|
40
|
-
#
|
|
41
|
-
# @example
|
|
42
|
-
# ActiveSupport::SafeBuffer.new + capture_html { "<foo>" }
|
|
43
|
-
# # => "<foo>"
|
|
44
|
-
# ActiveSupport::SafeBuffer.new.safe_concat(capture_html { "<foo>" })
|
|
45
|
-
# # => "<foo>"
|
|
46
|
-
#
|
|
47
|
-
def capture_html(*args, &block)
|
|
48
|
-
handler = find_proper_handler
|
|
49
|
-
captured_block, captured_html = nil, ""
|
|
50
|
-
if handler && handler.is_type? && handler.block_is_type?(block)
|
|
51
|
-
captured_html, captured_block = handler.capture_from_template(*args, &block)
|
|
52
|
-
end
|
|
53
|
-
# invoking the block directly if there was no template
|
|
54
|
-
captured_html = block_given? && ( captured_block || block.call(*args) ) if captured_html.blank?
|
|
55
|
-
captured_html
|
|
56
|
-
end
|
|
57
|
-
alias :capture :capture_html
|
|
58
|
-
|
|
59
|
-
##
|
|
60
|
-
# Outputs the given text to the templates buffer directly.
|
|
61
|
-
#
|
|
62
|
-
# The output might be subject to escaping, if it is not marked as safe.
|
|
63
|
-
#
|
|
64
|
-
# @param [String, SafeBuffer] text
|
|
65
|
-
# Text to concatenate to the buffer.
|
|
66
|
-
#
|
|
67
|
-
# @example
|
|
68
|
-
# concat_content("This will be output to the template buffer")
|
|
69
|
-
#
|
|
70
|
-
def concat_content(text="")
|
|
71
|
-
handler = find_proper_handler
|
|
72
|
-
if handler && handler.is_type?
|
|
73
|
-
handler.concat_to_template(text)
|
|
74
|
-
else # theres no template to concat, return the text directly
|
|
75
|
-
text
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
alias :concat :concat_content
|
|
79
|
-
|
|
80
|
-
##
|
|
81
|
-
# Outputs the given text to the templates buffer directly,
|
|
82
|
-
# assuming that it is safe.
|
|
83
|
-
#
|
|
84
|
-
# @param [String] text
|
|
85
|
-
# Text to concatenate to the buffer.
|
|
86
|
-
#
|
|
87
|
-
# @example
|
|
88
|
-
# concat_safe_content("This will be output to the template buffer")
|
|
89
|
-
#
|
|
90
|
-
def concat_safe_content(text="")
|
|
91
|
-
concat_content text.html_safe
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
##
|
|
95
|
-
# Returns true if the block is from a supported template type; false otherwise.
|
|
96
|
-
# Used to determine if html should be returned or concatenated to the view.
|
|
97
|
-
#
|
|
98
|
-
# @param [Block] block
|
|
99
|
-
# Determine if this block is a view template.
|
|
100
|
-
#
|
|
101
|
-
# @example
|
|
102
|
-
# block_is_template?(block) => true
|
|
103
|
-
#
|
|
104
|
-
# @return [Boolean] True if the block is a template; false otherwise.
|
|
105
|
-
#
|
|
106
|
-
def block_is_template?(block)
|
|
107
|
-
handler = find_proper_handler
|
|
108
|
-
block && handler && handler.block_is_type?(block)
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
##
|
|
112
|
-
# Capture a block or text of content to be rendered at a later time.
|
|
113
|
-
# Your blocks can also receive values, which are passed to them by <tt>yield_content</tt>.
|
|
114
|
-
#
|
|
115
|
-
# @overload content_for(key, content)
|
|
116
|
-
# @param [Symbol] key Name of your key for the content yield.
|
|
117
|
-
# @param [String] content Text to be stored for this key.
|
|
118
|
-
# @overload content_for(key, &block)
|
|
119
|
-
# @param [Symbol] key Name of your key for the content yield.
|
|
120
|
-
# @param [Proc] block Block to be stored as content for this key.
|
|
121
|
-
#
|
|
122
|
-
# @example
|
|
123
|
-
# content_for(:name) { ...content... }
|
|
124
|
-
# content_for(:name) { |name| ...content... }
|
|
125
|
-
# content_for(:name, "I'm Jeff")
|
|
126
|
-
#
|
|
127
|
-
def content_for(key, content = nil, &block)
|
|
128
|
-
content_blocks[key.to_sym] << (block_given? ? block : Proc.new { content })
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
##
|
|
132
|
-
# Is there a content block for a given key?
|
|
133
|
-
#
|
|
134
|
-
# @param [Symbol] key
|
|
135
|
-
# Name of content to yield.
|
|
136
|
-
#
|
|
137
|
-
# @return [TrueClass,FalseClass] Result html for the given +key+
|
|
138
|
-
#
|
|
139
|
-
# @example
|
|
140
|
-
# content_for? :header => true
|
|
141
|
-
#
|
|
142
|
-
def content_for?(key)
|
|
143
|
-
content_blocks[key.to_sym].present?
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
##
|
|
147
|
-
# Render the captured content blocks for a given key.
|
|
148
|
-
# You can also pass values to the content blocks by passing them
|
|
149
|
-
# as arguments after the key.
|
|
150
|
-
#
|
|
151
|
-
# @param [Symbol] key
|
|
152
|
-
# Name of content to yield.
|
|
153
|
-
# @param *args
|
|
154
|
-
# Values to pass to the content block.
|
|
155
|
-
#
|
|
156
|
-
# @return [String] Result HTML for the given +key+.
|
|
157
|
-
#
|
|
158
|
-
# @example
|
|
159
|
-
# yield_content :include
|
|
160
|
-
# yield_content :head, "param1", "param2"
|
|
161
|
-
# yield_content(:title) || "My page title"
|
|
162
|
-
#
|
|
163
|
-
def yield_content(key, *args)
|
|
164
|
-
blocks = content_blocks[key.to_sym]
|
|
165
|
-
return nil if blocks.empty?
|
|
166
|
-
mark_safe(blocks.map { |content| capture_html(*args, &content) }.join)
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
protected
|
|
170
|
-
##
|
|
171
|
-
# Retrieves content_blocks stored by content_for or within yield_content.
|
|
172
|
-
#
|
|
173
|
-
# @example
|
|
174
|
-
# content_blocks[:name] => ['...', '...']
|
|
175
|
-
#
|
|
176
|
-
def content_blocks
|
|
177
|
-
@content_blocks ||= Hash.new { |h,k| h[k] = [] }
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
##
|
|
181
|
-
# Retrieves the template handler for the given output context.
|
|
182
|
-
# Can handle any output related to capturing or concatenating in a given template.
|
|
183
|
-
#
|
|
184
|
-
# @example
|
|
185
|
-
# find_proper_handler => <OutputHelpers::HamlHandler>
|
|
186
|
-
#
|
|
187
|
-
def find_proper_handler
|
|
188
|
-
OutputHelpers.handlers.map { |h| h.new(self) }.find { |h| h.engines.include?(current_engine) && h.is_type? }
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
##
|
|
192
|
-
# Marks a String or a collection of Strings as safe. `nil` is accepted
|
|
193
|
-
# but ignored.
|
|
194
|
-
#
|
|
195
|
-
# @param [String, Array<String>] the values to be marked safe.
|
|
196
|
-
#
|
|
197
|
-
# @return [ActiveSupport::SafeBuffer, Array<ActiveSupport::SafeBuffer>]
|
|
198
|
-
def mark_safe(value)
|
|
199
|
-
if value.respond_to? :map!
|
|
200
|
-
value.map!{|v| v.html_safe if v }
|
|
201
|
-
else
|
|
202
|
-
value.html_safe if value
|
|
203
|
-
end
|
|
204
|
-
end
|
|
205
|
-
end
|
|
206
|
-
end
|
|
207
|
-
end
|