middleman-core 3.2.0 → 3.2.1

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.
Files changed (241) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +10 -0
  3. data/features/helpers_auto_javascript_include_tag.feature +21 -0
  4. data/features/helpers_auto_stylesheet_link_tag.feature +21 -0
  5. data/features/i18n_builder.feature +23 -13
  6. data/features/i18n_preview.feature +9 -9
  7. data/features/markdown_kramdown.feature +1 -1
  8. data/fixtures/i18n-test-app/source/{layout.erb → layouts/layout.erb} +0 -0
  9. data/fixtures/i18n-test-app/source/{morning.en.html.erb → localizable/morning.en.html.erb} +0 -0
  10. data/fixtures/i18n-test-app/source/{morning.es.html.erb → localizable/morning.es.html.erb} +0 -0
  11. data/fixtures/i18n-test-app/source/{one.en.md → localizable/one.en.md} +0 -0
  12. data/fixtures/i18n-test-app/source/{one.es.md → localizable/one.es.md} +0 -0
  13. data/lib/middleman-core/application.rb +4 -0
  14. data/lib/middleman-core/cli/build.rb +14 -2
  15. data/lib/middleman-core/cli/init.rb +1 -0
  16. data/lib/middleman-core/core_extensions.rb +6 -1
  17. data/lib/middleman-core/core_extensions/file_watcher.rb +1 -0
  18. data/lib/middleman-core/core_extensions/request.rb +2 -4
  19. data/lib/middleman-core/extensions.rb +13 -5
  20. data/lib/middleman-core/meta_pages.rb +25 -11
  21. data/lib/middleman-core/meta_pages/sitemap_resource.rb +2 -2
  22. data/lib/middleman-core/meta_pages/templates/config.html.erb +7 -9
  23. data/lib/middleman-core/meta_pages/templates/index.html.erb +3 -3
  24. data/lib/middleman-core/meta_pages/templates/sitemap.html.erb +6 -6
  25. data/lib/middleman-core/sitemap/extensions/redirects.rb +1 -2
  26. data/lib/middleman-core/sitemap/extensions/request_endpoints.rb +2 -3
  27. data/lib/middleman-core/sitemap/resource.rb +7 -13
  28. data/lib/middleman-core/util.rb +2 -3
  29. data/lib/middleman-core/version.rb +1 -1
  30. data/lib/middleman-more/core_extensions/default_helpers.rb +9 -5
  31. data/lib/middleman-more/core_extensions/i18n.rb +17 -10
  32. data/lib/middleman-more/extensions/{automatic-alt-tags.rb → automatic_alt_tags.rb} +0 -0
  33. data/lib/middleman-more/extensions/gzip.rb +29 -6
  34. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/.document +0 -0
  35. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/.gitignore +0 -0
  36. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/.yardopts +0 -0
  37. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/LICENSE.txt +0 -0
  38. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/README.rdoc +5 -5
  39. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/Rakefile +0 -0
  40. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/bin/padrino +0 -0
  41. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core.rb +4 -10
  42. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/application.rb +39 -35
  43. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/application/flash.rb +7 -7
  44. data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application/rendering.rb +317 -0
  45. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/application/rendering/extensions/erubis.rb +15 -6
  46. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/application/rendering/extensions/haml.rb +2 -0
  47. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/application/rendering/extensions/slim.rb +0 -0
  48. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/application/routing.rb +406 -368
  49. data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/application/showexceptions.rb +21 -0
  50. data/lib/vendored-middleman-deps/padrino-core-0.11.4/lib/padrino-core/caller.rb +53 -0
  51. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/cli/adapter.rb +4 -4
  52. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/cli/base.rb +40 -39
  53. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/cli/console.rb +0 -0
  54. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/cli/rake.rb +2 -2
  55. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/cli/rake_tasks.rb +2 -4
  56. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/command.rb +2 -2
  57. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/images/404.png +0 -0
  58. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/images/500.png +0 -0
  59. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/loader.rb +14 -15
  60. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/cs.yml +0 -1
  61. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/da.yml +0 -1
  62. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/de.yml +0 -1
  63. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/en.yml +0 -1
  64. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/es.yml +1 -2
  65. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/fr.yml +2 -3
  66. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/hu.yml +1 -2
  67. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/it.yml +0 -1
  68. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/ja.yml +1 -2
  69. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/lv.yml +0 -1
  70. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/nl.yml +0 -1
  71. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/no.yml +0 -2
  72. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/pl.yml +0 -1
  73. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/pt_br.yml +0 -1
  74. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/ro.yml +0 -1
  75. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/ru.yml +0 -1
  76. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/sv.yml +0 -1
  77. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/tr.yml +0 -1
  78. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/uk.yml +0 -1
  79. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/zh_cn.yml +0 -1
  80. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/locale/zh_tw.yml +0 -1
  81. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/logger.rb +30 -36
  82. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/module.rb +3 -3
  83. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/mounter.rb +59 -59
  84. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/reloader.rb +23 -23
  85. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/router.rb +10 -13
  86. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/server.rb +17 -19
  87. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/support_lite.rb +0 -0
  88. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/tasks.rb +3 -3
  89. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/lib/padrino-core/version.rb +1 -1
  90. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/padrino-core.gemspec +2 -2
  91. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/app_gem/Gemfile +0 -0
  92. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/app_gem/app/app.rb +0 -0
  93. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/app_gem/app_gem.gemspec +0 -0
  94. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/app_gem/lib/app_gem.rb +0 -0
  95. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/app_gem/lib/app_gem/version.rb +0 -0
  96. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/apps/.components +0 -0
  97. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/apps/.gitignore +0 -0
  98. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/apps/complex.rb +0 -0
  99. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/apps/simple.rb +0 -0
  100. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/dependencies/a.rb +0 -0
  101. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/dependencies/b.rb +0 -0
  102. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/dependencies/c.rb +0 -0
  103. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/dependencies/circular/e.rb +0 -0
  104. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/dependencies/circular/f.rb +0 -0
  105. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/dependencies/circular/g.rb +0 -0
  106. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/fixtures/dependencies/d.rb +0 -0
  107. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/helper.rb +0 -0
  108. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/mini_shoulda.rb +0 -0
  109. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_application.rb +7 -7
  110. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_core.rb +0 -0
  111. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_csrf_protection.rb +0 -0
  112. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_dependencies.rb +0 -0
  113. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_filters.rb +0 -0
  114. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_flash.rb +0 -0
  115. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_locale.rb +0 -0
  116. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_logger.rb +29 -0
  117. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_mounter.rb +0 -0
  118. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_reloader_complex.rb +0 -0
  119. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_reloader_simple.rb +0 -0
  120. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_rendering.rb +15 -2
  121. data/lib/vendored-middleman-deps/padrino-core-0.11.4/test/test_rendering_extensions.rb +14 -0
  122. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_restful_routing.rb +0 -0
  123. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_router.rb +0 -0
  124. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_routing.rb +69 -11
  125. data/lib/vendored-middleman-deps/{padrino-core-0.11.2 → padrino-core-0.11.4}/test/test_support_lite.rb +0 -0
  126. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/.document +0 -0
  127. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/.gitignore +0 -0
  128. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/.yardopts +0 -0
  129. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/LICENSE.txt +0 -0
  130. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/README.rdoc +1 -1
  131. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/Rakefile +0 -0
  132. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers.rb +3 -6
  133. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/asset_tag_helpers.rb +34 -42
  134. data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/lib/padrino-helpers/breadcrumb_helpers.rb +183 -0
  135. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/form_builder/abstract_form_builder.rb +126 -118
  136. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/form_builder/standard_form_builder.rb +6 -9
  137. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/form_helpers.rb +252 -195
  138. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/format_helpers.rb +29 -42
  139. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/cs.yml +14 -14
  140. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/da.yml +1 -1
  141. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/de.yml +1 -1
  142. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/en.yml +16 -16
  143. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/es.yml +16 -16
  144. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/fr.yml +1 -2
  145. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/hu.yml +16 -16
  146. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/it.yml +2 -2
  147. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/ja.yml +16 -16
  148. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/lv.yml +16 -16
  149. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/nl.yml +1 -1
  150. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/no.yml +1 -1
  151. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/pl.yml +7 -7
  152. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/pt_br.yml +16 -16
  153. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/ro.yml +16 -16
  154. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/ru.yml +16 -16
  155. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/sv.yml +16 -16
  156. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/tr.yml +16 -16
  157. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/uk.yml +16 -16
  158. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/zh_cn.yml +16 -16
  159. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/locale/zh_tw.yml +16 -16
  160. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/number_helpers.rb +10 -15
  161. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/output_helpers.rb +50 -58
  162. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/output_helpers/abstract_handler.rb +16 -18
  163. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/output_helpers/erb_handler.rb +11 -12
  164. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/output_helpers/haml_handler.rb +9 -9
  165. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/output_helpers/slim_handler.rb +11 -13
  166. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/render_helpers.rb +5 -6
  167. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/tag_helpers.rb +26 -22
  168. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/lib/padrino-helpers/translation_helpers.rb +4 -6
  169. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/padrino-helpers.gemspec +0 -0
  170. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/app.rb +7 -3
  171. data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/button_to.erb +8 -0
  172. data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/button_to.haml +5 -0
  173. data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/fixtures/markup_app/views/button_to.slim +6 -0
  174. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/capture_concat.erb +0 -0
  175. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/capture_concat.haml +0 -0
  176. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/capture_concat.slim +0 -0
  177. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/content_for.erb +0 -0
  178. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/content_for.haml +0 -0
  179. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/content_for.slim +0 -0
  180. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/content_tag.erb +0 -0
  181. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/content_tag.haml +0 -0
  182. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/content_tag.slim +0 -0
  183. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/current_engine.erb +0 -0
  184. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/current_engine.haml +0 -0
  185. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/current_engine.slim +0 -0
  186. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/fields_for.erb +0 -0
  187. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/fields_for.haml +0 -0
  188. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/fields_for.slim +0 -0
  189. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/form_for.erb +0 -0
  190. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/form_for.haml +0 -0
  191. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/form_for.slim +0 -0
  192. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/form_tag.erb +9 -0
  193. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/form_tag.haml +8 -0
  194. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/form_tag.slim +9 -0
  195. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/link_to.erb +0 -0
  196. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/link_to.haml +0 -0
  197. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/link_to.slim +0 -0
  198. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/mail_to.erb +0 -0
  199. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/mail_to.haml +0 -0
  200. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/mail_to.slim +0 -0
  201. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/meta_tag.erb +0 -0
  202. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/meta_tag.haml +0 -0
  203. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/meta_tag.slim +0 -0
  204. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/partials/_erb.erb +0 -0
  205. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/partials/_haml.haml +0 -0
  206. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/partials/_slim.slim +0 -0
  207. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/simple_partial.erb +0 -0
  208. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/simple_partial.haml +0 -0
  209. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/markup_app/views/simple_partial.slim +0 -0
  210. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/app.rb +1 -0
  211. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/current_engine.haml +0 -0
  212. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/current_engines/_erb.erb +0 -0
  213. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/current_engines/_haml.haml +0 -0
  214. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/current_engines/_slim.slim +0 -0
  215. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/double_capture_erb.erb +0 -0
  216. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/double_capture_haml.haml +0 -0
  217. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/double_capture_slim.slim +0 -0
  218. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/erb/test.erb +0 -0
  219. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/explicit_engine.haml +0 -0
  220. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/haml/test.haml +0 -0
  221. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/template/_user.haml +0 -0
  222. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/template/haml_template.haml +0 -0
  223. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/fixtures/render_app/views/template/some_template.haml +0 -0
  224. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/helper.rb +0 -0
  225. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/test_asset_tag_helpers.rb +9 -3
  226. data/lib/vendored-middleman-deps/padrino-helpers-0.11.4/test/test_breadcrumb_helpers.rb +134 -0
  227. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/test_form_builder.rb +38 -6
  228. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/test_form_helpers.rb +230 -12
  229. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/test_format_helpers.rb +3 -3
  230. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/test_locale.rb +0 -0
  231. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/test_number_helpers.rb +4 -0
  232. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/test_output_helpers.rb +1 -1
  233. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/test_render_helpers.rb +1 -1
  234. data/lib/vendored-middleman-deps/{padrino-helpers-0.11.2 → padrino-helpers-0.11.4}/test/test_tag_helpers.rb +3 -3
  235. data/middleman-core.gemspec +7 -8
  236. data/spec/spec_helper.rb +1 -1
  237. metadata +220 -215
  238. data/lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/application/rendering.rb +0 -320
  239. data/lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/application/showexceptions.rb +0 -20
  240. data/lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/caller.rb +0 -53
  241. data/lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/breadcrumb_helpers.rb +0 -171
