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
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
module Padrino
|
|
2
|
-
module Helpers
|
|
3
|
-
module OutputHelpers
|
|
4
|
-
##
|
|
5
|
-
# Returns the list of all available template handlers.
|
|
6
|
-
#
|
|
7
|
-
# @example
|
|
8
|
-
# OutputHelpers.handlers => [<OutputHelpers::HamlHandler>, <OutputHelpers::ErbHandler>]
|
|
9
|
-
#
|
|
10
|
-
def self.handlers
|
|
11
|
-
@_template_handlers ||= []
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
##
|
|
15
|
-
# Registers a new handler as available to the output helpers.
|
|
16
|
-
#
|
|
17
|
-
# @example
|
|
18
|
-
# OutputHelpers.register(OutputHelpers::HamlHandler)
|
|
19
|
-
#
|
|
20
|
-
def self.register(handler)
|
|
21
|
-
handlers << handler
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# @abstract Extend this to create a template handler.
|
|
25
|
-
class AbstractHandler
|
|
26
|
-
attr_reader :template
|
|
27
|
-
|
|
28
|
-
def initialize(template)
|
|
29
|
-
@template = template
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
##
|
|
33
|
-
# Returns extension of the template.
|
|
34
|
-
#
|
|
35
|
-
# @example
|
|
36
|
-
# @handler.template_extension => "erb"
|
|
37
|
-
#
|
|
38
|
-
def template_extension
|
|
39
|
-
caller.find { |c| c =~ /\/views\// }[/\.([\w]*?)\:/, 1] rescue nil
|
|
40
|
-
# "/some/path/app/views/posts/foo.html.erb:3:in `evaluate_source'"
|
|
41
|
-
# => "erb"
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
##
|
|
45
|
-
# Returns an array of engines used for the template.
|
|
46
|
-
#
|
|
47
|
-
# @example
|
|
48
|
-
# @handler.engines => [:erb, :erubis]
|
|
49
|
-
#
|
|
50
|
-
def engines
|
|
51
|
-
# Implemented in subclass.
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
##
|
|
55
|
-
# Returns true if the current template type is same as this handlers; false otherwise.
|
|
56
|
-
#
|
|
57
|
-
# @example
|
|
58
|
-
# @handler.is_type? => true
|
|
59
|
-
#
|
|
60
|
-
def is_type?
|
|
61
|
-
# Implemented in subclass.
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
##
|
|
65
|
-
# Returns true if the block given is of the handler's template type; false otherwise.
|
|
66
|
-
#
|
|
67
|
-
# @example
|
|
68
|
-
# @handler.block_is_type?(block) => true
|
|
69
|
-
#
|
|
70
|
-
def block_is_type?(block)
|
|
71
|
-
# Implemented in subclass.
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
##
|
|
75
|
-
# Captures the html from a block of template code for this handler.
|
|
76
|
-
#
|
|
77
|
-
# @example
|
|
78
|
-
# @handler.capture_from_template(&block) => "...html..."
|
|
79
|
-
#
|
|
80
|
-
def capture_from_template(*args, &block)
|
|
81
|
-
# Implemented in subclass.
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
##
|
|
85
|
-
# Outputs the given text to the templates buffer directly.
|
|
86
|
-
#
|
|
87
|
-
# @example
|
|
88
|
-
# @handler.concat_to_template("This will be output to the template buffer")
|
|
89
|
-
#
|
|
90
|
-
def concat_to_template(text="")
|
|
91
|
-
# Implemented in subclass.
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
end
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
module Padrino
|
|
2
|
-
module Helpers
|
|
3
|
-
module OutputHelpers
|
|
4
|
-
##
|
|
5
|
-
# Handler for reading and writing from an erb template.
|
|
6
|
-
#
|
|
7
|
-
class ErbHandler < AbstractHandler
|
|
8
|
-
attr_reader :output_buffer
|
|
9
|
-
|
|
10
|
-
def initialize(template)
|
|
11
|
-
super
|
|
12
|
-
@output_buffer = template.instance_variable_get(:@_out_buf)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
##
|
|
16
|
-
# Returns true if the current template type is same as this handlers; false otherwise.
|
|
17
|
-
#
|
|
18
|
-
# @example
|
|
19
|
-
# @handler.is_type? => true
|
|
20
|
-
#
|
|
21
|
-
def is_type?
|
|
22
|
-
!self.output_buffer.nil?
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
##
|
|
26
|
-
# Captures the html from a block of template code for this handler.
|
|
27
|
-
#
|
|
28
|
-
# @example
|
|
29
|
-
# @handler.capture_from_template(&block) => "...html..."
|
|
30
|
-
#
|
|
31
|
-
def capture_from_template(*args, &block)
|
|
32
|
-
self.output_buffer, _buf_was = ActiveSupport::SafeBuffer.new, self.output_buffer
|
|
33
|
-
captured_block = block.call(*args)
|
|
34
|
-
ret = eval("@_out_buf", block.binding)
|
|
35
|
-
self.output_buffer = _buf_was
|
|
36
|
-
[ ret, captured_block ]
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
##
|
|
40
|
-
# Outputs the given text to the templates buffer directly.
|
|
41
|
-
#
|
|
42
|
-
# @example
|
|
43
|
-
# @handler.concat_to_template("This will be output to the template buffer")
|
|
44
|
-
#
|
|
45
|
-
def concat_to_template(text="")
|
|
46
|
-
self.output_buffer << text if is_type? && text
|
|
47
|
-
nil
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
##
|
|
51
|
-
# Returns true if the block given is of the handler's template type; false otherwise.
|
|
52
|
-
#
|
|
53
|
-
# @example
|
|
54
|
-
# @handler.block_is_type?(block) => true
|
|
55
|
-
#
|
|
56
|
-
def block_is_type?(block)
|
|
57
|
-
is_type? || (block && eval('defined?(__in_erb_template)', block.binding))
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
##
|
|
61
|
-
# Returns an array of engines used for the template.
|
|
62
|
-
#
|
|
63
|
-
# @example
|
|
64
|
-
# @handler.engines => [:erb, :erubis]
|
|
65
|
-
#
|
|
66
|
-
def engines
|
|
67
|
-
@_engines ||= [:erb, :erubis]
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
protected
|
|
71
|
-
def output_buffer=(val)
|
|
72
|
-
template.instance_variable_set(:@_out_buf, val)
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
OutputHelpers.register(ErbHandler)
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
module Padrino
|
|
2
|
-
module Helpers
|
|
3
|
-
module OutputHelpers
|
|
4
|
-
##
|
|
5
|
-
# Handler for reading and writing from a haml template.
|
|
6
|
-
#
|
|
7
|
-
class HamlHandler < AbstractHandler
|
|
8
|
-
##
|
|
9
|
-
# Returns true if the current template type is same as this handlers; false otherwise.
|
|
10
|
-
#
|
|
11
|
-
# @example
|
|
12
|
-
# @handler.is_type? => true
|
|
13
|
-
#
|
|
14
|
-
def is_type?
|
|
15
|
-
template.respond_to?(:is_haml?) && template.is_haml?
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
##
|
|
19
|
-
# Returns true if the block given is of the handler's template type; false otherwise.
|
|
20
|
-
#
|
|
21
|
-
# @example
|
|
22
|
-
# @handler.block_is_type?(block) => true
|
|
23
|
-
#
|
|
24
|
-
def block_is_type?(block)
|
|
25
|
-
template.block_is_haml?(block)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
##
|
|
29
|
-
# Captures the html from a block of template code for this handler.
|
|
30
|
-
#
|
|
31
|
-
# @example
|
|
32
|
-
# @handler.capture_from_template(&block) => "...html..."
|
|
33
|
-
#
|
|
34
|
-
def capture_from_template(*args, &block)
|
|
35
|
-
eval("_hamlout ||= @haml_buffer", block.binding)
|
|
36
|
-
template.capture_haml(*args, &block)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
##
|
|
40
|
-
# Outputs the given text to the templates buffer directly.
|
|
41
|
-
#
|
|
42
|
-
# @example
|
|
43
|
-
# @handler.concat_to_template("This will be output to the template buffer")
|
|
44
|
-
#
|
|
45
|
-
def concat_to_template(text="")
|
|
46
|
-
template.haml_concat(text)
|
|
47
|
-
nil
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
##
|
|
51
|
-
# Returns an array of engines used for the template.
|
|
52
|
-
#
|
|
53
|
-
# @example
|
|
54
|
-
# @handler.engines => [:haml]
|
|
55
|
-
#
|
|
56
|
-
def engines
|
|
57
|
-
@_engines ||= [:haml]
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
OutputHelpers.register(HamlHandler)
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
module Padrino
|
|
2
|
-
module Helpers
|
|
3
|
-
module OutputHelpers
|
|
4
|
-
##
|
|
5
|
-
# Handler for reading and writing from a slim template.
|
|
6
|
-
#
|
|
7
|
-
class SlimHandler < AbstractHandler
|
|
8
|
-
attr_reader :output_buffer
|
|
9
|
-
|
|
10
|
-
def initialize(template)
|
|
11
|
-
super
|
|
12
|
-
@output_buffer = template.instance_variable_get(:@_out_buf)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
##
|
|
16
|
-
# Returns true if the current template type is same as this handlers; false otherwise.
|
|
17
|
-
#
|
|
18
|
-
# @example
|
|
19
|
-
# @handler.is_type? => true
|
|
20
|
-
#
|
|
21
|
-
def is_type?
|
|
22
|
-
!self.output_buffer.nil?
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
##
|
|
26
|
-
# Captures the html from a block of template code for this handler.
|
|
27
|
-
#
|
|
28
|
-
# @example
|
|
29
|
-
# @handler.capture_from_template(&block) => "...html..."
|
|
30
|
-
#
|
|
31
|
-
def capture_from_template(*args, &block)
|
|
32
|
-
self.output_buffer, _buf_was = ActiveSupport::SafeBuffer.new, self.output_buffer
|
|
33
|
-
captured_block = block.call(*args)
|
|
34
|
-
ret = eval("@_out_buf", block.binding)
|
|
35
|
-
self.output_buffer = _buf_was
|
|
36
|
-
[ ret, captured_block ]
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
##
|
|
40
|
-
# Outputs the given text to the templates buffer directly.
|
|
41
|
-
#
|
|
42
|
-
# @example
|
|
43
|
-
# @handler.concat_to_template("This will be output to the template buffer")
|
|
44
|
-
#
|
|
45
|
-
def concat_to_template(text="")
|
|
46
|
-
self.output_buffer << text if is_type? && text
|
|
47
|
-
nil
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
##
|
|
51
|
-
# Returns true if the block given is of the handler's template type; false otherwise.
|
|
52
|
-
#
|
|
53
|
-
# @example
|
|
54
|
-
# @handler.block_is_type?(block) => true
|
|
55
|
-
#
|
|
56
|
-
def block_is_type?(block)
|
|
57
|
-
is_type? || (block && eval('defined? __in_erb_template', block.binding))
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
##
|
|
61
|
-
# Returns an array of engines used for the template.
|
|
62
|
-
#
|
|
63
|
-
# @example
|
|
64
|
-
# @handler.engines => [:erb, :erubis]
|
|
65
|
-
#
|
|
66
|
-
def engines
|
|
67
|
-
@_engines ||= [:slim]
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
protected
|
|
71
|
-
def output_buffer=(val)
|
|
72
|
-
template.instance_variable_set(:@_out_buf, val)
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
OutputHelpers.register(SlimHandler)
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/render_helpers.rb
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
module Padrino
|
|
2
|
-
module Helpers
|
|
3
|
-
##
|
|
4
|
-
# Helpers related to rendering within templates (i.e partials).
|
|
5
|
-
#
|
|
6
|
-
module RenderHelpers
|
|
7
|
-
##
|
|
8
|
-
# Render a partials with collections support.
|
|
9
|
-
#
|
|
10
|
-
# @param [String] template
|
|
11
|
-
# Relative path to partial template.
|
|
12
|
-
# @param [Hash] options
|
|
13
|
-
# Options hash for rendering options.
|
|
14
|
-
# @option options [Object] :object
|
|
15
|
-
# Object rendered in partial.
|
|
16
|
-
# @option options [Array<Object>] :collection
|
|
17
|
-
# Partial is rendered for each object in this collection.
|
|
18
|
-
# @option options [Hash] :locals ({})
|
|
19
|
-
# Local variables accessible in the partial.
|
|
20
|
-
# @option options [Symbol] :engine
|
|
21
|
-
# Explicit rendering engine to use for this partial.
|
|
22
|
-
#
|
|
23
|
-
# @return [String] The html generated from this partial.
|
|
24
|
-
#
|
|
25
|
-
# @example
|
|
26
|
-
# partial 'photo/item', :object => @photo
|
|
27
|
-
# partial 'photo/item', :collection => @photos
|
|
28
|
-
# partial 'photo/item', :locals => { :foo => :bar }
|
|
29
|
-
# partial 'photo/item', :engine => :erb
|
|
30
|
-
#
|
|
31
|
-
# @note If using this from Sinatra, pass explicit +:engine+ option
|
|
32
|
-
#
|
|
33
|
-
def partial(template, options={})
|
|
34
|
-
options.reverse_merge!(:locals => {}, :layout => false)
|
|
35
|
-
path = template.to_s.split(File::SEPARATOR)
|
|
36
|
-
object_name = path[-1].to_sym
|
|
37
|
-
path[-1] = "_#{path[-1]}"
|
|
38
|
-
explicit_engine = options.delete(:engine)
|
|
39
|
-
template_path = File.join(path).to_sym
|
|
40
|
-
raise 'Partial collection specified but is nil' if options.has_key?(:collection) && options[:collection].nil?
|
|
41
|
-
if collection = options.delete(:collection)
|
|
42
|
-
options.delete(:object)
|
|
43
|
-
counter = 0
|
|
44
|
-
collection.map { |member|
|
|
45
|
-
counter += 1
|
|
46
|
-
options[:locals].merge!(object_name => member, "#{object_name}_counter".to_sym => counter)
|
|
47
|
-
render(explicit_engine, template_path, options.dup)
|
|
48
|
-
}.join("\n").html_safe
|
|
49
|
-
else
|
|
50
|
-
if member = options.delete(:object)
|
|
51
|
-
options[:locals].merge!(object_name => member)
|
|
52
|
-
end
|
|
53
|
-
render(explicit_engine, template_path, options.dup).html_safe
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
alias :render_partial :partial
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
module Padrino
|
|
2
|
-
module Helpers
|
|
3
|
-
##
|
|
4
|
-
# Helpers related to producing html tags within templates.
|
|
5
|
-
#
|
|
6
|
-
module TagHelpers
|
|
7
|
-
##
|
|
8
|
-
# Tag values escaped to html entities.
|
|
9
|
-
#
|
|
10
|
-
ESCAPE_VALUES = {
|
|
11
|
-
"&" => "&",
|
|
12
|
-
"<" => "<",
|
|
13
|
-
">" => ">",
|
|
14
|
-
'"' => """
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
##
|
|
18
|
-
# Cached Regexp for escaping values to avoid rebuilding one
|
|
19
|
-
# on every escape operation.
|
|
20
|
-
#
|
|
21
|
-
ESCAPE_REGEXP = Regexp.union(*ESCAPE_VALUES.keys)
|
|
22
|
-
|
|
23
|
-
BOOLEAN_ATTRIBUTES = [
|
|
24
|
-
:autoplay,
|
|
25
|
-
:autofocus,
|
|
26
|
-
:formnovalidate,
|
|
27
|
-
:checked,
|
|
28
|
-
:disabled,
|
|
29
|
-
:hidden,
|
|
30
|
-
:loop,
|
|
31
|
-
:multiple,
|
|
32
|
-
:muted,
|
|
33
|
-
:readonly,
|
|
34
|
-
:required,
|
|
35
|
-
:selected,
|
|
36
|
-
:declare,
|
|
37
|
-
:defer,
|
|
38
|
-
:ismap,
|
|
39
|
-
:itemscope,
|
|
40
|
-
:noresize,
|
|
41
|
-
:novalidate
|
|
42
|
-
]
|
|
43
|
-
|
|
44
|
-
##
|
|
45
|
-
# Custom data attributes,
|
|
46
|
-
# feel free to update with yours:
|
|
47
|
-
#
|
|
48
|
-
# Padrino::Helpers::TagHelpers::DATA_ATTRIBUTES.push(:dialog)
|
|
49
|
-
# text_field :foo, :dialog => true
|
|
50
|
-
# # Generates: <input type="text" data-dialog="true" name="foo" />
|
|
51
|
-
#
|
|
52
|
-
DATA_ATTRIBUTES = [
|
|
53
|
-
:method,
|
|
54
|
-
:remote,
|
|
55
|
-
:confirm
|
|
56
|
-
]
|
|
57
|
-
|
|
58
|
-
##
|
|
59
|
-
# A html_safe newline string to avoid allocating a new on each
|
|
60
|
-
# concatenation.
|
|
61
|
-
#
|
|
62
|
-
NEWLINE = "\n".html_safe.freeze
|
|
63
|
-
|
|
64
|
-
##
|
|
65
|
-
# Creates an HTML tag with given name, content, and options.
|
|
66
|
-
#
|
|
67
|
-
# @overload content_tag(name, content, options = nil)
|
|
68
|
-
# @param [Symbol] name
|
|
69
|
-
# The name of the HTML tag to create.
|
|
70
|
-
# @param [String] content
|
|
71
|
-
# The content inside of the tag.
|
|
72
|
-
# @param [Hash] options
|
|
73
|
-
# The HTML options to include in this tag.
|
|
74
|
-
#
|
|
75
|
-
# @overload content_tag(name, options = nil, &block)
|
|
76
|
-
# @param [Symbol] name
|
|
77
|
-
# The name of the HTML tag to create.
|
|
78
|
-
# @param [Hash] options
|
|
79
|
-
# The HTML options to include in this tag.
|
|
80
|
-
# @param [Proc] block
|
|
81
|
-
# The block returning HTML content.
|
|
82
|
-
#
|
|
83
|
-
# @macro [new] global_html_attributes
|
|
84
|
-
# @option options [String] :id
|
|
85
|
-
# Specifies a unique identifier for the element.
|
|
86
|
-
# @option options [String] :class
|
|
87
|
-
# Specifies the stylesheet class of the element.
|
|
88
|
-
# @option options [String] :title
|
|
89
|
-
# Specifies the title for the element.
|
|
90
|
-
# @option options [String] :accesskey
|
|
91
|
-
# Specifies a shortcut key to access the element.
|
|
92
|
-
# @option options [Symbol] :dropzone
|
|
93
|
-
# Specifies what happens when dragged items are dropped on the element. (:copy, :link, :move)
|
|
94
|
-
# @option options [Boolean] :hidden
|
|
95
|
-
# Specifies whether or not the element is hidden from view.
|
|
96
|
-
# @option options [Boolean] :draggable
|
|
97
|
-
# Specifies whether or not the element is draggable. (true, false, :auto)
|
|
98
|
-
# @option options [Boolean] :contenteditable
|
|
99
|
-
# Specifies whether or not the element is editable.
|
|
100
|
-
#
|
|
101
|
-
# @return [String]
|
|
102
|
-
# Generated HTML with specified +options+.
|
|
103
|
-
#
|
|
104
|
-
# @example
|
|
105
|
-
# content_tag(:p, 'Hello World', :class => 'light')
|
|
106
|
-
#
|
|
107
|
-
# # => <p class="light">
|
|
108
|
-
# # => Hello World
|
|
109
|
-
# # => </p>
|
|
110
|
-
#
|
|
111
|
-
# content_tag(:p, :class => 'dark') do
|
|
112
|
-
# link_to 'Padrino', 'http://www.padrinorb.com'
|
|
113
|
-
# end
|
|
114
|
-
#
|
|
115
|
-
# # => <p class="dark">
|
|
116
|
-
# # => <a href="http://www.padrinorb.com">Padrino</a>
|
|
117
|
-
# # => </p>
|
|
118
|
-
#
|
|
119
|
-
def content_tag(name, content = nil, options = nil, &block)
|
|
120
|
-
if block_given?
|
|
121
|
-
options = content if content.is_a?(Hash)
|
|
122
|
-
content = capture_html(&block)
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
options = parse_data_options(name, options)
|
|
126
|
-
attributes = tag_attributes(options)
|
|
127
|
-
output = ActiveSupport::SafeBuffer.new
|
|
128
|
-
output.safe_concat "<#{name}#{attributes}>"
|
|
129
|
-
if content.respond_to?(:each) && !content.is_a?(String)
|
|
130
|
-
content.each { |c| output.concat c; output.safe_concat NEWLINE }
|
|
131
|
-
else
|
|
132
|
-
output.concat content
|
|
133
|
-
end
|
|
134
|
-
output.safe_concat "</#{name}>"
|
|
135
|
-
|
|
136
|
-
block_is_template?(block) ? concat_content(output) : output
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
##
|
|
140
|
-
# Like #content_tag, but assumes its input to be safe and doesn't
|
|
141
|
-
# escape. It also returns safe HTML.
|
|
142
|
-
#
|
|
143
|
-
# @see #content_tag
|
|
144
|
-
#
|
|
145
|
-
def safe_content_tag(name, content = nil, options = nil, &block)
|
|
146
|
-
mark_safe(content_tag(name, mark_safe(content), options, &block))
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
##
|
|
150
|
-
# Creates an HTML input field with the given type and options.
|
|
151
|
-
#
|
|
152
|
-
# @param [Symbol] type
|
|
153
|
-
# The type of input to create.
|
|
154
|
-
# @param [Hash] options
|
|
155
|
-
# The HTML options to include in this input.
|
|
156
|
-
#
|
|
157
|
-
# @option options [String] :id
|
|
158
|
-
# Specifies a unique identifier for the input.
|
|
159
|
-
# @option options [String] :class
|
|
160
|
-
# Specifies the stylesheet class of the input.
|
|
161
|
-
# @option options [String] :name
|
|
162
|
-
# Specifies the name of the input.
|
|
163
|
-
# @option options [String] :accesskey
|
|
164
|
-
# Specifies a shortcut key to access the input.
|
|
165
|
-
# @option options [Integer] :tabindex
|
|
166
|
-
# Specifies the tab order of the input.
|
|
167
|
-
# @option options [Boolean] :hidden
|
|
168
|
-
# Specifies whether or not the input is hidden from view.
|
|
169
|
-
# @option options [Boolean] :spellcheck
|
|
170
|
-
# Specifies whether or not the input should have it's spelling and grammar checked for errors.
|
|
171
|
-
# @option options [Boolean] :draggable
|
|
172
|
-
# Specifies whether or not the input is draggable. (true, false, :auto)
|
|
173
|
-
# @option options [String] :pattern
|
|
174
|
-
# Specifies the regular expression pattern that the input's value is checked against.
|
|
175
|
-
# @option options [Symbol] :autocomplete
|
|
176
|
-
# Specifies whether or not the input should have autocomplete enabled. (:on, :off)
|
|
177
|
-
# @option options [Boolean] :autofocus
|
|
178
|
-
# Specifies whether or not the input should automatically get focus when the page loads.
|
|
179
|
-
# @option options [Boolean] :required
|
|
180
|
-
# Specifies whether or not the input is required to be completed before the form is submitted.
|
|
181
|
-
# @option options [Boolean] :readonly
|
|
182
|
-
# Specifies whether or not the input is read only.
|
|
183
|
-
# @option options [Boolean] :disabled
|
|
184
|
-
# Specifies whether or not the input is disabled.
|
|
185
|
-
#
|
|
186
|
-
# @return [String]
|
|
187
|
-
# Generated HTML with specified +options+.
|
|
188
|
-
#
|
|
189
|
-
# @example
|
|
190
|
-
# input_tag :text, :name => 'handle'
|
|
191
|
-
# # => <input type="test" name="handle" />
|
|
192
|
-
#
|
|
193
|
-
# input_tag :password, :name => 'password', :size => 20
|
|
194
|
-
# # => <input type="password" name="password" size="20" />
|
|
195
|
-
#
|
|
196
|
-
# input_tag :text, :name => 'username', :required => true, :autofocus => true
|
|
197
|
-
# # => <input type="text" name="username" required autofocus />
|
|
198
|
-
#
|
|
199
|
-
# input_tag :number, :name => 'credit_card', :autocomplete => :off
|
|
200
|
-
# # => <input type="number" autocomplete="off" />
|
|
201
|
-
#
|
|
202
|
-
def input_tag(type, options = {})
|
|
203
|
-
tag(:input, options.reverse_merge!(:type => type))
|
|
204
|
-
end
|
|
205
|
-
|
|
206
|
-
##
|
|
207
|
-
# Creates an HTML tag with the given name and options.
|
|
208
|
-
#
|
|
209
|
-
# @param [Symbol] name
|
|
210
|
-
# The name of the HTML tag to create.
|
|
211
|
-
# @param [Hash] options
|
|
212
|
-
# The HTML options to include in this tag.
|
|
213
|
-
#
|
|
214
|
-
# @macro global_html_attributes
|
|
215
|
-
#
|
|
216
|
-
# @return [String]
|
|
217
|
-
# Generated HTML with specified +options+.
|
|
218
|
-
#
|
|
219
|
-
# @example
|
|
220
|
-
# tag :hr, :class => 'dotted'
|
|
221
|
-
# # => <hr class="dotted" />
|
|
222
|
-
#
|
|
223
|
-
# tag :input, :name => 'username', :type => :text
|
|
224
|
-
# # => <input name="username" type="text" />
|
|
225
|
-
#
|
|
226
|
-
# tag :img, :src => 'images/pony.jpg', :alt => 'My Little Pony'
|
|
227
|
-
# # => <img src="images/pony.jpg" alt="My Little Pony" />
|
|
228
|
-
#
|
|
229
|
-
# tag :img, :src => 'sinatra.jpg, :data => { :nsfw => false, :geo => [34.087, -118.407] }
|
|
230
|
-
# # => <img src="sinatra.jpg" data-nsfw="false" data-geo="34.087 -118.407" />
|
|
231
|
-
#
|
|
232
|
-
def tag(name, options = nil, open = false)
|
|
233
|
-
options = parse_data_options(name, options)
|
|
234
|
-
attributes = tag_attributes(options)
|
|
235
|
-
"<#{name}#{attributes}#{open ? '>' : ' />'}".html_safe
|
|
236
|
-
end
|
|
237
|
-
|
|
238
|
-
private
|
|
239
|
-
##
|
|
240
|
-
# Returns a compiled list of HTML attributes.
|
|
241
|
-
#
|
|
242
|
-
def tag_attributes(options)
|
|
243
|
-
return '' if options.nil?
|
|
244
|
-
attributes = options.map do |k, v|
|
|
245
|
-
next if v.nil? || v == false
|
|
246
|
-
if v.is_a?(Hash)
|
|
247
|
-
nested_values(k, v)
|
|
248
|
-
elsif BOOLEAN_ATTRIBUTES.include?(k)
|
|
249
|
-
%(#{k}="#{k}")
|
|
250
|
-
else
|
|
251
|
-
%(#{k}="#{escape_value(v)}")
|
|
252
|
-
end
|
|
253
|
-
end.compact
|
|
254
|
-
attributes.empty? ? '' : " #{attributes * ' '}"
|
|
255
|
-
end
|
|
256
|
-
|
|
257
|
-
##
|
|
258
|
-
# Escape tag values to their HTML/XML entities.
|
|
259
|
-
#
|
|
260
|
-
def escape_value(string)
|
|
261
|
-
string.to_s.gsub(ESCAPE_REGEXP) { |c| ESCAPE_VALUES[c] }
|
|
262
|
-
end
|
|
263
|
-
|
|
264
|
-
##
|
|
265
|
-
# Iterate through nested values.
|
|
266
|
-
#
|
|
267
|
-
def nested_values(attribute, hash)
|
|
268
|
-
hash.map do |k, v|
|
|
269
|
-
if v.is_a?(Hash)
|
|
270
|
-
nested_values("#{attribute}-#{k.to_s.dasherize}", v)
|
|
271
|
-
else
|
|
272
|
-
%(#{attribute}-#{k.to_s.dasherize}="#{escape_value(v)}")
|
|
273
|
-
end
|
|
274
|
-
end * ' '
|
|
275
|
-
end
|
|
276
|
-
|
|
277
|
-
##
|
|
278
|
-
# Parses custom data attributes.
|
|
279
|
-
#
|
|
280
|
-
def parse_data_options(tag, options)
|
|
281
|
-
return if options.nil?
|
|
282
|
-
parsed_options = options.dup
|
|
283
|
-
options.each do |k, v|
|
|
284
|
-
next if !DATA_ATTRIBUTES.include?(k) || (tag.to_s == 'form' && k == :method)
|
|
285
|
-
parsed_options["data-#{k}"] = parsed_options.delete(k)
|
|
286
|
-
parsed_options[:rel] = 'nofollow' if k == :method
|
|
287
|
-
end
|
|
288
|
-
parsed_options
|
|
289
|
-
end
|
|
290
|
-
end
|
|
291
|
-
end
|
|
292
|
-
end
|