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,22 +0,0 @@
|
|
|
1
|
-
Feature: SASS .sass-cache custom location
|
|
2
|
-
|
|
3
|
-
Scenario: Using the default location for .sass-cache folder
|
|
4
|
-
Given the Server is running at "sass-cache-path-default-app"
|
|
5
|
-
|
|
6
|
-
When I go to "/stylesheets/plain.css"
|
|
7
|
-
Then I should see "color: blue;"
|
|
8
|
-
|
|
9
|
-
# TODO::
|
|
10
|
-
# Not sure how to test this location, as the directory is stored outside of the app root
|
|
11
|
-
# during testing, but inside app root in "production"
|
|
12
|
-
|
|
13
|
-
# Then a directory named ".sass-cache" should exist
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
Scenario: Using a custom location for .sass-cache folder
|
|
17
|
-
Given the Server is running at "sass-cache-path-custom-app"
|
|
18
|
-
|
|
19
|
-
When I go to "/stylesheets/plain.css"
|
|
20
|
-
Then I should see "html, body, div, span, applet, object, iframe,"
|
|
21
|
-
|
|
22
|
-
Then a directory named "/tmp/middleman-core-custom-sass_cache_path" should exist
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
h2. 0.2.0
|
|
2
|
-
|
|
3
|
-
h3. Changes
|
|
4
|
-
* Callback blocks are now executed on the instance using @instance_exec@. If you need to access the class (former context) use @self.class@.
|
|
5
|
-
|
|
6
|
-
h2. 0.1.4
|
|
7
|
-
|
|
8
|
-
h3. Bugfixes
|
|
9
|
-
* An uninitialized @inheritable_attr@ doesn't crash since it is not cloned anymore. Note that an uncloneable attribute value still causes an exception.
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
= Hooks
|
|
2
|
-
|
|
3
|
-
<em>Generic hooks with callbacks for Ruby.</em>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
== Introduction
|
|
7
|
-
|
|
8
|
-
_Hooks_ lets you define hooks declaratively in your ruby class. You can add callbacks to your hook, which will be run as soon as _you_ run the hook!
|
|
9
|
-
|
|
10
|
-
It's almost like ActiveSupport::Callbacks but 76,6% less complex. Instead, it is not more than 60 lines of code, one method compilation, no +method_missing+ and no magic.
|
|
11
|
-
|
|
12
|
-
Also, you may pass additional arguments to your callbacks when invoking a hook.
|
|
13
|
-
|
|
14
|
-
== Example
|
|
15
|
-
|
|
16
|
-
Let's take... a cat.
|
|
17
|
-
|
|
18
|
-
require 'hooks'
|
|
19
|
-
|
|
20
|
-
class Cat
|
|
21
|
-
include Hooks
|
|
22
|
-
|
|
23
|
-
define_hook :after_dinner
|
|
24
|
-
|
|
25
|
-
Now you can add callbacks to your hook declaratively in your class.
|
|
26
|
-
|
|
27
|
-
after_dinner do
|
|
28
|
-
puts "Ice cream for #{self}!"
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
after_dinner :have_a_desert # => refers to Cat#have_a_desert
|
|
32
|
-
|
|
33
|
-
def have_a_desert
|
|
34
|
-
puts "Hell, yeah!"
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
This will run the block and <tt>#have_a_desert</tt> from above.
|
|
38
|
-
|
|
39
|
-
cat.run_hook :after_dinner
|
|
40
|
-
# => Ice cream for #<Cat:0x8df9d84>!
|
|
41
|
-
Hell, yeah!
|
|
42
|
-
|
|
43
|
-
Callback blocks and methods will be executed with instance context. Note how +self+ in the block refers to the Cat instance.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
== Inheritance
|
|
47
|
-
|
|
48
|
-
Hooks are inherited, here's a complete example to put it all together.
|
|
49
|
-
|
|
50
|
-
class Garfield < Cat
|
|
51
|
-
|
|
52
|
-
after_dinner :want_some_more
|
|
53
|
-
|
|
54
|
-
def want_some_more
|
|
55
|
-
puts "Is that all?"
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
Garfield.new.run_hook :after_dinner
|
|
61
|
-
# => Ice cream for #<Cat:0x8df9d84>!
|
|
62
|
-
Hell, yeah!
|
|
63
|
-
Is that all?
|
|
64
|
-
|
|
65
|
-
Note how the callbacks are invoked in the order they were inherited.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
== Options for Callbacks
|
|
69
|
-
|
|
70
|
-
You're free to pass any number of arguments to #run_callback, those will be passed to the callbacks.
|
|
71
|
-
|
|
72
|
-
cat.run_hook :before_dinner, cat, Time.now
|
|
73
|
-
|
|
74
|
-
The callbacks should be ready for receiving parameters.
|
|
75
|
-
|
|
76
|
-
before_dinner :wash_pawns
|
|
77
|
-
before_dinner do |who, when|
|
|
78
|
-
...
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def wash_pawns(who, when)
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
Not sure why a cat should have ice cream for dinner. Beside that, I was tempted naming this gem _hooker_.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
== Installation
|
|
88
|
-
|
|
89
|
-
gem install hooks
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
== Anybody using it?
|
|
93
|
-
|
|
94
|
-
* Hooks is already used in [Apotomo:http://github.com/apotonick/apotomo], a hot widget framework for Rails. Look at +lib/apotomo/widget.rb+ for examples and into +lib/apotomo/tree_node.rb+ to learn how modules-driven code might benefit from hooks.
|
|
95
|
-
|
|
96
|
-
== Similar libraries
|
|
97
|
-
|
|
98
|
-
* http://github.com/nakajima/aspectory
|
|
99
|
-
* http://github.com/auser/backcall
|
|
100
|
-
* http://github.com/mmcgrana/simple_callbacks
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
== License
|
|
104
|
-
|
|
105
|
-
Copyright (c) 2010, Nick Sutterer
|
|
106
|
-
|
|
107
|
-
Released under the MIT License.
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
require 'rake'
|
|
2
|
-
require 'rake/testtask'
|
|
3
|
-
|
|
4
|
-
desc 'Default: run unit tests.'
|
|
5
|
-
task :default => :test
|
|
6
|
-
|
|
7
|
-
desc 'Test the hooks plugin.'
|
|
8
|
-
Rake::TestTask.new(:test) do |test|
|
|
9
|
-
test.libs << 'test'
|
|
10
|
-
test.test_files = FileList['test/*_test.rb']
|
|
11
|
-
test.verbose = true
|
|
12
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
lib = File.expand_path('../lib/', __FILE__)
|
|
2
|
-
$:.unshift lib unless $:.include?(lib)
|
|
3
|
-
|
|
4
|
-
require 'hooks'
|
|
5
|
-
|
|
6
|
-
Gem::Specification.new do |s|
|
|
7
|
-
s.name = "hooks"
|
|
8
|
-
s.version = Hooks::VERSION
|
|
9
|
-
s.platform = Gem::Platform::RUBY
|
|
10
|
-
s.authors = ["Nick Sutterer"]
|
|
11
|
-
s.email = ["apotonick@gmail.com"]
|
|
12
|
-
s.homepage = "http://nicksda.apotomo.de/tag/hooks"
|
|
13
|
-
s.summary = %q{Generic hooks with callbacks for Ruby.}
|
|
14
|
-
s.description = %q{Declaratively define hooks, add callbacks and run them with the options you like.}
|
|
15
|
-
|
|
16
|
-
s.files = `git ls-files`.split("\n")
|
|
17
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
18
|
-
s.require_paths = ["lib"]
|
|
19
|
-
|
|
20
|
-
s.add_development_dependency "shoulda"
|
|
21
|
-
s.add_development_dependency "rake"
|
|
22
|
-
end
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__), "hooks/inheritable_attribute")
|
|
2
|
-
|
|
3
|
-
# Almost like ActiveSupport::Callbacks but 76,6% less complex.
|
|
4
|
-
#
|
|
5
|
-
# Example:
|
|
6
|
-
#
|
|
7
|
-
# class CatWidget < Apotomo::Widget
|
|
8
|
-
# define_hook :after_dinner
|
|
9
|
-
#
|
|
10
|
-
# Now you can add callbacks to your hook declaratively in your class.
|
|
11
|
-
#
|
|
12
|
-
# after_dinner do puts "Ice cream!" end
|
|
13
|
-
# after_dinner :have_a_desert # => refers to CatWidget#have_a_desert
|
|
14
|
-
#
|
|
15
|
-
# Running the callbacks happens on instances. It will run the block and #have_a_desert from above.
|
|
16
|
-
#
|
|
17
|
-
# cat.run_hook :after_dinner
|
|
18
|
-
module Hooks
|
|
19
|
-
VERSION = "0.2.0"
|
|
20
|
-
|
|
21
|
-
def self.included(base)
|
|
22
|
-
base.extend InheritableAttribute
|
|
23
|
-
base.extend ClassMethods
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
module ClassMethods
|
|
27
|
-
def define_hook(name)
|
|
28
|
-
accessor_name = "_#{name}_callbacks"
|
|
29
|
-
|
|
30
|
-
setup_hook_accessors(accessor_name)
|
|
31
|
-
define_hook_writer(name, accessor_name)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# Like Hooks#run_hook but for the class. Note that +:callbacks+ must be class methods.
|
|
35
|
-
#
|
|
36
|
-
# Example:
|
|
37
|
-
#
|
|
38
|
-
# class Cat
|
|
39
|
-
# after_eight :grab_a_beer
|
|
40
|
-
#
|
|
41
|
-
# def self.grab_a_beer(*) # and so on...
|
|
42
|
-
#
|
|
43
|
-
# where <tt>Cat.run_hook :after_eight</tt> will call the class method +grab_a_beer+.
|
|
44
|
-
def run_hook(name, *args)
|
|
45
|
-
run_hook_for(name, self, *args)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def run_hook_for(name, scope, *args)
|
|
49
|
-
callbacks_for_hook(name).each do |callback|
|
|
50
|
-
if callback.kind_of? Symbol
|
|
51
|
-
scope.send(callback, *args)
|
|
52
|
-
else
|
|
53
|
-
scope.instance_exec(*args, &callback)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
# Returns the callbacks for +name+. Handy if you want to run the callbacks yourself, say when
|
|
59
|
-
# they should be executed in another context.
|
|
60
|
-
#
|
|
61
|
-
# Example:
|
|
62
|
-
#
|
|
63
|
-
# def initialize
|
|
64
|
-
# self.class.callbacks_for_hook(:after_eight).each do |callback|
|
|
65
|
-
# instance_exec(self, &callback)
|
|
66
|
-
# end
|
|
67
|
-
#
|
|
68
|
-
# would run callbacks in the object _instance_ context, passing +self+ as block parameter.
|
|
69
|
-
def callbacks_for_hook(name)
|
|
70
|
-
send("_#{name}_callbacks")
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
private
|
|
74
|
-
|
|
75
|
-
def define_hook_writer(hook, accessor_name)
|
|
76
|
-
self.send(:define_method, hook.to_sym) do |&block|
|
|
77
|
-
if self.class.respond_to?(hook)
|
|
78
|
-
self.class.send(hook.to_sym, &block)
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
instance_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
|
|
83
|
-
def #{hook}(method=nil, &block)
|
|
84
|
-
#{accessor_name} << (block || method)
|
|
85
|
-
end
|
|
86
|
-
RUBY_EVAL
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def setup_hook_accessors(accessor_name)
|
|
90
|
-
inheritable_attr(accessor_name)
|
|
91
|
-
send("#{accessor_name}=", []) # initialize ivar.
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# Runs the callbacks (method/block) for the specified hook +name+. Additional arguments will
|
|
96
|
-
# be passed to the callback.
|
|
97
|
-
#
|
|
98
|
-
# Example:
|
|
99
|
-
#
|
|
100
|
-
# cat.run_hook :after_dinner, "i want ice cream!"
|
|
101
|
-
#
|
|
102
|
-
# will invoke the callbacks like
|
|
103
|
-
#
|
|
104
|
-
# desert("i want ice cream!")
|
|
105
|
-
# block.call("i want ice cream!")
|
|
106
|
-
def run_hook(name, *args)
|
|
107
|
-
self.class.run_hook_for(name, self, *args)
|
|
108
|
-
end
|
|
109
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
module Hooks
|
|
2
|
-
module InheritableAttribute
|
|
3
|
-
# Creates an inheritable attribute with accessors in the singleton class. Derived classes inherit the
|
|
4
|
-
# attributes. This is especially helpful with arrays or hashes that are extended in the inheritance
|
|
5
|
-
# chain. Note that you have to initialize the inheritable attribute.
|
|
6
|
-
#
|
|
7
|
-
# Example:
|
|
8
|
-
#
|
|
9
|
-
# class Cat
|
|
10
|
-
# inheritable_attr :drinks
|
|
11
|
-
# self.drinks = ["Becks"]
|
|
12
|
-
#
|
|
13
|
-
# class Garfield < Cat
|
|
14
|
-
# self.drinks << "Fireman's 4"
|
|
15
|
-
#
|
|
16
|
-
# and then, later
|
|
17
|
-
#
|
|
18
|
-
# Cat.drinks #=> ["Becks"]
|
|
19
|
-
# Garfield.drinks #=> ["Becks", "Fireman's 4"]
|
|
20
|
-
def inheritable_attr(name)
|
|
21
|
-
instance_eval %Q{
|
|
22
|
-
def #{name}=(v)
|
|
23
|
-
@#{name} = v
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def #{name}
|
|
27
|
-
return @#{name} unless superclass.respond_to?(:#{name}) and value = superclass.#{name}
|
|
28
|
-
@#{name} ||= value.clone # only do this once.
|
|
29
|
-
end
|
|
30
|
-
}
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
|
|
3
|
-
class HooksTest < Test::Unit::TestCase
|
|
4
|
-
class TestClass
|
|
5
|
-
include Hooks
|
|
6
|
-
|
|
7
|
-
def executed
|
|
8
|
-
@executed ||= [];
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
context "Hooks.define_hook" do
|
|
14
|
-
setup do
|
|
15
|
-
@klass = Class.new(TestClass)
|
|
16
|
-
|
|
17
|
-
@mum = @klass.new
|
|
18
|
-
@mum.class.define_hook :after_eight
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
should "provide accessors to the stored callbacks" do
|
|
22
|
-
assert_equal [], @klass._after_eight_callbacks
|
|
23
|
-
@klass._after_eight_callbacks << :dine
|
|
24
|
-
assert_equal [:dine], @klass._after_eight_callbacks
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
should "respond to Class.callbacks_for_hook" do
|
|
28
|
-
assert_equal [], @klass.callbacks_for_hook(:after_eight)
|
|
29
|
-
@klass.after_eight :dine
|
|
30
|
-
assert_equal [:dine], @klass.callbacks_for_hook(:after_eight)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
context "creates a public writer for the hook that" do
|
|
34
|
-
should "accepts method names" do
|
|
35
|
-
@klass.after_eight :dine
|
|
36
|
-
assert_equal [:dine], @klass._after_eight_callbacks
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
should "accepts blocks" do
|
|
40
|
-
@klass.after_eight do true; end
|
|
41
|
-
assert @klass._after_eight_callbacks.first.kind_of? Proc
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
should "be inherited" do
|
|
45
|
-
@klass.after_eight :dine
|
|
46
|
-
subklass = Class.new(@klass)
|
|
47
|
-
|
|
48
|
-
assert_equal [:dine], subklass._after_eight_callbacks
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
context "Hooks#run_hook" do
|
|
53
|
-
should "run without parameters" do
|
|
54
|
-
@mum.instance_eval do
|
|
55
|
-
def a; executed << :a; nil; end
|
|
56
|
-
def b; executed << :b; end
|
|
57
|
-
|
|
58
|
-
self.class.after_eight :b
|
|
59
|
-
self.class.after_eight :a
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
@mum.run_hook(:after_eight)
|
|
63
|
-
|
|
64
|
-
assert_equal [:b, :a], @mum.executed
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
should "accept arbitrary parameters" do
|
|
68
|
-
@mum.instance_eval do
|
|
69
|
-
def a(me, arg); executed << arg+1; end
|
|
70
|
-
end
|
|
71
|
-
@mum.class.after_eight :a
|
|
72
|
-
@mum.class.after_eight lambda { |me, arg| me.executed << arg-1 }
|
|
73
|
-
|
|
74
|
-
@mum.run_hook(:after_eight, @mum, 1)
|
|
75
|
-
|
|
76
|
-
assert_equal [2, 0], @mum.executed
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
should "execute block callbacks in instance context" do
|
|
80
|
-
@mum.class.after_eight { executed << :c }
|
|
81
|
-
@mum.run_hook(:after_eight)
|
|
82
|
-
assert_equal [:c], @mum.executed
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
context "in class context" do
|
|
87
|
-
should "run a callback block" do
|
|
88
|
-
executed = []
|
|
89
|
-
@klass.after_eight do
|
|
90
|
-
executed << :klass
|
|
91
|
-
end
|
|
92
|
-
@klass.run_hook :after_eight
|
|
93
|
-
|
|
94
|
-
assert_equal [:klass], executed
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
should "run a class methods" do
|
|
98
|
-
executed = []
|
|
99
|
-
@klass.instance_eval do
|
|
100
|
-
after_eight :have_dinner
|
|
101
|
-
|
|
102
|
-
def have_dinner(executed)
|
|
103
|
-
executed << :have_dinner
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
@klass.run_hook :after_eight, executed
|
|
107
|
-
|
|
108
|
-
assert_equal [:have_dinner], executed
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
context "Deriving" do
|
|
114
|
-
setup do
|
|
115
|
-
@klass = Class.new(TestClass)
|
|
116
|
-
|
|
117
|
-
@mum = @klass.new
|
|
118
|
-
@mum.class.define_hook :after_eight
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
should "inherit the hook" do
|
|
122
|
-
@klass.class_eval do
|
|
123
|
-
after_eight :take_shower
|
|
124
|
-
|
|
125
|
-
def take_shower
|
|
126
|
-
executed << :take_shower
|
|
127
|
-
end
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
@kid = Class.new(@klass) do
|
|
131
|
-
after_eight :have_dinner
|
|
132
|
-
|
|
133
|
-
def have_dinner
|
|
134
|
-
executed << :have_dinner
|
|
135
|
-
end
|
|
136
|
-
end.new
|
|
137
|
-
|
|
138
|
-
assert_equal [:take_shower, :have_dinner], @kid.run_hook(:after_eight)
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
end
|