@@ -0,0 +1,183 @@
1
+ module Padrino
2
+ module Helpers
3
+ class Breadcrumb
4
+ attr_accessor :home, :items
5
+
6
+ DEFAULT_URL = "/"
7
+ DEFAULT_CAPTION ="Home Page"
8
+
9
+ ##
10
+ # Initialize breadcrumbs with default value.
11
+ #
12
+ # @example
13
+ # before do
14
+ # @breadcrumbs = breadcrumbs.new
15
+ # end
16
+ #
17
+ def initialize
18
+ reset!
19
+ end
20
+
21
+ ##
22
+ # Set the custom home (Parent) link.
23
+ #
24
+ # @param [String] url
25
+ # The url href.
26
+ #
27
+ # @param [String] caption
28
+ # The text caption.
29
+ #
30
+ # @param [Hash] options
31
+ # The HTML options to include in li.
32
+ #
33
+ # @example
34
+ # breadcrumbs.set_home "/HomeFoo", "Foo Home", :id => "home-breadcrumb"
35
+ #
36
+ def set_home(url, caption, options = {})
37
+ self.home = {
38
+ :url => url.to_s,
39
+ :caption => caption.to_s.humanize.html_safe,
40
+ :name => :home,
41
+ :options => options
42
+ }
43
+ reset
44
+ end
45
+
46
+ ##
47
+ # Reset breadcrumbs to default or personal home.
48
+ #
49
+ # @example
50
+ # breadcrumbs.reset
51
+ #
52
+ def reset
53
+ self.items = []
54
+ self.items << home
55
+ end
56
+
57
+ ##
58
+ # Reset breadcrumbs to default home.
59
+ #
60
+ # @example
61
+ # breadcrumbs.reset!
62
+ #
63
+ def reset!
64
+ self.home = {
65
+ :name => :home,
66
+ :url => DEFAULT_URL,
67
+ :caption => DEFAULT_CAPTION,
68
+ :options => {}
69
+ }
70
+ reset
71
+ end
72
+
73
+ ##
74
+ # Add a new breadcrumbs.
75
+ #
76
+ # @param [String] name
77
+ # The name of resource.
78
+ # @param [Symbol] name
79
+ # The name of resource.
80
+ #
81
+ # @param [String] url
82
+ # The url href.
83
+ #
84
+ # @param [String] caption
85
+ # The text caption.
86
+ #
87
+ # @param [Hash] options
88
+ # The HTML options to include in li.
89
+ #
90
+ # @example
91
+ # breadcrumbs.add "foo", "/foo", "Foo Link", :id => "foo-id"
92
+ # breadcrumbs.add :foo, "/foo", "Foo Link", :class => "foo-class"
93
+ #
94
+ def add(name, url, caption, options = {})
95
+ items << {
96
+ :name => name.to_sym,
97
+ :url => url.to_s,
98
+ :caption => caption.to_s.humanize.html_safe,
99
+ :options => options
100
+ }
101
+ end
102
+ alias :<< :add
103
+
104
+ ##
105
+ # Remove a breadcrumb.
106
+ #
107
+ # @param [String] name
108
+ # The name of resource to delete from breadcrumbs list.
109
+ #
110
+ # @example
111
+ # breadcrumbs.del "foo"
112
+ # breadcrumbs.del :foo
113
+ #
114
+ def del(name)
115
+ items.delete_if { |item| item[:name] == name.to_sym }
116
+ end
117
+ end
118
+
119
+ module Breadcrumbs
120
+ ##
121
+ # Render breadcrumbs to view.
122
+ #
123
+ # @param [Breadcrumbs] breadcrumbs
124
+ # The breadcrumbs to render into view.
125
+ #
126
+ # @param [Boolean] bootstrap
127
+ # If true, render separation (useful with Twitter Bootstrap).
128
+ #
129
+ # @param [String] active
130
+ # CSS class style set to active breadcrumb.
131
+ #
132
+ # @param [Hash] options
133
+ # The HTML options to include in ul.
134
+ #
135
+ # @return [String] Unordered list with breadcrumbs
136
+ #
137
+ # @example
138
+ # = breadcrumbs @breacrumbs
139
+ # # Generates:
140
+ # # <ul>
141
+ # # <li><a href="/foo">Foo Link</a></li>
142
+ # # <li class="active"><a href="/bar">Bar Link</a></li>
143
+ # # </ul>
144
+ #
145
+ def breadcrumbs(breadcrumbs, bootstrap = false, active = "active", options = {})
146
+ content = ""
147
+ breadcrumbs.items[0..-2].each do |item|
148
+ content << render_item(item, bootstrap)
149
+ end
150
+ last = breadcrumbs.items.last
151
+ last_options = last[:options]
152
+ last = link_to(last[:caption], last[:url])
153
+
154
+ classes = [options[:class], last_options[:class]].map { |class_name| class_name.to_s.split(/\s/) }
155
+ classes[0] << "breadcrumb"
156
+ classes[1] << active if active
157
+ options[:class], last_options[:class] = classes.map { |class_name| class_name * " " }
158
+
159
+ content << safe_content_tag(:li, last, last_options)
160
+ safe_content_tag(:ul, content, options)
161
+ end
162
+
163
+ private
164
+ ##
165
+ # Private method to return list item.
166
+ #
167
+ # @param [Hash] item
168
+ # The breadcrumb item.
169
+ #
170
+ # @param [Boolean] bootstrap
171
+ # If true, render separation (useful with Twitter Bootstrap).
172
+ #
173
+ # @return [String] List item with breadcrumb
174
+ #
175
+ def render_item(item, bootstrap)
176
+ content = ""
177
+ content << link_to(item[:caption], item[:url])
178
+ content << safe_content_tag(:span, "/", :class => "divider") if bootstrap
179
+ safe_content_tag(:li, content, item[:options])
180
+ end
181
+ end
182
+ end
183
+ end
@@ -1,8 +1,8 @@
1
1
  module Padrino
