middleman-core 3.0.0.alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +5 -0
- data/bin/middleman +52 -0
- data/features/3rd_party_cli.feature +5 -0
- data/features/asset_host.feature +7 -0
- data/features/auto_layout.feature +36 -0
- data/features/automatic_image_sizes.feature +16 -0
- data/features/builder.feature +50 -0
- data/features/chained_templates.feature +19 -0
- data/features/clean_build.feature +31 -0
- data/features/cli.feature +120 -0
- data/features/content_for.feature +6 -0
- data/features/current_page_request_path_backwards.feature +6 -0
- data/features/custom_layout_engines.feature +8 -0
- data/features/custom_layouts.feature +44 -0
- data/features/data.feature +22 -0
- data/features/directory_index.feature +36 -0
- data/features/dynamic_pages.feature +95 -0
- data/features/feature_params.feature +6 -0
- data/features/former_padrino_helpers.feature +10 -0
- data/features/front-matter.feature +35 -0
- data/features/helpers_auto_javascript_include_tag.feature +27 -0
- data/features/helpers_auto_stylesheet_link_tag.feature +27 -0
- data/features/helpers_external.feature +6 -0
- data/features/helpers_lorem.feature +6 -0
- data/features/helpers_page_classes.feature +17 -0
- data/features/instance_vars.feature +20 -0
- data/features/mount_rack.feature +8 -0
- data/features/nested_layouts.feature +24 -0
- data/features/partials.feature +41 -0
- data/features/preview_changes.feature +18 -0
- data/features/sitemap_traversal.features +73 -0
- data/features/static_server.feature +6 -0
- data/features/step_definitions/page_layout_steps.rb +15 -0
- data/features/support/env.rb +3 -0
- data/features/wildcard_page_helper.feature +19 -0
- data/fixtures/3rd-party-command/config.rb +10 -0
- data/fixtures/asset-host-app/config.rb +6 -0
- data/fixtures/asset-host-app/source/.htaccess +1 -0
- data/fixtures/asset-host-app/source/asset_host.html.erb +1 -0
- data/fixtures/asset-host-app/source/images/blank.gif +0 -0
- data/fixtures/auto-css-app/config.rb +11 -0
- data/fixtures/auto-css-app/source/auto-css.html.erb +1 -0
- data/fixtures/auto-css-app/source/auto-css/auto-css.html.erb +1 -0
- data/fixtures/auto-css-app/source/auto-css/index.html.erb +1 -0
- data/fixtures/auto-css-app/source/auto-css/sub/auto-css.html.erb +1 -0
- data/fixtures/auto-css-app/source/stylesheets/auto-css.css +3 -0
- data/fixtures/auto-css-app/source/stylesheets/auto-css/auto-css.css +3 -0
- data/fixtures/auto-css-app/source/stylesheets/auto-css/index.css +0 -0
- data/fixtures/auto-css-app/source/stylesheets/auto-css/sub/auto-css.css +3 -0
- data/fixtures/auto-js-app/config.rb +11 -0
- data/fixtures/auto-js-app/source/auto-js.html.erb +1 -0
- data/fixtures/auto-js-app/source/auto-js/auto-js.html.erb +1 -0
- data/fixtures/auto-js-app/source/auto-js/index.html.erb +1 -0
- data/fixtures/auto-js-app/source/auto-js/sub/auto-js.html.erb +1 -0
- data/fixtures/auto-js-app/source/javascripts/auto-js.js +1 -0
- data/fixtures/auto-js-app/source/javascripts/auto-js/auto-js.js +1 -0
- data/fixtures/auto-js-app/source/javascripts/auto-js/index.js +1 -0
- data/fixtures/auto-js-app/source/javascripts/auto-js/sub/auto-js.js +1 -0
- data/fixtures/automatic-image-size-app/config.rb +0 -0
- data/fixtures/automatic-image-size-app/source/auto-image-sizes.html.erb +1 -0
- data/fixtures/automatic-image-size-app/source/images/blank.gif +0 -0
- data/fixtures/basic-data-app/config.rb +4 -0
- data/fixtures/basic-data-app/data/test.yml +4 -0
- data/fixtures/basic-data-app/data/test2.json +4 -0
- data/fixtures/basic-data-app/source/data.html.erb +1 -0
- data/fixtures/basic-data-app/source/data3.html.erb +1 -0
- data/fixtures/build-with-errors-app/config.rb +1 -0
- data/fixtures/build-with-errors-app/source/index.html.erb +1 -0
- data/fixtures/chained-app/config.rb +0 -0
- data/fixtures/chained-app/data/article.yml +2 -0
- data/fixtures/chained-app/source/index.html.str.erb +8 -0
- data/fixtures/clean-app/config-complications.rb +11 -0
- data/fixtures/clean-app/config-empty.rb +0 -0
- data/fixtures/clean-app/config.rb +11 -0
- data/fixtures/clean-app/source/index.html.erb +1 -0
- data/fixtures/clean-app/source/layout.erb +9 -0
- data/fixtures/clean-app/source/layouts/custom.erb +8 -0
- data/fixtures/clean-app/source/real.html +1 -0
- data/fixtures/clean-app/source/real/index.html.erb +5 -0
- data/fixtures/clean-app/source/should_be_ignored.html +1 -0
- data/fixtures/clean-app/source/should_be_ignored2.html +1 -0
- data/fixtures/clean-app/source/should_be_ignored3.html +1 -0
- data/fixtures/clean-app/source/static.html +1 -0
- data/fixtures/clean-dir-app/config.rb +1 -0
- data/fixtures/clean-dir-app/source/about.html +1 -0
- data/fixtures/content-for-app/config.rb +3 -0
- data/fixtures/content-for-app/source/content_for_erb.html.erb +5 -0
- data/fixtures/content-for-app/source/layouts/content_for.erb +4 -0
- data/fixtures/current-page-app/config.rb +3 -0
- data/fixtures/current-page-app/source/request-path.html.erb +1 -0
- data/fixtures/custom-layout-app/config.rb +1 -0
- data/fixtures/custom-layout-app/source/index.html.erb +1 -0
- data/fixtures/custom-layout-app/source/layout.str +9 -0
- data/fixtures/custom-layout-app2/config.rb +0 -0
- data/fixtures/custom-layout-app2/source/custom-layout-dir/index.html.erb +1 -0
- data/fixtures/custom-layout-app2/source/custom-layout.html.erb +1 -0
- data/fixtures/custom-layout-app2/source/layouts/custom.erb +8 -0
- data/fixtures/data-app/config.rb +3 -0
- data/fixtures/data-app/data/pages.yml +6 -0
- data/fixtures/data-app/source/index.html.erb +1 -0
- data/fixtures/data-app/source/layout.erb +5 -0
- data/fixtures/different-engine-layout/config.rb +0 -0
- data/fixtures/different-engine-layout/source/index.html.str +1 -0
- data/fixtures/different-engine-layout/source/layout.erb +9 -0
- data/fixtures/different-engine-partial/config.rb +0 -0
- data/fixtures/different-engine-partial/source/index.html.erb +1 -0
- data/fixtures/different-engine-partial/source/layouts/layout.erb +7 -0
- data/fixtures/different-engine-partial/source/shared/_footer.str +1 -0
- data/fixtures/different-engine-partial/source/shared/_header.erb +1 -0
- data/fixtures/dynamic-pages-app/config.rb +29 -0
- data/fixtures/dynamic-pages-app/source/real.html +1 -0
- data/fixtures/dynamic-pages-app/source/real/index.html.erb +5 -0
- data/fixtures/dynamic-pages-app/source/should_be_ignored.html +1 -0
- data/fixtures/dynamic-pages-app/source/should_be_ignored2.html +1 -0
- data/fixtures/dynamic-pages-app/source/should_be_ignored3.html +1 -0
- data/fixtures/dynamic-pages-app/source/should_be_ignored4.html +1 -0
- data/fixtures/dynamic-pages-app/source/should_be_ignored5.html +1 -0
- data/fixtures/dynamic-pages-app/source/should_be_ignored6.html +1 -0
- data/fixtures/dynamic-pages-app/source/should_be_ignored7.html +1 -0
- data/fixtures/dynamic-pages-app/source/should_be_ignored8.html +1 -0
- data/fixtures/empty-app/not-config.rb +0 -0
- data/fixtures/engine-matching-layout/config.rb +0 -0
- data/fixtures/engine-matching-layout/source/index.html.erb +1 -0
- data/fixtures/engine-matching-layout/source/layout.erb +9 -0
- data/fixtures/external-helpers/config.rb +4 -0
- data/fixtures/external-helpers/lib/hello_helper.rb +5 -0
- data/fixtures/external-helpers/source/index.html.erb +1 -0
- data/fixtures/feature-params-app/config.rb +12 -0
- data/fixtures/feature-params-app/source/index.html.erb +3 -0
- data/fixtures/frontmatter-app/config.rb +0 -0
- data/fixtures/frontmatter-app/source/front-matter-2.php.erb +7 -0
- data/fixtures/frontmatter-app/source/front-matter-change.html.erb +5 -0
- data/fixtures/frontmatter-app/source/front-matter.html.erb +6 -0
- data/fixtures/generator-test/config.rb +80 -0
- data/fixtures/generator-test/source/index.html.erb +10 -0
- data/fixtures/glob-app/config.rb +1 -0
- data/fixtures/glob-app/source/index.html.erb +4 -0
- data/fixtures/glob-app/source/stylesheets/site.css.str +3 -0
- data/fixtures/ignore-app/config.rb +2 -0
- data/fixtures/ignore-app/source/articles/template.html.erb +1 -0
- data/fixtures/ignore-app/source/template.html.erb +1 -0
- data/fixtures/indexable-app/config.rb +2 -0
- data/fixtures/indexable-app/source/.htaccess +1 -0
- data/fixtures/indexable-app/source/a_folder/needs_index.html +1 -0
- data/fixtures/indexable-app/source/leave_me_alone.html +1 -0
- data/fixtures/indexable-app/source/needs_index.html +1 -0
- data/fixtures/indexable-app/source/regular/index.html +1 -0
- data/fixtures/instance-vars-app/config.rb +0 -0
- data/fixtures/instance-vars-app/source/_vartial.erb +5 -0
- data/fixtures/instance-vars-app/source/instance-var-set.html.erb +2 -0
- data/fixtures/instance-vars-app/source/layout.erb +3 -0
- data/fixtures/instance-vars-app/source/no-instance-var.html.erb +1 -0
- data/fixtures/large-build-app/config.rb +3 -0
- data/fixtures/large-build-app/source/.htaccess +1 -0
- data/fixtures/large-build-app/source/_partial.erb +1 -0
- data/fixtures/large-build-app/source/images/Child folder/regular_file(example).txt +1 -0
- data/fixtures/large-build-app/source/images/Read me (example).txt +1 -0
- data/fixtures/large-build-app/source/images/blank.gif +0 -0
- data/fixtures/large-build-app/source/index.html.erb +1 -0
- data/fixtures/large-build-app/source/layout.erb +9 -0
- data/fixtures/large-build-app/source/layouts/content_for.erb +4 -0
- data/fixtures/large-build-app/source/layouts/custom.erb +8 -0
- data/fixtures/large-build-app/source/other_layout.erb +1 -0
- data/fixtures/large-build-app/source/services/index.html.erb +1 -0
- data/fixtures/large-build-app/source/spaces in file.html.erb +1 -0
- data/fixtures/large-build-app/source/static.html +1 -0
- data/fixtures/large-build-app/source/stylesheets/static.css +2 -0
- data/fixtures/lorem-app/config.rb +0 -0
- data/fixtures/lorem-app/source/lorem.html.erb +13 -0
- data/fixtures/manual-layout-missing/config.rb +1 -0
- data/fixtures/manual-layout-missing/source/index.html.erb +1 -0
- data/fixtures/manual-layout-override/config.rb +3 -0
- data/fixtures/manual-layout-override/source/index.html.erb +1 -0
- data/fixtures/manual-layout-override/source/layouts/another.erb +9 -0
- data/fixtures/manual-layout-override/source/layouts/custom.erb +9 -0
- data/fixtures/manual-layout/config.rb +1 -0
- data/fixtures/manual-layout/source/index.html.erb +1 -0
- data/fixtures/manual-layout/source/layouts/custom.erb +9 -0
- data/fixtures/multiple-layouts/config.rb +0 -0
- data/fixtures/multiple-layouts/source/index.html.erb +1 -0
- data/fixtures/multiple-layouts/source/layout.erb +9 -0
- data/fixtures/multiple-layouts/source/layout.str +9 -0
- data/fixtures/nested-layout-app/config.rb +1 -0
- data/fixtures/nested-layout-app/source/data-one.html.erb +5 -0
- data/fixtures/nested-layout-app/source/data-two.html.erb +5 -0
- data/fixtures/nested-layout-app/source/index.html.erb +1 -0
- data/fixtures/nested-layout-app/source/layouts/inner.erb +4 -0
- data/fixtures/nested-layout-app/source/layouts/master.erb +3 -0
- data/fixtures/nested-layout-app/source/layouts/outer.erb +4 -0
- data/fixtures/no-layout/config.rb +0 -0
- data/fixtures/no-layout/source/index.html.erb +1 -0
- data/fixtures/padrino-helpers-app/config.rb +0 -0
- data/fixtures/padrino-helpers-app/source/former_padrino_test.html.erb +4 -0
- data/fixtures/page-classes-app/config.rb +4 -0
- data/fixtures/page-classes-app/source/page-classes.html.erb +1 -0
- data/fixtures/page-classes-app/source/sub1/page-classes.html.erb +1 -0
- data/fixtures/page-classes-app/source/sub1/sub2/page-classes.html.erb +1 -0
- data/fixtures/partials-app/config.rb +0 -0
- data/fixtures/partials-app/source/_locals.erb +1 -0
- data/fixtures/partials-app/source/_main.erb +1 -0
- data/fixtures/partials-app/source/_main.str +1 -0
- data/fixtures/partials-app/source/index.html.erb +3 -0
- data/fixtures/partials-app/source/locals.html.erb +1 -0
- data/fixtures/partials-app/source/second.html.str +3 -0
- data/fixtures/partials-app/source/shared/_footer.erb +1 -0
- data/fixtures/partials-app/source/shared/_header.erb +1 -0
- data/fixtures/partials-app/source/sub/_local.erb +1 -0
- data/fixtures/partials-app/source/sub/index.html.erb +3 -0
- data/fixtures/plain-app/index.html +1 -0
- data/fixtures/preview-app/config.rb +0 -0
- data/fixtures/preview-app/source/content.html.erb +1 -0
- data/fixtures/preview-app/source/layout.erb +1 -0
- data/fixtures/sinatra-app/config.rb +11 -0
- data/fixtures/sinatra-app/source/index.html.erb +5 -0
- data/fixtures/traversal-app/config.rb +7 -0
- data/fixtures/traversal-app/source/directory-indexed.html.erb +0 -0
- data/fixtures/traversal-app/source/directory-indexed/sibling.html.erb +3 -0
- data/fixtures/traversal-app/source/directory-indexed/sibling2.html.erb +3 -0
- data/fixtures/traversal-app/source/directory-indexed/sub2/index.html.erb +0 -0
- data/fixtures/traversal-app/source/directory-indexed/sub3/deep.html.erb +0 -0
- data/fixtures/traversal-app/source/index.html.erb +0 -0
- data/fixtures/traversal-app/source/layout.erb +19 -0
- data/fixtures/traversal-app/source/proxied.html.erb +0 -0
- data/fixtures/traversal-app/source/root.html.erb +0 -0
- data/fixtures/traversal-app/source/sub/index.html.erb +0 -0
- data/fixtures/traversal-app/source/sub/sibling.html.erb +0 -0
- data/fixtures/traversal-app/source/sub/sibling2.html.erb +0 -0
- data/fixtures/traversal-app/source/sub/sub2/index.html.erb +0 -0
- data/fixtures/traversal-app/source/sub/sub3/deep.html.erb +0 -0
- data/fixtures/wildcard-app/config.rb +1 -0
- data/fixtures/wildcard-app/source/admin/index.html.erb +1 -0
- data/fixtures/wildcard-app/source/admin/page.html.erb +1 -0
- data/fixtures/wildcard-app/source/index.html.erb +1 -0
- data/fixtures/wildcard-app/source/layouts/admin.erb +2 -0
- data/fixtures/wildcard-app/source/layouts/layout.erb +2 -0
- data/fixtures/wildcard-directory-index-app/config.rb +2 -0
- data/fixtures/wildcard-directory-index-app/source/admin/index.html.erb +1 -0
- data/fixtures/wildcard-directory-index-app/source/admin/page.html.erb +1 -0
- data/fixtures/wildcard-directory-index-app/source/index.html.erb +1 -0
- data/fixtures/wildcard-directory-index-app/source/layouts/admin.erb +2 -0
- data/fixtures/wildcard-directory-index-app/source/layouts/layout.erb +2 -0
- data/lib/middleman-core.rb +259 -0
- data/lib/middleman-core/base.rb +494 -0
- data/lib/middleman-core/cache.rb +57 -0
- data/lib/middleman-core/cli.rb +57 -0
- data/lib/middleman-core/cli/build.rb +229 -0
- data/lib/middleman-core/cli/init.rb +52 -0
- data/lib/middleman-core/cli/server.rb +52 -0
- data/lib/middleman-core/core_extensions/assets.rb +30 -0
- data/lib/middleman-core/core_extensions/builder.rb +49 -0
- data/lib/middleman-core/core_extensions/data.rb +193 -0
- data/lib/middleman-core/core_extensions/default_helpers.rb +119 -0
- data/lib/middleman-core/core_extensions/extensions.rb +148 -0
- data/lib/middleman-core/core_extensions/file_watcher.rb +83 -0
- data/lib/middleman-core/core_extensions/front_matter.rb +145 -0
- data/lib/middleman-core/core_extensions/rendering.rb +247 -0
- data/lib/middleman-core/core_extensions/routing.rb +69 -0
- data/lib/middleman-core/core_extensions/show_exceptions.rb +16 -0
- data/lib/middleman-core/core_extensions/sitemap.rb +72 -0
- data/lib/middleman-core/extensions/asset_host.rb +29 -0
- data/lib/middleman-core/extensions/automatic_image_sizes.rb +38 -0
- data/lib/middleman-core/extensions/automatic_image_sizes/fastimage.rb +287 -0
- data/lib/middleman-core/extensions/directory_indexes.rb +62 -0
- data/lib/middleman-core/extensions/lorem.rb +140 -0
- data/lib/middleman-core/guard.rb +148 -0
- data/lib/middleman-core/renderers/erb.rb +19 -0
- data/lib/middleman-core/sitemap/page.rb +186 -0
- data/lib/middleman-core/sitemap/store.rb +139 -0
- data/lib/middleman-core/sitemap/template.rb +82 -0
- data/lib/middleman-core/step_definitions.rb +12 -0
- data/lib/middleman-core/step_definitions/builder_steps.rb +42 -0
- data/lib/middleman-core/step_definitions/middleman_steps.rb +15 -0
- data/lib/middleman-core/step_definitions/server_steps.rb +73 -0
- data/lib/middleman-core/templates.rb +82 -0
- data/lib/middleman-core/templates/default.rb +29 -0
- data/lib/middleman-core/templates/default/source/images/background.png +0 -0
- data/lib/middleman-core/templates/default/source/images/middleman.png +0 -0
- data/lib/middleman-core/templates/default/source/index.html.erb +10 -0
- data/lib/middleman-core/templates/default/source/javascripts/all.js +1 -0
- data/lib/middleman-core/templates/default/source/layouts/layout.erb +19 -0
- data/lib/middleman-core/templates/default/source/stylesheets/_animate.scss +23 -0
- data/lib/middleman-core/templates/default/source/stylesheets/_normalize.scss +431 -0
- data/lib/middleman-core/templates/default/source/stylesheets/all.css.scss +40 -0
- data/lib/middleman-core/templates/html5.rb +25 -0
- data/lib/middleman-core/templates/html5/source/404.html +38 -0
- data/lib/middleman-core/templates/html5/source/README.md +388 -0
- data/lib/middleman-core/templates/html5/source/apple-touch-icon-114x114-precomposed.png +0 -0
- data/lib/middleman-core/templates/html5/source/apple-touch-icon-57x57-precomposed.png +0 -0
- data/lib/middleman-core/templates/html5/source/apple-touch-icon-72x72-precomposed.png +0 -0
- data/lib/middleman-core/templates/html5/source/apple-touch-icon-precomposed.png +0 -0
- data/lib/middleman-core/templates/html5/source/apple-touch-icon.png +0 -0
- data/lib/middleman-core/templates/html5/source/crossdomain.xml +25 -0
- data/lib/middleman-core/templates/html5/source/css/style.css +293 -0
- data/lib/middleman-core/templates/html5/source/favicon.ico +0 -0
- data/lib/middleman-core/templates/html5/source/humans.txt +43 -0
- data/lib/middleman-core/templates/html5/source/img/.gitignore +2 -0
- data/lib/middleman-core/templates/html5/source/index.html +79 -0
- data/lib/middleman-core/templates/html5/source/js/libs/jquery-1.6.2.js +8981 -0
- data/lib/middleman-core/templates/html5/source/js/libs/jquery-1.6.2.min.js +18 -0
- data/lib/middleman-core/templates/html5/source/js/libs/modernizr-2.0.6.min.js +4 -0
- data/lib/middleman-core/templates/html5/source/js/mylibs/.gitignore +2 -0
- data/lib/middleman-core/templates/html5/source/js/plugins.js +20 -0
- data/lib/middleman-core/templates/html5/source/js/script.js +8 -0
- data/lib/middleman-core/templates/html5/source/robots.txt +5 -0
- data/lib/middleman-core/templates/html5/source/test/index.html +31 -0
- data/lib/middleman-core/templates/html5/source/test/qunit/qunit.css +148 -0
- data/lib/middleman-core/templates/html5/source/test/qunit/qunit.js +1265 -0
- data/lib/middleman-core/templates/html5/source/test/tests.js +24 -0
- data/lib/middleman-core/templates/local.rb +21 -0
- data/lib/middleman-core/templates/mobile.rb +25 -0
- data/lib/middleman-core/templates/mobile/source/404.html +37 -0
- data/lib/middleman-core/templates/mobile/source/README.markdown +21 -0
- data/lib/middleman-core/templates/mobile/source/crossdomain.xml +25 -0
- data/lib/middleman-core/templates/mobile/source/css/style.css +315 -0
- data/lib/middleman-core/templates/mobile/source/humans.txt +43 -0
- data/lib/middleman-core/templates/mobile/source/img/h/apple-touch-icon.png +0 -0
- data/lib/middleman-core/templates/mobile/source/img/h/splash.png +0 -0
- data/lib/middleman-core/templates/mobile/source/img/l/apple-touch-icon-precomposed.png +0 -0
- data/lib/middleman-core/templates/mobile/source/img/l/apple-touch-icon.png +0 -0
- data/lib/middleman-core/templates/mobile/source/img/l/splash.png +0 -0
- data/lib/middleman-core/templates/mobile/source/img/m/apple-touch-icon.png +0 -0
- data/lib/middleman-core/templates/mobile/source/index.html +92 -0
- data/lib/middleman-core/templates/mobile/source/js/libs/modernizr-custom.js +14 -0
- data/lib/middleman-core/templates/mobile/source/js/libs/respond.min.js +7 -0
- data/lib/middleman-core/templates/mobile/source/js/mylibs/helper.js +171 -0
- data/lib/middleman-core/templates/mobile/source/js/plugins.js +20 -0
- data/lib/middleman-core/templates/mobile/source/js/script.js +0 -0
- data/lib/middleman-core/templates/mobile/source/robots.txt +4 -0
- data/lib/middleman-core/templates/mobile/source/sitemap.xml +9 -0
- data/lib/middleman-core/templates/mobile/source/test/index.html +31 -0
- data/lib/middleman-core/templates/mobile/source/test/qunit/qunit.css +148 -0
- data/lib/middleman-core/templates/mobile/source/test/qunit/qunit.js +1265 -0
- data/lib/middleman-core/templates/mobile/source/test/tests.js +21 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/Readme.PDF +0 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/aspx/aspx1.snippet +31 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/aspx/aspx2.snippet +2 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/aspx/ga.aspx +195 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/aspx/sample.aspx +44 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/jsp/ga.jsp +225 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/jsp/jsp1.snippet +35 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/jsp/jsp2.snippet +2 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/jsp/sample.jsp +51 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/php/ga.php +176 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/php/php1.snippet +30 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/php/php2.snippet +4 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/php/sample.php +44 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/pl/ga.pl +195 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/pl/perl1.snippet +27 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/pl/perl2.snippet +1 -0
- data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/pl/sample.pl +38 -0
- data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/COPYING +202 -0
- data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/bookmark_bubble.js +559 -0
- data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/example/example.html +43 -0
- data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/example/example.js +57 -0
- data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/images/arrow.png +0 -0
- data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/images/close.png +0 -0
- data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/images/generate_base64_images +33 -0
- data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/images/icon_calendar.png +0 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/README +27 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/databasefactory.js +45 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/dbworker.js +324 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/dbworker_test.html +393 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/dbworkerstarter.js +32 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapper_gears.js +595 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapper_gears_test.html +404 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapper_html5.js +203 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapper_html5_test.html +468 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapperapi.js +202 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapperapi_test.html +51 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/gears_resultset.js +71 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/gears_resultset_test.html +86 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/gears_transaction.js +196 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/gears_transaction_test.html +221 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/gearsutils.js +94 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/gearsutils_test.html +84 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/global_functions.js +72 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/simplenotes/index.html +347 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/simplenotes/simplenotes.js +503 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/simplenotes/styles.css +66 -0
- data/lib/middleman-core/templates/mobile/source/tools/wspl/simplenotes/template.js +75 -0
- data/lib/middleman-core/templates/shared/Gemfile.tt +3 -0
- data/lib/middleman-core/templates/shared/config.ru +4 -0
- data/lib/middleman-core/templates/shared/config.tt +92 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/CHANGES.textile +9 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/Gemfile +3 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/README.rdoc +107 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/Rakefile +12 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/hooks.gemspec +22 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/lib/hooks.rb +109 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/lib/hooks/inheritable_attribute.rb +33 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/test/hooks_test.rb +141 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/test/inheritable_attribute_test.rb +55 -0
- data/lib/middleman-core/vendor/hooks-0.2.0/test/test_helper.rb +10 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/.document +5 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/.gitignore +22 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/.yardopts +1 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/LICENSE.txt +20 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/README.rdoc +294 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/Rakefile +5 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/bin/padrino +9 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core.rb +167 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/application.rb +270 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/application/rendering.rb +292 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/application/routing.rb +934 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/application/showexceptions.rb +20 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/caller.rb +53 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/adapter.rb +24 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/base.rb +151 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/console.rb +20 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake.rb +24 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake_tasks.rb +59 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/command.rb +38 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/images/404.png +0 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/images/500.png +0 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/loader.rb +210 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/cs.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/da.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/de.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/en.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/es.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/fr.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/hu.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/it.yml +40 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ja.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/lv.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/nl.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/no.yml +35 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pl.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pt_br.yml +40 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ru.yml +35 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/tr.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/uk.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_cn.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_tw.yml +34 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/logger.rb +345 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/mounter.rb +224 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/reloader.rb +254 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/router.rb +98 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/server.rb +79 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/support_lite.rb +200 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/tasks.rb +21 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/version.rb +20 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/padrino-core.gemspec +38 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/apps/.components +6 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/apps/.gitignore +7 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/apps/complex.rb +32 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/apps/simple.rb +33 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/a.rb +9 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/b.rb +4 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/c.rb +1 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/e.rb +13 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/f.rb +2 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/g.rb +2 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/d.rb +4 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/helper.rb +81 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/mini_shoulda.rb +45 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_application.rb +108 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_core.rb +79 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_dependencies.rb +44 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_filters.rb +278 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_locale.rb +21 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_logger.rb +100 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_mounter.rb +177 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_reloader_complex.rb +75 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_reloader_simple.rb +98 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_rendering.rb +461 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_restful_routing.rb +33 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_router.rb +146 -0
- data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_routing.rb +1673 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/.document +5 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/.gitignore +21 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/.yardopts +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/LICENSE.txt +20 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/README.rdoc +239 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/Rakefile +5 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers.rb +58 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/asset_tag_helpers.rb +420 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/abstract_form_builder.rb +220 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/standard_form_builder.rb +43 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_helpers.rb +602 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/format_helpers.rb +381 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/cs.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/da.yml +91 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/de.yml +81 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/en.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/es.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/fr.yml +80 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/hu.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/it.yml +89 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ja.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/lv.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/nl.yml +82 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/no.yml +91 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pl.yml +95 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pt_br.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ru.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/tr.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/uk.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_cn.yml +104 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_tw.yml +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/number_helpers.rb +288 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers.rb +175 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/abstract_handler.rb +98 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/erb_handler.rb +79 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/haml_handler.rb +63 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/slim_handler.rb +81 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/render_helpers.rb +60 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/tag_helpers.rb +103 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/translation_helpers.rb +38 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/padrino-helpers.gemspec +27 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/app.rb +73 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.erb +14 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.haml +12 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.slim +13 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.erb +14 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.haml +12 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.slim +12 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.erb +11 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.haml +9 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.slim +9 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.erb +5 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.haml +5 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.slim +5 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.erb +20 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.haml +15 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.slim +15 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.erb +56 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.haml +47 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.slim +47 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.erb +56 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.haml +45 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.slim +45 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.erb +5 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.haml +4 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.slim +4 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.erb +3 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.haml +3 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.slim +3 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.erb +3 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.haml +3 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.slim +3 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_erb.erb +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_haml.haml +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_slim.slim +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.erb +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.haml +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.slim +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/app.rb +50 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engine.haml +5 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_erb.erb +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_haml.haml +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_slim.slim +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/erb/test.erb +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/explicit_engine.haml +5 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/haml/test.haml +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/_user.haml +7 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/haml_template.haml +1 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/some_template.haml +2 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/helper.rb +66 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_asset_tag_helpers.rb +320 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_form_builder.rb +996 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_form_helpers.rb +645 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_format_helpers.rb +227 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_locale.rb +20 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_number_helpers.rb +136 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_output_helpers.rb +153 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_render_helpers.rb +76 -0
- data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_tag_helpers.rb +105 -0
- data/lib/middleman-core/version.rb +13 -0
- data/middleman-core.gemspec +41 -0
- metadata +974 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--title 'Padrino Helpers Documentation' --protected
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2011 Padrino
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
= Application Extensions and Helpers (padrino-helpers)
|
|
2
|
+
|
|
3
|
+
=== Overview
|
|
4
|
+
|
|
5
|
+
This component provides a great deal of view helpers related to html markup generation.
|
|
6
|
+
There are helpers for generating tags, forms, links, images, and more. Most of the basic
|
|
7
|
+
methods should be very familiar to anyone who has used rails view helpers.
|
|
8
|
+
|
|
9
|
+
=== Output Helpers
|
|
10
|
+
|
|
11
|
+
Output helpers are a collection of important methods for managing, capturing and displaying output
|
|
12
|
+
in various ways and is used frequently to support higher-level helper functions. There are
|
|
13
|
+
three output helpers worth mentioning: <tt>content_for</tt>, <tt>capture_html</tt>, and <tt>concat_content</tt>
|
|
14
|
+
|
|
15
|
+
The content_for functionality supports capturing content and then rendering this into a different place
|
|
16
|
+
such as within a layout. One such popular example is including assets onto the layout from a template:
|
|
17
|
+
|
|
18
|
+
# app/views/site/index.erb
|
|
19
|
+
...
|
|
20
|
+
<% content_for :assets do %>
|
|
21
|
+
<%= stylesheet_link_tag 'index', 'custom' %>
|
|
22
|
+
<% end %>
|
|
23
|
+
...
|
|
24
|
+
|
|
25
|
+
Added to a template, this will capture the includes from the block and allow them to be yielded into the layout:
|
|
26
|
+
|
|
27
|
+
# app/views/layout.erb
|
|
28
|
+
...
|
|
29
|
+
<head>
|
|
30
|
+
<title>Example</title>
|
|
31
|
+
<%= stylesheet_link_tag 'style' %>
|
|
32
|
+
<%= yield_content :assets %>
|
|
33
|
+
</head>
|
|
34
|
+
...
|
|
35
|
+
|
|
36
|
+
This will automatically insert the contents of the block (in this case a stylesheet include) into the
|
|
37
|
+
location the content is yielded within the layout. You can also check if content exists for a block using
|
|
38
|
+
<tt>content_for?(true)</tt> which returns true if content exists.
|
|
39
|
+
|
|
40
|
+
The capture_html and the concat_content methods allow content to be manipulated and stored for use in building
|
|
41
|
+
additional helpers accepting blocks or displaying information in a template. One example is the use of
|
|
42
|
+
these in constructing a simplified 'form_tag' helper which accepts a block.
|
|
43
|
+
|
|
44
|
+
# form_tag '/register' do ... end
|
|
45
|
+
def form_tag(url, options={}, &block)
|
|
46
|
+
# ... truncated ...
|
|
47
|
+
inner_form_html = capture_html(&block)
|
|
48
|
+
concat_content '<form>' + inner_form_html + '</form>'
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
This will capture the template body passed into the form_tag block and then append the content
|
|
52
|
+
to the template through the use of <tt>concat_content</tt>. Note have been built to work for both haml and erb
|
|
53
|
+
templates using the same syntax.
|
|
54
|
+
|
|
55
|
+
For more information on using output helpers, check out the guide for
|
|
56
|
+
{Padrino Helpers}[http://www.padrinorb.com/guides/application-helpers].
|
|
57
|
+
|
|
58
|
+
=== Tag Helpers
|
|
59
|
+
|
|
60
|
+
Tag helpers are the basic building blocks used to construct html 'tags' within a view template. There
|
|
61
|
+
are three major functions for this category: <tt>tag</tt>, <tt>content_tag</tt> and <tt>input_tag</tt>.
|
|
62
|
+
|
|
63
|
+
The tag and content_tag are for building arbitrary html tags with a name and specified options. If
|
|
64
|
+
the tag contains 'content' within then <tt>content_tag</tt> is used. For example:
|
|
65
|
+
|
|
66
|
+
tag(:br, :style => 'clear:both') => <br style="clear:both" />
|
|
67
|
+
content_tag(:p, "demo", :class => 'light') => <p class="light">demo</p>
|
|
68
|
+
|
|
69
|
+
The input_tag is used to build tags that are related to accepting input from the user:
|
|
70
|
+
|
|
71
|
+
input_tag :text, :class => "demo" => <input type='text' class='demo' />
|
|
72
|
+
input_tag :password, :value => "secret", :class => "demo"
|
|
73
|
+
|
|
74
|
+
Note that all of these accept html options and result in returning a string containing html tags.
|
|
75
|
+
|
|
76
|
+
For more information on using tag helpers, check out the guide for
|
|
77
|
+
{Padrino Helpers}[http://www.padrinorb.com/guides/application-helpers].
|
|
78
|
+
|
|
79
|
+
=== Asset Helpers
|
|
80
|
+
|
|
81
|
+
Asset helpers are intended to help insert useful html onto a view template such as 'flash' notices,
|
|
82
|
+
hyperlinks, mail_to links, images, stylesheets and javascript. An example of their uses would be on a
|
|
83
|
+
simple view template:
|
|
84
|
+
|
|
85
|
+
# app/views/example.haml
|
|
86
|
+
...
|
|
87
|
+
%head
|
|
88
|
+
= stylesheet_link_tag 'layout'
|
|
89
|
+
= javascript_include_tag 'application'
|
|
90
|
+
%body
|
|
91
|
+
...
|
|
92
|
+
= flash_tag :notice
|
|
93
|
+
%p= link_to 'Blog', '/blog', :class => 'example'
|
|
94
|
+
%p Mail me at #{mail_to 'fake@faker.com', "Fake Email Link", :cc => "test@demo.com"}
|
|
95
|
+
%p= image_tag 'padrino.png', :width => '35', :class => 'logo'
|
|
96
|
+
|
|
97
|
+
For more information on using asset helpers, check out the guide for
|
|
98
|
+
{Padrino Helpers}[http://www.padrinorb.com/guides/application-helpers].
|
|
99
|
+
|
|
100
|
+
=== Form Helpers
|
|
101
|
+
|
|
102
|
+
Form helpers are the 'standard' form tag helpers you would come to expect when building forms. A simple
|
|
103
|
+
example of constructing a non-object form would be:
|
|
104
|
+
|
|
105
|
+
- form_tag '/destroy', :class => 'destroy-form', :method => 'delete' do
|
|
106
|
+
= flash_tag(:notice)
|
|
107
|
+
- field_set_tag do
|
|
108
|
+
%p
|
|
109
|
+
= label_tag :username, :class => 'first'
|
|
110
|
+
= text_field_tag :username, :value => params[:username]
|
|
111
|
+
%p
|
|
112
|
+
= label_tag :password, :class => 'first'
|
|
113
|
+
= password_field_tag :password, :value => params[:password]
|
|
114
|
+
%p
|
|
115
|
+
= label_tag :strategy
|
|
116
|
+
= select_tag :strategy, :options => ['delete', 'destroy'], :selected => 'delete'
|
|
117
|
+
%p
|
|
118
|
+
= check_box_tag :confirm_delete
|
|
119
|
+
- field_set_tag(:class => 'buttons') do
|
|
120
|
+
= submit_tag "Remove"
|
|
121
|
+
|
|
122
|
+
For more information on using form helpers, check out the guide for
|
|
123
|
+
{Padrino Helpers}[http://www.padrinorb.com/guides/application-helpers].
|
|
124
|
+
|
|
125
|
+
=== FormBuilders
|
|
126
|
+
|
|
127
|
+
Form builders are full-featured objects allowing the construction of complex object-based forms
|
|
128
|
+
using a simple, intuitive syntax.
|
|
129
|
+
|
|
130
|
+
A form_for using these basic fields might look like:
|
|
131
|
+
|
|
132
|
+
- form_for @user, '/register', :id => 'register' do |f|
|
|
133
|
+
= f.error_messages
|
|
134
|
+
%p
|
|
135
|
+
= f.label :username, :caption => "Nickname"
|
|
136
|
+
= f.text_field :username
|
|
137
|
+
%p
|
|
138
|
+
= f.label :email
|
|
139
|
+
= f.text_field :email
|
|
140
|
+
%p
|
|
141
|
+
= f.label :password
|
|
142
|
+
= f.password_field :password
|
|
143
|
+
%p
|
|
144
|
+
= f.label :is_admin, :caption => "Admin User?"
|
|
145
|
+
= f.check_box :is_admin
|
|
146
|
+
%p
|
|
147
|
+
= f.label :color, :caption => "Favorite Color?"
|
|
148
|
+
= f.select :color, :options => ['red', 'black']
|
|
149
|
+
%p
|
|
150
|
+
- fields_for @user.location do |location|
|
|
151
|
+
= location.text_field :street
|
|
152
|
+
= location.text_field :city
|
|
153
|
+
%p
|
|
154
|
+
= f.submit "Create", :class => 'button'
|
|
155
|
+
|
|
156
|
+
Forms can also accept nested attributes using `fields_for` within the form builder in recent releases. Check out the guide for {Padrino Helpers}[http://www.padrinorb.com/guides/application-helpers] to learn more about nested forms.
|
|
157
|
+
|
|
158
|
+
There is also an additional StandardFormBuilder which builds on the abstract fields that can be used within a form_for.
|
|
159
|
+
|
|
160
|
+
A form_for using these standard fields might be:
|
|
161
|
+
|
|
162
|
+
- form_for @user, '/register', :id => 'register' do |f|
|
|
163
|
+
= f.error_messages
|
|
164
|
+
= f.text_field_block :name, :caption => "Full name"
|
|
165
|
+
= f.text_field_block :email
|
|
166
|
+
= f.check_box_block :remember_me
|
|
167
|
+
= f.select_block :fav_color, :options => ['red', 'blue']
|
|
168
|
+
= f.password_field_block :password
|
|
169
|
+
= f.submit_block "Create", :class => 'button'
|
|
170
|
+
|
|
171
|
+
and would generate this html (with each input contained in a paragraph and containing a label):
|
|
172
|
+
|
|
173
|
+
<form id="register" action="/register" method="post">
|
|
174
|
+
<p><label for="user_name">Full name: </label><input type="text" id="user_name" name="user[name]"></p>
|
|
175
|
+
...omitted...
|
|
176
|
+
<p><input type="submit" value="Create" class="button"></p>
|
|
177
|
+
</form>
|
|
178
|
+
|
|
179
|
+
You can also easily build your own FormBuilder which allows for customized fields and behavior.
|
|
180
|
+
|
|
181
|
+
For more information on using the Padrino form builders, check out the guide for
|
|
182
|
+
{Padrino Helpers}[http://www.padrinorb.com/guides/application-helpers].
|
|
183
|
+
|
|
184
|
+
=== Format Helpers
|
|
185
|
+
|
|
186
|
+
Format helpers are several useful utilities for manipulating the format of text to achieve a goal.
|
|
187
|
+
The four format helpers are <tt>escape_html</tt>, <tt>time_ago_in_words</tt>, and <tt>js_escape_html</tt>.
|
|
188
|
+
|
|
189
|
+
The escape_html and js_escape_html function are for taking an html string and escaping certain characters.
|
|
190
|
+
<tt>escape_html</tt> will escape ampersands, brackets and quotes to their HTML/XML entities. This is useful
|
|
191
|
+
to sanitize user content before displaying this on a template. <tt>js_escape_html</tt> is used for
|
|
192
|
+
passing javascript information from a js template to a javascript function.
|
|
193
|
+
|
|
194
|
+
escape_html('<hello>&<goodbye>') # => <hello>&<goodbye>
|
|
195
|
+
|
|
196
|
+
There is also an alias for escape_html called <tt>h</tt> for even easier usage within templates.
|
|
197
|
+
|
|
198
|
+
Format helpers also includes a number of useful text manipulation functions such as <tt>simple_format</tt>,
|
|
199
|
+
<tt>pluralize</tt>, <tt>word_wrap</tt>, <tt>truncate</tt> and <tt>truncate_words</tt>.
|
|
200
|
+
|
|
201
|
+
simple_format("hello\nworld") # => "<p>hello<br/>world</p>"
|
|
202
|
+
pluralize(2, 'person') => '2 people'
|
|
203
|
+
word_wrap('Once upon a time', :line_width => 8) => "Once upon\na time"
|
|
204
|
+
truncate("Once upon a time in a world far far away", :length => 8) => "Once upon..."
|
|
205
|
+
truncate_words("Once upon a time in a world far far away", :length => 4) => "Once upon a time..."
|
|
206
|
+
|
|
207
|
+
These helpers can be invoked from any route or view within your application.
|
|
208
|
+
|
|
209
|
+
For more information on using the format helpers, check out the guide for
|
|
210
|
+
{Padrino Helpers}[http://www.padrinorb.com/guides/application-helpers].
|
|
211
|
+
|
|
212
|
+
=== Render Helpers
|
|
213
|
+
|
|
214
|
+
This component provides a number of rendering helpers making the process of displaying templates a bit easier.
|
|
215
|
+
This plugin also has support for useful additions such as partials (with support for :collection) for the templating system.
|
|
216
|
+
|
|
217
|
+
Using render plugin helpers is extremely simple. If you want to render an erb template in your view path:
|
|
218
|
+
|
|
219
|
+
render :erb, 'path/to/erb/template'
|
|
220
|
+
|
|
221
|
+
or using haml templates works just as well:
|
|
222
|
+
|
|
223
|
+
render :haml, 'path/to/haml/template'
|
|
224
|
+
|
|
225
|
+
There is also a method which renders the first view matching the path and removes the need to define an engine:
|
|
226
|
+
|
|
227
|
+
render 'path/to/any/template'
|
|
228
|
+
|
|
229
|
+
Finally, we have the all-important partials support for rendering mini-templates onto a page:
|
|
230
|
+
|
|
231
|
+
partial 'photo/_item', :object => @photo, :locals => { :foo => 'bar' }
|
|
232
|
+
partial 'photo/_item', :collection => @photos
|
|
233
|
+
|
|
234
|
+
For more information on using the render and partial helpers, check out the guide for
|
|
235
|
+
{Padrino Helpers}[http://www.padrinorb.com/guides/application-helpers].
|
|
236
|
+
|
|
237
|
+
== Copyright
|
|
238
|
+
|
|
239
|
+
Copyright (c) 2011 Padrino. See LICENSE for details.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require 'padrino-core/support_lite' unless defined?(SupportLite)
|
|
2
|
+
require 'cgi'
|
|
3
|
+
# require 'i18n'
|
|
4
|
+
require 'enumerator'
|
|
5
|
+
require 'active_support/core_ext/string/conversions' # to_date
|
|
6
|
+
require 'active_support/core_ext/float/rounding' # round
|
|
7
|
+
require 'active_support/option_merger' # with_options
|
|
8
|
+
require 'active_support/core_ext/object/with_options' # with_options
|
|
9
|
+
require 'active_support/inflector' # humanize
|
|
10
|
+
|
|
11
|
+
FileSet.glob_require('padrino-helpers/**/*.rb', __FILE__)
|
|
12
|
+
|
|
13
|
+
# Load our locales
|
|
14
|
+
# I18n.load_path += Dir["#{File.dirname(__FILE__)}/padrino-helpers/locale/*.yml"]
|
|
15
|
+
|
|
16
|
+
module Padrino
|
|
17
|
+
##
|
|
18
|
+
# This component provides a variety of view helpers related to html markup generation.
|
|
19
|
+
# There are helpers for generating tags, forms, links, images, and more.
|
|
20
|
+
# Most of the basic methods should be very familiar to anyone who has used rails view helpers.
|
|
21
|
+
#
|
|
22
|
+
module Helpers
|
|
23
|
+
class << self
|
|
24
|
+
##
|
|
25
|
+
# Registers these helpers into your application:
|
|
26
|
+
#
|
|
27
|
+
# Padrino::Helpers::OutputHelpers
|
|
28
|
+
# Padrino::Helpers::TagHelpers
|
|
29
|
+
# Padrino::Helpers::AssetTagHelpers
|
|
30
|
+
# Padrino::Helpers::FormHelpers
|
|
31
|
+
# Padrino::Helpers::FormatHelpers
|
|
32
|
+
# Padrino::Helpers::RenderHelpers
|
|
33
|
+
# Padrino::Helpers::NumberHelpers
|
|
34
|
+
#
|
|
35
|
+
# @param [Sinatra::Application] app
|
|
36
|
+
# The specified padrino application
|
|
37
|
+
#
|
|
38
|
+
# @example Register the helper module
|
|
39
|
+
# require 'padrino-helpers'
|
|
40
|
+
# class Padrino::Appliocation
|
|
41
|
+
# register Padrino::Helpers
|
|
42
|
+
# end
|
|
43
|
+
#
|
|
44
|
+
def registered(app)
|
|
45
|
+
app.set :default_builder, 'StandardFormBuilder'
|
|
46
|
+
app.helpers Padrino::Helpers::OutputHelpers
|
|
47
|
+
app.helpers Padrino::Helpers::TagHelpers
|
|
48
|
+
app.helpers Padrino::Helpers::AssetTagHelpers
|
|
49
|
+
app.helpers Padrino::Helpers::FormHelpers
|
|
50
|
+
app.helpers Padrino::Helpers::FormatHelpers
|
|
51
|
+
app.helpers Padrino::Helpers::RenderHelpers
|
|
52
|
+
app.helpers Padrino::Helpers::NumberHelpers
|
|
53
|
+
app.helpers Padrino::Helpers::TranslationHelpers
|
|
54
|
+
end
|
|
55
|
+
alias :included :registered
|
|
56
|
+
end
|
|
57
|
+
end # Helpers
|
|
58
|
+
end # Padrino
|
data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/asset_tag_helpers.rb
ADDED
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
module Padrino
|
|
2
|
+
module Helpers
|
|
3
|
+
###
|
|
4
|
+
# Helpers related to producing assets (images,stylesheets,js,etc) within templates.
|
|
5
|
+
#
|
|
6
|
+
module AssetTagHelpers
|
|
7
|
+
##
|
|
8
|
+
# Creates a div to display the flash of given type if it exists
|
|
9
|
+
#
|
|
10
|
+
# @param [Symbol] kind
|
|
11
|
+
# The type of flash to display in the tag.
|
|
12
|
+
# @param [Hash] options
|
|
13
|
+
# The html options for this section.
|
|
14
|
+
#
|
|
15
|
+
# @return [String] Flash tag html with specified +options+.
|
|
16
|
+
#
|
|
17
|
+
# @example
|
|
18
|
+
# flash_tag(:notice, :id => 'flash-notice')
|
|
19
|
+
# # Generates: <div class="notice">flash-notice</div>
|
|
20
|
+
#
|
|
21
|
+
# @api public
|
|
22
|
+
def flash_tag(kind, options={})
|
|
23
|
+
flash_text = flash[kind]
|
|
24
|
+
return '' if flash_text.blank?
|
|
25
|
+
options.reverse_merge!(:class => kind)
|
|
26
|
+
content_tag(:div, flash_text, options)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
##
|
|
30
|
+
# Creates a link element with given name, url and options
|
|
31
|
+
#
|
|
32
|
+
# @overload link_to(caption, url, options={})
|
|
33
|
+
# @param [String] caption The text caption.
|
|
34
|
+
# @param [String] url The url href.
|
|
35
|
+
# @param [Hash] options The html options.
|
|
36
|
+
# @overload link_to(url, options={}, &block)
|
|
37
|
+
# @param [String] url The url href.
|
|
38
|
+
# @param [Hash] options The html options.
|
|
39
|
+
# @param [Proc] block The link content.
|
|
40
|
+
#
|
|
41
|
+
# @option options [String] :anchor
|
|
42
|
+
# The anchor for the link (i.e #something)
|
|
43
|
+
# @option options [Boolean] :if
|
|
44
|
+
# If true, the link will appear, otherwise not;
|
|
45
|
+
# @option options [Boolean] :unless
|
|
46
|
+
# If false, the link will appear, otherwise not;
|
|
47
|
+
# @option options [Boolean] :remote
|
|
48
|
+
# If true, this link should be handled by a ajax ujs handler.
|
|
49
|
+
# @option options [String] :confirm
|
|
50
|
+
# Instructs ujs handler to alert confirm message.
|
|
51
|
+
# @option options [Symbol] :method
|
|
52
|
+
# Instructs ujs handler to use different http method (i.e :post, :delete).
|
|
53
|
+
#
|
|
54
|
+
# @return [String] Link tag html with specified +options+.
|
|
55
|
+
#
|
|
56
|
+
# @example
|
|
57
|
+
# link_to('click me', '/dashboard', :class => 'linky')
|
|
58
|
+
# link_to('click me', '/dashboard', :remote => true)
|
|
59
|
+
# link_to('click me', '/dashboard', :method => :delete)
|
|
60
|
+
# link_to('click me', :class => 'blocky') do; end
|
|
61
|
+
#
|
|
62
|
+
# Note that you can pass :+if+ or :+unless+ conditions, but if you provide :current as
|
|
63
|
+
# condition padrino return true/false if the request.path_info match the given url
|
|
64
|
+
#
|
|
65
|
+
# @api public
|
|
66
|
+
def link_to(*args, &block)
|
|
67
|
+
options = args.extract_options!
|
|
68
|
+
options = parse_js_attributes(options) # parses remote, method and confirm options
|
|
69
|
+
anchor = "##{CGI.escape options.delete(:anchor).to_s}" if options[:anchor]
|
|
70
|
+
|
|
71
|
+
if block_given?
|
|
72
|
+
url = args[0] ? args[0] + anchor.to_s : anchor || 'javascript:void(0);'
|
|
73
|
+
options.reverse_merge!(:href => url)
|
|
74
|
+
link_content = capture_html(&block)
|
|
75
|
+
return '' unless parse_conditions(url, options)
|
|
76
|
+
result_link = content_tag(:a, link_content, options)
|
|
77
|
+
block_is_template?(block) ? concat_content(result_link) : result_link
|
|
78
|
+
else
|
|
79
|
+
name, url = args[0], (args[1] ? args[1] + anchor.to_s : anchor || 'javascript:void(0);')
|
|
80
|
+
return name unless parse_conditions(url, options)
|
|
81
|
+
options.reverse_merge!(:href => url)
|
|
82
|
+
content_tag(:a, name, options)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
##
|
|
87
|
+
# Creates a form containing a single button that submits to the url.
|
|
88
|
+
#
|
|
89
|
+
# @overload button_to(name, url, options={})
|
|
90
|
+
# @param [String] caption The text caption.
|
|
91
|
+
# @param [String] url The url href.
|
|
92
|
+
# @param [Hash] options The html options.
|
|
93
|
+
# @overload button_to(name, options={}, &block)
|
|
94
|
+
# @param [String] url The url href.
|
|
95
|
+
# @param [Hash] options The html options.
|
|
96
|
+
# @param [Proc] block The button content.
|
|
97
|
+
#
|
|
98
|
+
# @option options [Boolean] :multipart
|
|
99
|
+
# If true, this form will support multipart encoding.
|
|
100
|
+
# @option options [String] :remote
|
|
101
|
+
# Instructs ujs handler to handle the submit as ajax.
|
|
102
|
+
# @option options [Symbol] :method
|
|
103
|
+
# Instructs ujs handler to use different http method (i.e :post, :delete).
|
|
104
|
+
#
|
|
105
|
+
# @return [String] Form and button html with specified +options+.
|
|
106
|
+
#
|
|
107
|
+
# @example
|
|
108
|
+
# button_to 'Delete', url(:accounts_destroy, :id => account), :method => :delete, :class => :form
|
|
109
|
+
# # Generates:
|
|
110
|
+
# # <form class="form" action="/admin/accounts/destroy/2" method="post">
|
|
111
|
+
# # <input type="hidden" value="delete" name="_method" />
|
|
112
|
+
# # <input type="submit" value="Delete" />
|
|
113
|
+
# # </form>
|
|
114
|
+
#
|
|
115
|
+
# @api public
|
|
116
|
+
def button_to(*args, &block)
|
|
117
|
+
name, url = args[0], args[1]
|
|
118
|
+
options = args.extract_options!
|
|
119
|
+
desired_method = options[:method]
|
|
120
|
+
options.delete(:method) if options[:method].to_s !~ /get|post/i
|
|
121
|
+
options.reverse_merge!(:method => 'post', :action => url)
|
|
122
|
+
options[:enctype] = "multipart/form-data" if options.delete(:multipart)
|
|
123
|
+
options["data-remote"] = "true" if options.delete(:remote)
|
|
124
|
+
inner_form_html = hidden_form_method_field(desired_method)
|
|
125
|
+
inner_form_html += block_given? ? capture_html(&block) : submit_tag(name)
|
|
126
|
+
content_tag('form', inner_form_html, options)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
##
|
|
130
|
+
# Creates a link tag that browsers and news readers can use to auto-detect an RSS or ATOM feed.
|
|
131
|
+
#
|
|
132
|
+
# @param [Symbol] mime
|
|
133
|
+
# The mime type of the feed (i.e :atom or :rss).
|
|
134
|
+
# @param [String] url
|
|
135
|
+
# The url for the feed tag to reference.
|
|
136
|
+
# @param[Hash] options
|
|
137
|
+
# The options for the feed tag.
|
|
138
|
+
# @option options [String] :rel ("alternate")
|
|
139
|
+
# Specify the relation of this link
|
|
140
|
+
# @option options [String] :type
|
|
141
|
+
# Override the auto-generated mime type
|
|
142
|
+
# @option options [String] :title
|
|
143
|
+
# Specify the title of the link, defaults to the type
|
|
144
|
+
#
|
|
145
|
+
# @return [String] Feed link html tag with specified +options+.
|
|
146
|
+
#
|
|
147
|
+
# @example
|
|
148
|
+
# feed_tag :atom, url(:blog, :posts, :format => :atom), :title => "ATOM"
|
|
149
|
+
# # Generates: <link type="application/atom+xml" rel="alternate" href="/blog/posts.atom" title="ATOM" />
|
|
150
|
+
# feed_tag :rss, url(:blog, :posts, :format => :rss)
|
|
151
|
+
# # Generates: <link type="application/rss+xml" rel="alternate" href="/blog/posts.rss" title="rss" />
|
|
152
|
+
#
|
|
153
|
+
# @api public
|
|
154
|
+
def feed_tag(mime, url, options={})
|
|
155
|
+
full_mime = (mime == :atom) ? 'application/atom+xml' : 'application/rss+xml'
|
|
156
|
+
content_tag(:link, options.reverse_merge(:rel => 'alternate', :type => full_mime, :title => mime, :href => url))
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
##
|
|
160
|
+
# Creates a mail link element with given name and caption.
|
|
161
|
+
#
|
|
162
|
+
# @param [String] email
|
|
163
|
+
# The email address for the link.
|
|
164
|
+
# @param [String] caption
|
|
165
|
+
# The caption for the link.
|
|
166
|
+
# @param [Hash] mail_options
|
|
167
|
+
# The options for the mail link. Accepts html options.
|
|
168
|
+
# @option mail_options [String] cc The cc recipients.
|
|
169
|
+
# @option mail_options [String] bcc The bcc recipients.
|
|
170
|
+
# @option mail_options [String] subject The subject line.
|
|
171
|
+
# @option mail_options [String] body The email body.
|
|
172
|
+
#
|
|
173
|
+
# @return [String] Mail link html tag with specified +options+.
|
|
174
|
+
#
|
|
175
|
+
# @example
|
|
176
|
+
# # Generates: <a href="mailto:me@demo.com">me@demo.com</a>
|
|
177
|
+
# mail_to "me@demo.com"
|
|
178
|
+
# # Generates: <a href="mailto:me@demo.com">My Email</a>
|
|
179
|
+
# mail_to "me@demo.com", "My Email"
|
|
180
|
+
#
|
|
181
|
+
# @api public
|
|
182
|
+
def mail_to(email, caption=nil, mail_options={})
|
|
183
|
+
html_options = mail_options.slice!(:cc, :bcc, :subject, :body)
|
|
184
|
+
mail_query = Rack::Utils.build_query(mail_options).gsub(/\+/, '%20').gsub('%40', '@')
|
|
185
|
+
mail_href = "mailto:#{email}"; mail_href << "?#{mail_query}" if mail_query.present?
|
|
186
|
+
link_to((caption || email), mail_href, html_options)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
##
|
|
190
|
+
# Creates a meta element with the content and given options.
|
|
191
|
+
#
|
|
192
|
+
# @param [String] content
|
|
193
|
+
# The content for the meta tag.
|
|
194
|
+
# @param [Hash] options
|
|
195
|
+
# The html options for the meta tag.
|
|
196
|
+
#
|
|
197
|
+
# @return [String] Meta html tag with specified +options+.
|
|
198
|
+
#
|
|
199
|
+
# @example
|
|
200
|
+
# # Generates: <meta name="keywords" content="weblog,news">
|
|
201
|
+
# meta_tag "weblog,news", :name => "keywords"
|
|
202
|
+
#
|
|
203
|
+
# # Generates: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
204
|
+
# meta_tag "text/html; charset=UTF-8", 'http-equiv' => "Content-Type"
|
|
205
|
+
#
|
|
206
|
+
# @api public
|
|
207
|
+
def meta_tag(content, options={})
|
|
208
|
+
options.reverse_merge!("content" => content)
|
|
209
|
+
tag(:meta, options)
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
##
|
|
213
|
+
# Generates a favicon link. looks inside images folder
|
|
214
|
+
#
|
|
215
|
+
# @param [String] source
|
|
216
|
+
# The source image path for the favicon link tag.
|
|
217
|
+
# @param [Hash] options
|
|
218
|
+
# The html options for the favicon link tag.
|
|
219
|
+
#
|
|
220
|
+
# @return [String] The favicon link html tag with specified +options+.
|
|
221
|
+
#
|
|
222
|
+
# @example
|
|
223
|
+
# favicon_tag 'favicon.png'
|
|
224
|
+
# favicon_tag 'icons/favicon.png'
|
|
225
|
+
# # or override some options
|
|
226
|
+
# favicon_tag 'favicon.png', :type => 'image/ico'
|
|
227
|
+
#
|
|
228
|
+
# @api public
|
|
229
|
+
def favicon_tag(source, options={})
|
|
230
|
+
type = File.extname(source).gsub('.','')
|
|
231
|
+
options = options.dup.reverse_merge!(:href => image_path(source), :rel => 'icon', :type => "image/#{type}")
|
|
232
|
+
tag(:link, options)
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
##
|
|
236
|
+
# Creates an image element with given url and options
|
|
237
|
+
#
|
|
238
|
+
# @param [String] url
|
|
239
|
+
# The source path for the image tag.
|
|
240
|
+
# @param [Hash] options
|
|
241
|
+
# The html options for the image tag.
|
|
242
|
+
#
|
|
243
|
+
# @return [String] Image html tag with +url+ and specified +options+.
|
|
244
|
+
#
|
|
245
|
+
# @example
|
|
246
|
+
# image_tag('icons/avatar.png')
|
|
247
|
+
#
|
|
248
|
+
# @api public
|
|
249
|
+
def image_tag(url, options={})
|
|
250
|
+
options.reverse_merge!(:src => image_path(url))
|
|
251
|
+
tag(:img, options)
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
##
|
|
255
|
+
# Returns an html script tag for each of the sources provided.
|
|
256
|
+
# You can pass in the filename without extension or a symbol and we search it in your +appname.public_folder+
|
|
257
|
+
# like app/public/stylesheets for inclusion. You can provide also a full path.
|
|
258
|
+
#
|
|
259
|
+
# @overload stylesheet_link_tag(*sources, options={})
|
|
260
|
+
# @param [Array<String>] sources Splat of css source paths
|
|
261
|
+
# @param [Hash] options The html options for the link tag
|
|
262
|
+
#
|
|
263
|
+
# @return [String] Stylesheet link html tag for +sources+ with specified +options+.
|
|
264
|
+
#
|
|
265
|
+
# @example
|
|
266
|
+
# stylesheet_link_tag 'style', 'application', 'layout'
|
|
267
|
+
#
|
|
268
|
+
# @api public
|
|
269
|
+
def stylesheet_link_tag(*sources)
|
|
270
|
+
options = sources.extract_options!.symbolize_keys
|
|
271
|
+
options.reverse_merge!(:media => 'screen', :rel => 'stylesheet', :type => 'text/css')
|
|
272
|
+
sources.flatten.map { |source|
|
|
273
|
+
tag(:link, options.reverse_merge(:href => asset_path(:css, source)))
|
|
274
|
+
}.join("\n")
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
##
|
|
278
|
+
# Returns an html script tag for each of the sources provided.
|
|
279
|
+
# You can pass in the filename without extension or a symbol and we search it in your +appname.public_folder+
|
|
280
|
+
# like app/public/javascript for inclusion. You can provide also a full path.
|
|
281
|
+
#
|
|
282
|
+
# @overload javascript_include_tag(*sources, options={})
|
|
283
|
+
# @param [Array<String>] sources Splat of js source paths
|
|
284
|
+
# @param [Hash] options The html options for the script tag
|
|
285
|
+
#
|
|
286
|
+
# @return [String] Script tag for +sources+ with specified +options+.
|
|
287
|
+
#
|
|
288
|
+
# @example
|
|
289
|
+
# javascript_include_tag 'application', :extjs
|
|
290
|
+
#
|
|
291
|
+
# @api public
|
|
292
|
+
def javascript_include_tag(*sources)
|
|
293
|
+
options = sources.extract_options!.symbolize_keys
|
|
294
|
+
options.reverse_merge!(:type => 'text/javascript', :content => "")
|
|
295
|
+
sources.flatten.map { |source|
|
|
296
|
+
tag(:script, options.reverse_merge(:src => asset_path(:js, source)))
|
|
297
|
+
}.join("\n")
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
##
|
|
301
|
+
# Returns the path to the image, either relative or absolute. We search it in your +appname.public_folder+
|
|
302
|
+
# like app/public/images for inclusion. You can provide also a full path.
|
|
303
|
+
#
|
|
304
|
+
# @param [String] src
|
|
305
|
+
# The path to the image file (relative or absolute)
|
|
306
|
+
#
|
|
307
|
+
# @return [String] Path to an image given the +kind+ and +source+.
|
|
308
|
+
#
|
|
309
|
+
# @example
|
|
310
|
+
# # Generates: /images/foo.jpg?1269008689
|
|
311
|
+
# image_path("foo.jpg")
|
|
312
|
+
#
|
|
313
|
+
# @api public
|
|
314
|
+
def image_path(src)
|
|
315
|
+
asset_path(:images, src)
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
##
|
|
319
|
+
# Returns the path to the specified asset (css or javascript)
|
|
320
|
+
#
|
|
321
|
+
# @param [String] kind
|
|
322
|
+
# The kind of asset (i.e :images, :js, :css)
|
|
323
|
+
# @param [String] source
|
|
324
|
+
# The path to the asset (relative or absolute).
|
|
325
|
+
#
|
|
326
|
+
# @return [String] Path for the asset given the +kind+ and +source+.
|
|
327
|
+
#
|
|
328
|
+
# @example
|
|
329
|
+
# # Generates: /javascripts/application.js?1269008689
|
|
330
|
+
# asset_path :js, :application
|
|
331
|
+
#
|
|
332
|
+
# # Generates: /stylesheets/application.css?1269008689
|
|
333
|
+
# asset_path :css, :application
|
|
334
|
+
#
|
|
335
|
+
# # Generates: /images/example.jpg?1269008689
|
|
336
|
+
# asset_path :images, 'example.jpg'
|
|
337
|
+
#
|
|
338
|
+
# @api semipublic
|
|
339
|
+
def asset_path(kind, source)
|
|
340
|
+
return source if source =~ /^http/
|
|
341
|
+
asset_folder = case kind
|
|
342
|
+
when :css then 'stylesheets'
|
|
343
|
+
when :js then 'javascripts'
|
|
344
|
+
else kind.to_s
|
|
345
|
+
end
|
|
346
|
+
source = source.to_s.gsub(/\s/, '%20')
|
|
347
|
+
ignore_extension = (asset_folder.to_s == kind.to_s) # don't append extension
|
|
348
|
+
source << ".#{kind}" unless ignore_extension or source =~ /\.#{kind}/
|
|
349
|
+
result_path = source if source =~ %r{^/} # absolute path
|
|
350
|
+
result_path ||= uri_root_path(asset_folder, source)
|
|
351
|
+
timestamp = asset_timestamp(result_path)
|
|
352
|
+
"#{result_path}#{timestamp}"
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
private
|
|
356
|
+
|
|
357
|
+
##
|
|
358
|
+
# Returns the uri root of the application.
|
|
359
|
+
#
|
|
360
|
+
# @example
|
|
361
|
+
# uri_root_path("/some/path") => "/base/some/path"
|
|
362
|
+
#
|
|
363
|
+
def uri_root_path(*paths)
|
|
364
|
+
root_uri = self.class.uri_root if self.class.respond_to?(:uri_root)
|
|
365
|
+
File.join(ENV['RACK_BASE_URI'].to_s, root_uri || '/', *paths)
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
##
|
|
369
|
+
# Returns the timestamp mtime for an asset
|
|
370
|
+
#
|
|
371
|
+
# @example
|
|
372
|
+
# asset_timestamp("some/path/to/file.png") => "?154543678"
|
|
373
|
+
#
|
|
374
|
+
def asset_timestamp(file_path)
|
|
375
|
+
return nil if file_path =~ /\?/ || (self.class.respond_to?(:asset_stamp) && !self.class.asset_stamp)
|
|
376
|
+
public_path = Padrino.root("public", file_path) if Padrino.respond_to?(:root)
|
|
377
|
+
stamp = Time.now.to_i unless public_path && File.exist?(public_path)
|
|
378
|
+
stamp ||= File.mtime(public_path).to_i
|
|
379
|
+
"?#{stamp}"
|
|
380
|
+
end
|
|
381
|
+
|
|
382
|
+
##
|
|
383
|
+
# Parses link_to options for given correct conditions
|
|
384
|
+
#
|
|
385
|
+
# @example
|
|
386
|
+
# parse_conditions("/some/url", :if => false) => true
|
|
387
|
+
#
|
|
388
|
+
def parse_conditions(url, options)
|
|
389
|
+
if options.has_key?(:if)
|
|
390
|
+
condition = options.delete(:if)
|
|
391
|
+
condition == :current ? url == request.path_info : condition
|
|
392
|
+
elsif condition = options.delete(:unless)
|
|
393
|
+
condition == :current ? url != request.path_info : !condition
|
|
394
|
+
else
|
|
395
|
+
true
|
|
396
|
+
end
|
|
397
|
+
end
|
|
398
|
+
|
|
399
|
+
##
|
|
400
|
+
# Parses link_to options for given js declarations (remote, method, confirm)
|
|
401
|
+
# Not destructive on options; returns updated options
|
|
402
|
+
#
|
|
403
|
+
# parse_js_attributes(:remote => true, :confirm => "test", :method => :delete)
|
|
404
|
+
# => { "data-remote" => true, "data-method" => "delete", "data-confirm" => "test" }
|
|
405
|
+
#
|
|
406
|
+
def parse_js_attributes(options)
|
|
407
|
+
options = options.dup
|
|
408
|
+
options["data-remote"] = "true" if options.delete(:remote)
|
|
409
|
+
if link_confirm = options.delete(:confirm)
|
|
410
|
+
options["data-confirm"] = link_confirm
|
|
411
|
+
end
|
|
412
|
+
if link_method = options.delete(:method)
|
|
413
|
+
options["data-method"] = link_method
|
|
414
|
+
options["rel"] = "nofollow"
|
|
415
|
+
end
|
|
416
|
+
options
|
|
417
|
+
end
|
|
418
|
+
end # AssetTagHelpers
|
|
419
|
+
end # Helpers
|
|
420
|
+
end # Padrino
|