2
2
  module Helpers
3
- module FormBuilder # @private
4
- class AbstractFormBuilder # @private
5
- attr_accessor :template, :object
3
+ module FormBuilder
4
+ class AbstractFormBuilder
5
+ attr_accessor :template, :object, :multipart
6
6
 
7
7
  def initialize(template, object, options={})
8
8
  @template = template
@@ -12,37 +12,32 @@ module Padrino
12
12
  raise "FormBuilder object must not be a nil value. If there's no object, use a symbol instead! (i.e :user)" unless object
13
13
  end
14
14
 
15
- # f.error_messages
16
15
  def error_messages(*params)
17
16
  params.unshift object
18
17
  @template.error_messages_for(*params)
19
18
  end
20
19
 
21
- # f.error_message_on(field)
22
20
  def error_message_on(field, options={})
23
21
  @template.error_message_on(object, field, options)
24
22
  end
25
23
 
26
- # f.label :username, :caption => "Nickname"
27
24
  def label(field, options={}, &block)
28
25
  options.reverse_merge!(:caption => "#{field_human_name(field)}: ")
29
26
  @template.label_tag(field_id(field), options, &block)
30
27
  end
31
28
 
32
- # f.hidden_field :session_id, :value => "45"
33
29
  def hidden_field(field, options={})
34
30
  options.reverse_merge!(:value => field_value(field), :id => field_id(field))
35
31
  @template.hidden_field_tag field_name(field), options
36
32
  end
37
33
 
38
- # f.text_field :username, :value => "(blank)", :id => 'username'
39
34
  def text_field(field, options={})
40
35
  options.reverse_merge!(:value => field_value(field), :id => field_id(field))
41
36
  options.merge!(:class => field_error(field, options))
42
37
  @template.text_field_tag field_name(field), options
43
38
  end
44
39
 
45
- def number_field(field, options={})
40
+ def number_field(field, options={})
46
41
  options.reverse_merge!(:value => field_value(field), :id => field_id(field))
47
42
  options.merge!(:class => field_error(field, options))
48
43
  @template.number_field_tag field_name(field), options
@@ -73,35 +68,28 @@ module Padrino
73
68
  @template.url_field_tag field_name(field), options
74
69
  end
75
70
 
76
- # f.text_area :summary, :value => "(enter summary)", :id => 'summary'
77
71
  def text_area(field, options={})
78
72
  options.reverse_merge!(:value => field_value(field), :id => field_id(field))
79
73
  options.merge!(:class => field_error(field, options))
80
74
  @template.text_area_tag field_name(field), options
81
75
  end
82
76
 
83
- # f.password_field :password, :id => 'password'
84
77
  def password_field(field, options={})
85
78
  options.reverse_merge!(:value => field_value(field), :id => field_id(field))
86
79
  options.merge!(:class => field_error(field, options))
87
80
  @template.password_field_tag field_name(field), options
88
81
  end
89
82
 
90
- # f.select :color, :options => ['red', 'green'], :include_blank => true
91
- # f.select :color, :collection => @colors, :fields => [:name, :id]
92
83
  def select(field, options={})
93
84
  options.reverse_merge!(:id => field_id(field), :selected => field_value(field))
94
85
  options.merge!(:class => field_error(field, options))
95
86
  @template.select_tag field_name(field), options
96
87
  end
97
88
 
98
- # f.check_box_group :color, :options => ['red', 'green', 'blue'], :selected => ['red', 'blue']
99
- # f.check_box_group :color, :collection => @colors, :fields => [:name, :id]
100
89
  def check_box_group(field, options={})
101
90
  selected_values = Array(options[:selected] || field_value(field))
102
91
  if options[:collection]
103
92
  fields = options[:fields] || [:name, :id]
104
- # don't use map!, it will break some orms
105
93
  selected_values = selected_values.map{ |v| (v.respond_to?(fields[0]) ? v.send(fields[1]) : v).to_s }
106
94
  end
107
95
  labeled_group( field, options ) do |variant|
@@ -109,8 +97,6 @@ module Padrino
109
97
  end
110
98
  end
111
99
 
112
- # f.radio_button_group :color, :options => ['red', 'green']
113
- # f.radio_button_group :color, :collection => @colors, :fields => [:name, :id], :selected => @colors.first
114
100
  def radio_button_group(field, options={})
115
101
  fields = options[:fields] || [:name, :id]
116
102
  selected_value = options[:selected] || field_value(field)
@@ -120,7 +106,6 @@ module Padrino
120
106
  end
121
107
  end
122
108
 
123
- # f.check_box :remember_me, :value => 'true', :uncheck_value => '0'
124
109
  def check_box(field, options={})
125
110
  html = ActiveSupport::SafeBuffer.new
126
111
  unchecked_value = options.delete(:uncheck_value) || '0'
@@ -130,31 +115,31 @@ module Padrino
130
115
  html << @template.check_box_tag(field_name(field), options)
131
116
  end
132
117
 
133
- # f.radio_button :gender, :value => 'male'
134
118
  def radio_button(field, options={})
135
119
  options.reverse_merge!(:id => field_id(field, options[:value]))
136
120
  options.reverse_merge!(:checked => true) if values_matches_field?(field, options[:value])
137
121
  @template.radio_button_tag field_name(field), options
138
122
  end
139
123
 
140
- # f.file_field :photo, :class => 'avatar'
141
124
  def file_field(field, options={})
125
+ self.multipart = true
142
126
  options.reverse_merge!(:id => field_id(field))
143
127
  options.merge!(:class => field_error(field, options))
144
128
  @template.file_field_tag field_name(field), options
145
129
  end
146
130
 
147
- # f.submit "Update", :class => 'large'
148
- def submit(caption="Submit", options={})
131
+ def submit(*args)
132
+ options = args[-1].is_a?(Hash) ? args.pop : {}
133
+ caption = args.length >= 1 ? args.shift : "Submit"
149
134
  @template.submit_tag caption, options
150
135
  end
151
136
 
152
- # f.image_submit "buttons/submit.png", :class => 'large'
153
137
  def image_submit(source, options={})
154
138
  @template.image_submit_tag source, options
155
139
  end
156
140
 
157
- # Supports nested fields for a child model within a form
141
+ ##
142
+ # Supports nested fields for a child model within a form.
158
143
  # f.fields_for :addresses
159
144
  # f.fields_for :addresses, address
160
145
  # f.fields_for :addresses, @addresses
@@ -163,7 +148,7 @@ module Padrino
163
148
  include_index = default_collection.respond_to?(:each)
164
149
  nested_options = { :parent => self, :association => child_association }
165
150
  nested_objects = instance_or_collection ? Array(instance_or_collection) : Array(default_collection)
166
- result = nested_objects.each_with_index.map do |child_instance, index|
151
+ nested_objects.each_with_index.map do |child_instance, index|
167
152
  nested_options[:index] = include_index ? index : nil
168
153
  @template.fields_for(child_instance, { :nested => nested_options }, &block)
169
154
  end.join("\n").html_safe
@@ -174,110 +159,133 @@ module Padrino
174
159
  end
175
160
 
176
161
  protected
177
- # Returns the known field types for a formbuilder
178
- def self.field_types
179
- [:hidden_field, :text_field, :text_area, :password_field, :file_field, :radio_button, :check_box, :select]
180
- end
162
+ # Returns the known field types for a Formbuilder.
163
+ def self.field_types
164
+ [:hidden_field, :text_field, :text_area, :password_field, :file_field, :radio_button, :check_box, :select]
165
+ end
181
166
 
182
- # Returns true if the value matches the value in the field
183
- # field_has_value?(:gender, 'male')
184
- def values_matches_field?(field, value)
185
- value.present? && (field_value(field).to_s == value.to_s || field_value(field).to_s == 'true')
186
- end
167
+ ##
168
+ # Returns true if the value matches the value in the field.
169
+ # field_has_value?(:gender, 'male')
170
+ def values_matches_field?(field, value)
171
+ value.present? && (field_value(field).to_s == value.to_s || field_value(field).to_s == 'true')
172
+ end
187
173
 
188
- # Add a :invalid css class to the field if it contain an error
189
- def field_error(field, options)
190
- error = @object.errors[field] rescue nil
191
- error.blank? ? options[:class] : [options[:class], :invalid].flatten.compact.join(" ")
192
- end
174
+ ##
175
+ # Add a :invalid css class to the field if it contain an error.
176
+ #
177
+ def field_error(field, options)
178
+ error = @object.errors[field] rescue nil
179
+ error.blank? ? options[:class] : [options[:class], :invalid].flatten.compact.join(" ")
180
+ end
193
181
 
194
- # Returns the human name of the field. Look that use builtin I18n.
195
- def field_human_name(field)
196
- I18n.translate("#{object_model_name}.attributes.#{field}", :count => 1, :default => field.to_s.humanize, :scope => :models)
197
- end
182
+ ##
183
+ # Returns the human name of the field. Look that use builtin I18n.
184
+ #
185
+ def field_human_name(field)
186
+ I18n.translate("#{object_model_name}.attributes.#{field}", :count => 1, :default => field.to_s.humanize, :scope => :models)
187
+ end
198
188
 
199
- # Returns the name for the given field
200
- # field_name(:username) => "user[username]"
201
- # field_name(:number) => "user[telephone_attributes][number]"
202
- # field_name(:street) => "user[addresses_attributes][0][street]"
203
- def field_name(field=nil)
204
- result = field_result
205
- result << field_name_fragment if nested_form?
206
- result << "[#{field}]" unless field.blank?
207
- result.flatten.join
208
- end
189
+ ##
190
+ # Returns the name for the given field.
191
+ # field_name(:username) => "user[username]"
192
+ # field_name(:number) => "user[telephone_attributes][number]"
193
+ # field_name(:street) => "user[addresses_attributes][0][street]"
194
+ def field_name(field=nil)
195
+ result = field_result
196
+ result << field_name_fragment if nested_form?
197
+ result << "[#{field}]" unless field.blank?
198
+ result.flatten.join
199
+ end
209
200
 
210
- # Returns the id for the given field
211
- # field_id(:username) => "user_username"
212
- # field_id(:gender, :male) => "user_gender_male"
213
- # field_name(:number) => "user_telephone_attributes_number"
214
- # field_name(:street) => "user_addresses_attributes_0_street"
215
- def field_id(field=nil, value=nil)
216
- result = field_result
217
- result << field_id_fragment if nested_form?
218
- result << "_#{field}" unless field.blank?
219
- result << "_#{value}" unless value.blank?
220
- result.flatten.join
221
- end
201
+ ##
202
+ # Returns the id for the given field.
203
+ # field_id(:username) => "user_username"
204
+ # field_id(:gender, :male) => "user_gender_male"
205
+ # field_name(:number) => "user_telephone_attributes_number"
206
+ # field_name(:street) => "user_addresses_attributes_0_street"
207
+ def field_id(field=nil, value=nil)
208
+ result = []
209
+ result << "#{@options[:namespace]}_" if @options[:namespace] && root_form?
210
+ result << field_result
211
+ result << field_id_fragment if nested_form?
212
+ result << "_#{field}" unless field.blank?
213
+ result << "_#{value}" unless value.blank?
214
+ result.flatten.join
215
+ end
222
216
 
223
- # Returns the child object if it exists
224
- def nested_object_id
225
- nested_form? && object.respond_to?(:new_record?) && !object.new_record? && object.id
226
- end
217
+ ##
218
+ # Returns the child object if it exists.
219
+ #
220
+ def nested_object_id
221
+ nested_form? && object.respond_to?(:new_record?) && !object.new_record? && object.id
222
+ end
227
223
 
228
- # Returns true if this form object is nested in a parent form
229
- def nested_form?
230
- @options[:nested] && @options[:nested][:parent] && @options[:nested][:parent].respond_to?(:object)
231
- end
224
+ ##
225
+ # Returns true if this form object is nested in a parent form.
226
+ #
227
+ def nested_form?
228
+ @options[:nested] && @options[:nested][:parent] && @options[:nested][:parent].respond_to?(:object)
229
+ end
232
230
 
233
- # Returns the value for the object's field
234
- # field_value(:username) => "Joey"
235
- def field_value(field)
236
- @object && @object.respond_to?(field) ? @object.send(field) : ""
237
- end
231
+ ##
232
+ # Returns the value for the object's field.
233
+ #
234
+ def field_value(field)
235
+ @object && @object.respond_to?(field) ? @object.send(field) : ""
236
+ end
238
237
 
239
- # explicit_object is either a symbol or a record
240
- # Returns a new record of the type specified in the object
241
- def build_object(object_or_symbol)
242
- object_or_symbol.is_a?(Symbol) ? @template.instance_variable_get("@#{object_or_symbol}") || object_class(object_or_symbol).new : object_or_symbol
243
- end
238
+ ##
239
+ # Returns a new record of the type specified in the object
240
+ #
241
+ def build_object(object_or_symbol)
242
+ object_or_symbol.is_a?(Symbol) ? @template.instance_variable_get("@#{object_or_symbol}") || object_class(object_or_symbol).new : object_or_symbol
243
+ end
244
244
 
245
- # Returns the object's models name
246
- # => user_assignment
247
- def object_model_name(explicit_object=object)
248
- explicit_object.is_a?(Symbol) ? explicit_object : explicit_object.class.to_s.underscore.gsub(/\//, '_')
249
- end
245
+ ##
246
+ # Returns the object's models name.
247
+ #
248
+ def object_model_name(explicit_object=object)
249
+ explicit_object.is_a?(Symbol) ? explicit_object : explicit_object.class.to_s.underscore.gsub(/\//, '_')
250
+ end
250
251
 
251
- # Returns the class type for the given object
252
- def object_class(explicit_object)
253
- explicit_object.is_a?(Symbol) ? explicit_object.to_s.camelize.constantize : explicit_object.class
254
- end
252
+ ##
253
+ # Returns the class type for the given object.
254
+ #
255
+ def object_class(explicit_object)
256
+ explicit_object.is_a?(Symbol) ? explicit_object.to_s.camelize.constantize : explicit_object.class
257
+ end
255
258
 
256
- # Returns true if this form is the top-level (not nested)
257
- def root_form?
258
- !nested_form?
259
- end
259
+ ##
260
+ # Returns true if this form is the top-level (not nested).
261
+ #
262
+ def root_form?
263
+ !nested_form?
264
+ end
260
265
 
261
- # Builds a group of labels for radios or checkboxes
262
- def labeled_group(field, options={})
263
- options.reverse_merge!(:id => field_id(field), :selected => field_value(field))
264
- options.merge!(:class => field_error(field, options))
265
- variants = case
266
- when options[:options]
267
- options[:options].map{ |caption, value| [caption.to_s, (value||caption).to_s] }
268
- when options[:collection]
269
- fields = options[:fields] || [:name, :id]
270
- options[:collection].map{ |variant| [variant.send(fields.first).to_s, variant.send(fields.last).to_s] }
271
- else
272
- []
273
- end
274
- variants.inject(''.html_safe) do |html, variant|
275
- variant[2] = "#{field_id(field)}_#{variant[1]}"
276
- html << @template.label_tag("#{field_name(field)}[]", :for => variant[2], :caption => "#{yield(variant)} #{variant[0]}")
277
- end
266
+ ##
267
+ # Builds a group of labels for radios or checkboxes.
268
+ #
269
+ def labeled_group(field, options={})
270
+ options.reverse_merge!(:id => field_id(field), :selected => field_value(field))
271
+ options.merge!(:class => field_error(field, options))
272
+ variants = case
273
+ when options[:options]
274
+ options[:options].map{ |caption, value| [caption.to_s, (value||caption).to_s] }
275
+ when options[:collection]
276
+ fields = options[:fields] || [:name, :id]
277
+ options[:collection].map{ |variant| [variant.send(fields.first).to_s, variant.send(fields.last).to_s] }
278
+ else
279
+ []
280
+ end
281
+ variants.inject(''.html_safe) do |html, variant|
282
+ variant[2] = "#{field_id(field)}_#{variant[1]}"
283
+ html << @template.label_tag("#{field_name(field)}[]", :for => variant[2], :caption => "#{yield(variant)} #{variant[0]}")
278
284
  end
285
+ end
279
286
 
280
287
  private
288
+
281
289
  def field_result
282
290
  result = []
283
291
  result << object_model_name if root_form?
@@ -303,7 +311,7 @@ module Padrino
303
311
  :attributes_name => "#{@options[:nested][:association]}_attributes"
304
312
  }
305
313
  end
306
- end # AbstractFormBuilder
307
- end # FormBuilder
308
- end # Helpers
309
- end # Padrino
314
+ end
315
+ end
316
+ end
317
+ end