ext_form 0.1.4

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 (333) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +31 -0
  4. data/app/assets/javascripts/ext_form/application.js +78 -0
  5. data/app/assets/javascripts/typeahead.js +1159 -0
  6. data/app/assets/stylesheets/ext_form/application.scss +15 -0
  7. data/app/assets/stylesheets/ext_form/application_bootstrap.css.scss +197 -0
  8. data/app/assets/stylesheets/ext_form/base.css.scss +32 -0
  9. data/config/routes.rb +2 -0
  10. data/lib/ext_form/builders/form_builder_base.rb +224 -0
  11. data/lib/ext_form/builders.rb +10 -0
  12. data/lib/ext_form/components/input_addons.rb +34 -0
  13. data/lib/ext_form/components.rb +7 -0
  14. data/lib/ext_form/engine.rb +14 -0
  15. data/lib/ext_form/helpers/form_helper.rb +222 -0
  16. data/lib/ext_form/helpers/form_tag_helper.rb +60 -0
  17. data/lib/ext_form/helpers/tags/auto_complete.rb +25 -0
  18. data/lib/ext_form/helpers/tags/collection_select.rb +19 -0
  19. data/lib/ext_form/helpers/tags/dt_picker.rb +27 -0
  20. data/lib/ext_form/helpers/tags/grouped_collection_select.rb +19 -0
  21. data/lib/ext_form/helpers/tags.rb +12 -0
  22. data/lib/ext_form/inputs/auto_complete.rb +11 -0
  23. data/lib/ext_form/inputs/base_mixin.rb +11 -0
  24. data/lib/ext_form/inputs/bootstrap_inputs_mixin.rb +13 -0
  25. data/lib/ext_form/inputs/collection_select.rb +15 -0
  26. data/lib/ext_form/inputs/dt_picker.rb +20 -0
  27. data/lib/ext_form/inputs/grouped_collection_select.rb +13 -0
  28. data/lib/ext_form/inputs.rb +15 -0
  29. data/lib/ext_form/layouts/base_layout.rb +82 -0
  30. data/lib/ext_form/layouts/bootstrap_layout.rb +23 -0
  31. data/lib/ext_form/layouts/default_layout.rb +29 -0
  32. data/lib/ext_form/layouts.rb +11 -0
  33. data/lib/ext_form/version.rb +3 -0
  34. data/lib/ext_form/wrappers/many_mixin.rb +18 -0
  35. data/lib/ext_form/wrappers/mixin.rb +49 -0
  36. data/lib/ext_form/wrappers/single_mixin.rb +18 -0
  37. data/lib/ext_form/wrappers.rb +11 -0
  38. data/lib/ext_form.rb +52 -0
  39. data/lib/generators/ext_form/USAGE +3 -0
  40. data/lib/generators/ext_form/install_generator.rb +113 -0
  41. data/lib/generators/ext_form/templates/README +15 -0
  42. data/lib/generators/ext_form/templates/_form.html.erb +12 -0
  43. data/lib/generators/ext_form/templates/_form.html.haml +12 -0
  44. data/lib/generators/ext_form/templates/_form.html.slim +12 -0
  45. data/lib/generators/ext_form/templates/config/initializers/z_ext_form.rb +70 -0
  46. data/lib/generators/ext_form/templates/config/initializers/z_ext_form_bootstrap.rb +59 -0
  47. data/lib/generators/ext_form/templates/config/locales/ext_form.en.yml +2 -0
  48. data/lib/tasks/ext_form_tasks.rake +4 -0
  49. data/spec/builders/ext_form_builder_bs_spec.rb +78 -0
  50. data/spec/builders/ext_form_builder_spec.rb +100 -0
  51. data/spec/dummy/README.rdoc +28 -0
  52. data/spec/dummy/Rakefile +6 -0
  53. data/spec/dummy/app/assets/javascripts/application.js +27 -0
  54. data/spec/dummy/app/assets/javascripts/order_headers.js +2 -0
  55. data/spec/dummy/app/assets/javascripts/order_lines.js +2 -0
  56. data/spec/dummy/app/assets/javascripts/shipments.js +2 -0
  57. data/spec/dummy/app/assets/stylesheets/application.css.scss +17 -0
  58. data/spec/dummy/app/assets/stylesheets/order_headers.css +4 -0
  59. data/spec/dummy/app/assets/stylesheets/order_lines.css +4 -0
  60. data/spec/dummy/app/assets/stylesheets/scaffold.css +56 -0
  61. data/spec/dummy/app/assets/stylesheets/shipments.css +4 -0
  62. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  63. data/spec/dummy/app/controllers/order_headers_controller.rb +62 -0
  64. data/spec/dummy/app/controllers/order_lines_controller.rb +58 -0
  65. data/spec/dummy/app/controllers/shipments_controller.rb +58 -0
  66. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  67. data/spec/dummy/app/helpers/order_headers_helper.rb +2 -0
  68. data/spec/dummy/app/helpers/order_lines_helper.rb +2 -0
  69. data/spec/dummy/app/helpers/shipments_helper.rb +2 -0
  70. data/spec/dummy/app/models/order_header.rb +9 -0
  71. data/spec/dummy/app/models/order_line.rb +6 -0
  72. data/spec/dummy/app/models/order_type.rb +2 -0
  73. data/spec/dummy/app/models/shipment.rb +3 -0
  74. data/spec/dummy/app/views/layouts/application.html.erb +17 -0
  75. data/spec/dummy/app/views/order_headers/_form.html.erb +53 -0
  76. data/spec/dummy/app/views/order_headers/edit.html.erb +3 -0
  77. data/spec/dummy/app/views/order_headers/index.html.erb +29 -0
  78. data/spec/dummy/app/views/order_headers/new.html.erb +5 -0
  79. data/spec/dummy/app/views/order_headers/show.html.erb +14 -0
  80. data/spec/dummy/app/views/order_lines/_form.html.erb +33 -0
  81. data/spec/dummy/app/views/order_lines/edit.html.erb +6 -0
  82. data/spec/dummy/app/views/order_lines/index.html.erb +33 -0
  83. data/spec/dummy/app/views/order_lines/new.html.erb +5 -0
  84. data/spec/dummy/app/views/order_lines/show.html.erb +24 -0
  85. data/spec/dummy/app/views/shipments/_form.html.erb +37 -0
  86. data/spec/dummy/app/views/shipments/edit.html.erb +6 -0
  87. data/spec/dummy/app/views/shipments/index.html.erb +35 -0
  88. data/spec/dummy/app/views/shipments/new.html.erb +5 -0
  89. data/spec/dummy/app/views/shipments/show.html.erb +29 -0
  90. data/spec/dummy/bin/bundle +3 -0
  91. data/spec/dummy/bin/rails +4 -0
  92. data/spec/dummy/bin/rake +4 -0
  93. data/spec/dummy/config/application.rb +28 -0
  94. data/spec/dummy/config/boot.rb +5 -0
  95. data/spec/dummy/config/database.yml +25 -0
  96. data/spec/dummy/config/environment.rb +5 -0
  97. data/spec/dummy/config/environments/development.rb +29 -0
  98. data/spec/dummy/config/environments/production.rb +80 -0
  99. data/spec/dummy/config/environments/test.rb +36 -0
  100. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  101. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  102. data/spec/dummy/config/initializers/inflections.rb +16 -0
  103. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  104. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  105. data/spec/dummy/config/initializers/session_store.rb +3 -0
  106. data/spec/dummy/config/initializers/simple_form.rb +145 -0
  107. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  108. data/spec/dummy/config/initializers/z_ext_form.rb +70 -0
  109. data/spec/dummy/config/initializers/z_ext_form_bootstrap.rb +59 -0
  110. data/spec/dummy/config/locales/en.yml +23 -0
  111. data/spec/dummy/config/locales/ext_form.en.yml +26 -0
  112. data/spec/dummy/config/locales/simple_form.en.yml +26 -0
  113. data/spec/dummy/config/routes.rb +10 -0
  114. data/spec/dummy/config.ru +4 -0
  115. data/spec/dummy/db/development.sqlite3 +0 -0
  116. data/spec/dummy/db/migrate/20130822091938_create_order_headers.rb +10 -0
  117. data/spec/dummy/db/migrate/20130822092035_create_order_lines.rb +12 -0
  118. data/spec/dummy/db/migrate/20130822092136_create_shipments.rb +13 -0
  119. data/spec/dummy/db/migrate/20130913025429_add_order_date_to_order_headers.rb +5 -0
  120. data/spec/dummy/db/migrate/20130913082503_add_bill_to_customer_to_order_headers.rb +7 -0
  121. data/spec/dummy/db/migrate/20130914101200_create_order_types.rb +9 -0
  122. data/spec/dummy/db/migrate/20130914101232_add_order_type_id_to_order_headers.rb +5 -0
  123. data/spec/dummy/db/schema.rb +64 -0
  124. data/spec/dummy/db/seeds.rb +3 -0
  125. data/spec/dummy/db/test.sqlite3 +0 -0
  126. data/spec/dummy/lib/templates/erb/scaffold/_form.html.erb +12 -0
  127. data/spec/dummy/lib/templates/slim/scaffold/_form.html.slim +12 -0
  128. data/spec/dummy/log/development.log +30851 -0
  129. data/spec/dummy/log/test.log +8888 -0
  130. data/spec/dummy/public/404.html +58 -0
  131. data/spec/dummy/public/422.html +58 -0
  132. data/spec/dummy/public/500.html +57 -0
  133. data/spec/dummy/public/favicon.ico +0 -0
  134. data/spec/dummy/public/javascripts/nested_form.js +120 -0
  135. data/spec/dummy/spec/factories/order_types.rb +7 -0
  136. data/spec/dummy/tmp/cache/assets/development/sass/0be6a8d566db001f251fcb3d330b625bdcde50b0/select2.css.scssc +0 -0
  137. data/spec/dummy/tmp/cache/assets/development/sass/0f754ef2ba2bade74c446fd0dc8d2c538b2ee4ba/bootstrap-datetimepicker.cssc +0 -0
  138. data/spec/dummy/tmp/cache/assets/development/sass/43e39f3776203b555edf4427cbeca13a3e80bf4e/application.scssc +0 -0
  139. data/spec/dummy/tmp/cache/assets/development/sass/43e39f3776203b555edf4427cbeca13a3e80bf4e/application_bootstrap.css.scssc +0 -0
  140. data/spec/dummy/tmp/cache/assets/development/sass/43e39f3776203b555edf4427cbeca13a3e80bf4e/base.css.scssc +0 -0
  141. data/spec/dummy/tmp/cache/assets/development/sass/95877ca3fb97306427e6a8c3200a77fa726c2979/bootstrap-responsive.scssc +0 -0
  142. data/spec/dummy/tmp/cache/assets/development/sass/95877ca3fb97306427e6a8c3200a77fa726c2979/bootstrap.scssc +0 -0
  143. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_accordion.scssc +0 -0
  144. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_alerts.scssc +0 -0
  145. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_breadcrumbs.scssc +0 -0
  146. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_button-groups.scssc +0 -0
  147. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_buttons.scssc +0 -0
  148. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_carousel.scssc +0 -0
  149. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_close.scssc +0 -0
  150. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_code.scssc +0 -0
  151. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_component-animations.scssc +0 -0
  152. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_dropdowns.scssc +0 -0
  153. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_forms.scssc +0 -0
  154. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_grid.scssc +0 -0
  155. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_hero-unit.scssc +0 -0
  156. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_labels-badges.scssc +0 -0
  157. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_layouts.scssc +0 -0
  158. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_media.scssc +0 -0
  159. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_mixins.scssc +0 -0
  160. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_modals.scssc +0 -0
  161. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_navbar.scssc +0 -0
  162. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_navs.scssc +0 -0
  163. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_pager.scssc +0 -0
  164. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_pagination.scssc +0 -0
  165. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_popovers.scssc +0 -0
  166. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_progress-bars.scssc +0 -0
  167. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_reset.scssc +0 -0
  168. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_responsive-1200px-min.scssc +0 -0
  169. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_responsive-767px-max.scssc +0 -0
  170. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_responsive-768px-979px.scssc +0 -0
  171. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_responsive-navbar.scssc +0 -0
  172. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_responsive-utilities.scssc +0 -0
  173. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_scaffolding.scssc +0 -0
  174. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_sprites.scssc +0 -0
  175. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_tables.scssc +0 -0
  176. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_thumbnails.scssc +0 -0
  177. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_tooltip.scssc +0 -0
  178. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_type.scssc +0 -0
  179. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_utilities.scssc +0 -0
  180. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_variables.scssc +0 -0
  181. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/_wells.scssc +0 -0
  182. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/bootstrap.scssc +0 -0
  183. data/spec/dummy/tmp/cache/assets/development/sass/c75ed21fe4fe5a931216dc17f876dea4e6c936a7/responsive.scssc +0 -0
  184. data/spec/dummy/tmp/cache/assets/development/sass/d8cdc3e1698ff449e2e9ab35ca24a00a8d724935/application.css.scssc +0 -0
  185. data/spec/dummy/tmp/cache/assets/development/sass/d8cdc3e1698ff449e2e9ab35ca24a00a8d724935/scaffolds.css.scssc +0 -0
  186. data/spec/dummy/tmp/cache/assets/development/sass/d8cdc3e1698ff449e2e9ab35ca24a00a8d724935/test_scaflds.css.scssc +0 -0
  187. data/spec/dummy/tmp/cache/assets/development/sprockets/00171108bd75279e653c1ffb5b4650b8 +0 -0
  188. data/spec/dummy/tmp/cache/assets/development/sprockets/05029f2e1c68338ac88af8005acab3ca +0 -0
  189. data/spec/dummy/tmp/cache/assets/development/sprockets/08318fdb5f5b783c22442a6aeb73730e +0 -0
  190. data/spec/dummy/tmp/cache/assets/development/sprockets/08f00d4a1bac197d382c2269a184f9e4 +0 -0
  191. data/spec/dummy/tmp/cache/assets/development/sprockets/0b6c06f6bcf535567c19f70f7aa5144d +0 -0
  192. data/spec/dummy/tmp/cache/assets/development/sprockets/0b9076b70e22dd7976e589018cdf65ca +0 -0
  193. data/spec/dummy/tmp/cache/assets/development/sprockets/0e8461b429e0249b8dc74d457fcc17d3 +0 -0
  194. data/spec/dummy/tmp/cache/assets/development/sprockets/0f074c0ea10680a3ba979bbd1d2ff756 +0 -0
  195. data/spec/dummy/tmp/cache/assets/development/sprockets/0f5877c1fb159c1a5f1602569a0cdde2 +0 -0
  196. data/spec/dummy/tmp/cache/assets/development/sprockets/0f8cf3c40768cf2ab52c613a7efc30cb +0 -0
  197. data/spec/dummy/tmp/cache/assets/development/sprockets/10fcfbe6ebae11a40c8eac41939a1b9a +0 -0
  198. data/spec/dummy/tmp/cache/assets/development/sprockets/126ebaa8ad57e48772c035caac2ed632 +0 -0
  199. data/spec/dummy/tmp/cache/assets/development/sprockets/13c6f1c4603d5736407a6b5f7889a056 +0 -0
  200. data/spec/dummy/tmp/cache/assets/development/sprockets/13f8355b45d7c46c05177fef3b7f6283 +0 -0
  201. data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  202. data/spec/dummy/tmp/cache/assets/development/sprockets/157d2eedb817dece09700185cd4101e3 +0 -0
  203. data/spec/dummy/tmp/cache/assets/development/sprockets/16039dc737e753516f4399dcd38d6de7 +0 -0
  204. data/spec/dummy/tmp/cache/assets/development/sprockets/19699f0bd9bbacb926aa665d057d7dcc +0 -0
  205. data/spec/dummy/tmp/cache/assets/development/sprockets/2013f24e3245656ca1e5890649a0b023 +0 -0
  206. data/spec/dummy/tmp/cache/assets/development/sprockets/26bd44751cc9640593dc583d6be8410d +0 -0
  207. data/spec/dummy/tmp/cache/assets/development/sprockets/272f5096d49f011351e9f4780c313741 +0 -0
  208. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  209. data/spec/dummy/tmp/cache/assets/development/sprockets/32ef1c9e94a83350bad5e887c416c5b6 +0 -0
  210. data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  211. data/spec/dummy/tmp/cache/assets/development/sprockets/367865b241c60ef0e9a85c9f9910f7d4 +0 -0
  212. data/spec/dummy/tmp/cache/assets/development/sprockets/371bf96e99717688ed7313a0c53f4212 +0 -0
  213. data/spec/dummy/tmp/cache/assets/development/sprockets/37984c7de5e7d22002a378234035e51c +0 -0
  214. data/spec/dummy/tmp/cache/assets/development/sprockets/4201264f7710f91dc1c389a2497eda7d +0 -0
  215. data/spec/dummy/tmp/cache/assets/development/sprockets/4843087e4f4577291013564353d9be98 +0 -0
  216. data/spec/dummy/tmp/cache/assets/development/sprockets/490b125495df24b66caa52d70f8aa64d +0 -0
  217. data/spec/dummy/tmp/cache/assets/development/sprockets/4c9470e682578ab5fc183f98fae5f42d +0 -0
  218. data/spec/dummy/tmp/cache/assets/development/sprockets/4e81b6b6eb1e1462b1eea2caee6bfcc6 +0 -0
  219. data/spec/dummy/tmp/cache/assets/development/sprockets/510da110ae528e2d22533be39ff696c5 +0 -0
  220. data/spec/dummy/tmp/cache/assets/development/sprockets/518c73ecd762cbf6d85a3ae693e08d01 +0 -0
  221. data/spec/dummy/tmp/cache/assets/development/sprockets/56401bbafd08927b55572c8ef7e88883 +0 -0
  222. data/spec/dummy/tmp/cache/assets/development/sprockets/5865993e4fa54b7f6f0186ebaffff12b +0 -0
  223. data/spec/dummy/tmp/cache/assets/development/sprockets/59f25755df49e4db5915553e3d2ef412 +0 -0
  224. data/spec/dummy/tmp/cache/assets/development/sprockets/5a48dae6fe5b78da3082b1347022ee01 +0 -0
  225. data/spec/dummy/tmp/cache/assets/development/sprockets/5f62321f43b55988b6cb95367556d822 +0 -0
  226. data/spec/dummy/tmp/cache/assets/development/sprockets/61fab520b090f94084c9a7ffc402ad3c +0 -0
  227. data/spec/dummy/tmp/cache/assets/development/sprockets/653178c2e0c5d134069e58196f7bf28e +0 -0
  228. data/spec/dummy/tmp/cache/assets/development/sprockets/661c74f15a009d482fdad85f811e6f8e +0 -0
  229. data/spec/dummy/tmp/cache/assets/development/sprockets/6668d3ee30c1513097c95bcc0a27696a +0 -0
  230. data/spec/dummy/tmp/cache/assets/development/sprockets/690b40f9a765547b660ac81cbd5ed378 +0 -0
  231. data/spec/dummy/tmp/cache/assets/development/sprockets/6bdff36d9dbeb7ae3e6802b482a04668 +0 -0
  232. data/spec/dummy/tmp/cache/assets/development/sprockets/6eaa97256ef2d58208ab91c60707acdb +0 -0
  233. data/spec/dummy/tmp/cache/assets/development/sprockets/6fa120c855c745c904828746e82b2b07 +0 -0
  234. data/spec/dummy/tmp/cache/assets/development/sprockets/6fc757c2c8329244ca95d6909865bbc2 +0 -0
  235. data/spec/dummy/tmp/cache/assets/development/sprockets/715840f8887bc1e70ef3cc18b429cbc8 +0 -0
  236. data/spec/dummy/tmp/cache/assets/development/sprockets/754b02ea2ed1c85b7756de6452f4aeb7 +0 -0
  237. data/spec/dummy/tmp/cache/assets/development/sprockets/764fdaef2f219fafc8db0923a56c23a3 +0 -0
  238. data/spec/dummy/tmp/cache/assets/development/sprockets/78fdc1d9add39ed3fdcbf7cae3df4190 +0 -0
  239. data/spec/dummy/tmp/cache/assets/development/sprockets/7a7280187e89f6c4256217ea0fe1e787 +0 -0
  240. data/spec/dummy/tmp/cache/assets/development/sprockets/7b2d3e5e25b0901f78fbf8c9cb9570c4 +0 -0
  241. data/spec/dummy/tmp/cache/assets/development/sprockets/84eb79ed8e43cf9414e6ecfd38c5a19f +0 -0
  242. data/spec/dummy/tmp/cache/assets/development/sprockets/87172f2d7a412d1fe87d7775d589b883 +0 -0
  243. data/spec/dummy/tmp/cache/assets/development/sprockets/871fe15e38e1cf354ac33b4faf796fd3 +0 -0
  244. data/spec/dummy/tmp/cache/assets/development/sprockets/875849c72f053c7a7674e9fd72ee2cd4 +0 -0
  245. data/spec/dummy/tmp/cache/assets/development/sprockets/87a55c890eedab0cc5d1e3f2c2b2da4b +0 -0
  246. data/spec/dummy/tmp/cache/assets/development/sprockets/88741eb863751c5d5adb82282f6df5cd +0 -0
  247. data/spec/dummy/tmp/cache/assets/development/sprockets/8ab512c9b33ac90e699b73469d71f061 +0 -0
  248. data/spec/dummy/tmp/cache/assets/development/sprockets/8cc360b254f1bff91753f954e7591a9b +0 -0
  249. data/spec/dummy/tmp/cache/assets/development/sprockets/8ec990d84f5dedd35001397078415137 +0 -0
  250. data/spec/dummy/tmp/cache/assets/development/sprockets/9181401ef96921b28b49d4ec48261a4d +0 -0
  251. data/spec/dummy/tmp/cache/assets/development/sprockets/9409af55392b7f03edb441d5b53b931c +0 -0
  252. data/spec/dummy/tmp/cache/assets/development/sprockets/94e46c0e76c8f392586af76b0f6c6e93 +0 -0
  253. data/spec/dummy/tmp/cache/assets/development/sprockets/968566581a35be861fa4f8fed757dcae +0 -0
  254. data/spec/dummy/tmp/cache/assets/development/sprockets/96f8ac0ca90b5e46fb770d1695a77b2d +0 -0
  255. data/spec/dummy/tmp/cache/assets/development/sprockets/9b51a99e821d1802733dceac6764d18f +0 -0
  256. data/spec/dummy/tmp/cache/assets/development/sprockets/9d8681a4ce63f327a868f759096673e8 +0 -0
  257. data/spec/dummy/tmp/cache/assets/development/sprockets/a004f4ca229f6e9e761d2c86226e04f4 +0 -0
  258. data/spec/dummy/tmp/cache/assets/development/sprockets/a0a671e624f03533a82b1ec899bf3b21 +0 -0
  259. data/spec/dummy/tmp/cache/assets/development/sprockets/a0f669003bef02490064a16cfdb916fe +0 -0
  260. data/spec/dummy/tmp/cache/assets/development/sprockets/a411f643e05384fdb860f193e1dbe8f8 +0 -0
  261. data/spec/dummy/tmp/cache/assets/development/sprockets/a4abc5f3fc1bfe41be3470836766d110 +0 -0
  262. data/spec/dummy/tmp/cache/assets/development/sprockets/a82a869a86d5cbcbb101123eb6448f0c +0 -0
  263. data/spec/dummy/tmp/cache/assets/development/sprockets/a97cd428904e5968d05f7d3a5fd50f85 +0 -0
  264. data/spec/dummy/tmp/cache/assets/development/sprockets/aa87366fe7cd02f1be035665580cf066 +0 -0
  265. data/spec/dummy/tmp/cache/assets/development/sprockets/ada9a8c9882e963e6b98cdcaf20af34f +0 -0
  266. data/spec/dummy/tmp/cache/assets/development/sprockets/af326fcf9b4f69ff70d3610d0696b585 +0 -0
  267. data/spec/dummy/tmp/cache/assets/development/sprockets/af5ab48d2f371513fb609f8bdec3ac42 +0 -0
  268. data/spec/dummy/tmp/cache/assets/development/sprockets/b245fe00601bf4b4c2bd6ce9286a53dc +0 -0
  269. data/spec/dummy/tmp/cache/assets/development/sprockets/b51a3679ccee92d6e374deac3359cc69 +0 -0
  270. data/spec/dummy/tmp/cache/assets/development/sprockets/baed877d386dc374496dcd62af36bc5b +0 -0
  271. data/spec/dummy/tmp/cache/assets/development/sprockets/bc6f2f1da483ac27102f9412ee294dbf +0 -0
  272. data/spec/dummy/tmp/cache/assets/development/sprockets/bcca522c6302f184f12fe0e8a7d7e71a +0 -0
  273. data/spec/dummy/tmp/cache/assets/development/sprockets/bd3936370d0f952ada5774e2230046ed +0 -0
  274. data/spec/dummy/tmp/cache/assets/development/sprockets/c04a836e22ec09c7eae6eae9349efee3 +0 -0
  275. data/spec/dummy/tmp/cache/assets/development/sprockets/c13fc73ceafa45876a901b3e775b83ae +0 -0
  276. data/spec/dummy/tmp/cache/assets/development/sprockets/c2816385f6bc1d4ef24315437e9353d3 +0 -0
  277. data/spec/dummy/tmp/cache/assets/development/sprockets/c4e265ba144f19c1f646f9d8271c0702 +0 -0
  278. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  279. data/spec/dummy/tmp/cache/assets/development/sprockets/d4c36568a5145e04bfbbefd37fecdde7 +0 -0
  280. data/spec/dummy/tmp/cache/assets/development/sprockets/d63d1c956772687b2dd2c9b43533e795 +0 -0
  281. data/spec/dummy/tmp/cache/assets/development/sprockets/d75dd624db3682fd4fed243c5f6f2e69 +0 -0
  282. data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  283. data/spec/dummy/tmp/cache/assets/development/sprockets/d7d3659361bd25606f9efaba128bf4c1 +0 -0
  284. data/spec/dummy/tmp/cache/assets/development/sprockets/d9fa58e1385bfb03f2ede65c90f36d70 +0 -0
  285. data/spec/dummy/tmp/cache/assets/development/sprockets/da8e37f2c9e3ea8f443def70515d1df0 +0 -0
  286. data/spec/dummy/tmp/cache/assets/development/sprockets/dcff3d1cd16d434b55e09399722e68be +0 -0
  287. data/spec/dummy/tmp/cache/assets/development/sprockets/e18f7bb0b671acf59ad700724547a456 +0 -0
  288. data/spec/dummy/tmp/cache/assets/development/sprockets/e459168835a5f27b832ace20874f7c10 +0 -0
  289. data/spec/dummy/tmp/cache/assets/development/sprockets/e618b87b000e1c8d606542b2a7b4936f +0 -0
  290. data/spec/dummy/tmp/cache/assets/development/sprockets/e6df0f40358bfc2568038d9cf71859a5 +0 -0
  291. data/spec/dummy/tmp/cache/assets/development/sprockets/ebe8c427280f71fed250770f7d5e0af8 +0 -0
  292. data/spec/dummy/tmp/cache/assets/development/sprockets/edefa48dfc6b66b08d68e6438d1344b4 +0 -0
  293. data/spec/dummy/tmp/cache/assets/development/sprockets/ee70ec49c833625099b94820cbfaf238 +0 -0
  294. data/spec/dummy/tmp/cache/assets/development/sprockets/eea8d1c182d93d92a52f24a90d5c92af +0 -0
  295. data/spec/dummy/tmp/cache/assets/development/sprockets/efe3e82d4fe0ca8a3427678a9cd1d070 +0 -0
  296. data/spec/dummy/tmp/cache/assets/development/sprockets/f024e5fd86a61ac8399d564f8202bbc8 +0 -0
  297. data/spec/dummy/tmp/cache/assets/development/sprockets/f12542794a06e22b1dbd97250d49deb1 +0 -0
  298. data/spec/dummy/tmp/cache/assets/development/sprockets/f34759266a45010771006dcbb608d179 +0 -0
  299. data/spec/dummy/tmp/cache/assets/development/sprockets/f466a3fe42e17653acb9980dae9be11a +0 -0
  300. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  301. data/spec/dummy/tmp/cache/assets/development/sprockets/f86d0394f2c6bebf4ad490ce4a37d754 +0 -0
  302. data/spec/dummy/tmp/cache/assets/development/sprockets/fd5a31651e4fc8cf4a3199e8db16d53e +0 -0
  303. data/spec/dummy/tmp/cache/assets/development/sprockets/fd71e811fb40f0e16e339622af4c771f +0 -0
  304. data/spec/dummy/tmp/cache/assets/development/sprockets/fd843e12fcdd9539f8e3d7384a19bb31 +0 -0
  305. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  306. data/spec/dummy/tmp/cache/assets/test/sprockets/19699f0bd9bbacb926aa665d057d7dcc +0 -0
  307. data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  308. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  309. data/spec/dummy/tmp/cache/assets/test/sprockets/371bf96e99717688ed7313a0c53f4212 +0 -0
  310. data/spec/dummy/tmp/cache/assets/test/sprockets/59f25755df49e4db5915553e3d2ef412 +0 -0
  311. data/spec/dummy/tmp/cache/assets/test/sprockets/6fc757c2c8329244ca95d6909865bbc2 +0 -0
  312. data/spec/dummy/tmp/cache/assets/test/sprockets/764fdaef2f219fafc8db0923a56c23a3 +0 -0
  313. data/spec/dummy/tmp/cache/assets/test/sprockets/87172f2d7a412d1fe87d7775d589b883 +0 -0
  314. data/spec/dummy/tmp/cache/assets/test/sprockets/88741eb863751c5d5adb82282f6df5cd +0 -0
  315. data/spec/dummy/tmp/cache/assets/test/sprockets/96f8ac0ca90b5e46fb770d1695a77b2d +0 -0
  316. data/spec/dummy/tmp/cache/assets/test/sprockets/a4abc5f3fc1bfe41be3470836766d110 +0 -0
  317. data/spec/dummy/tmp/cache/assets/test/sprockets/af326fcf9b4f69ff70d3610d0696b585 +0 -0
  318. data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  319. data/spec/dummy/tmp/cache/assets/test/sprockets/d63d1c956772687b2dd2c9b43533e795 +0 -0
  320. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  321. data/spec/dummy/tmp/cache/assets/test/sprockets/d7d3659361bd25606f9efaba128bf4c1 +0 -0
  322. data/spec/dummy/tmp/cache/assets/test/sprockets/f024e5fd86a61ac8399d564f8202bbc8 +0 -0
  323. data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  324. data/spec/dummy/tmp/cache/assets/test/sprockets/fd5a31651e4fc8cf4a3199e8db16d53e +0 -0
  325. data/spec/ext_form_spec.rb +12 -0
  326. data/spec/factories/order_header_factory.rb +22 -0
  327. data/spec/helpers/dt_picker_spec.rb +66 -0
  328. data/spec/helpers/dt_picker_tag_spec.rb +65 -0
  329. data/spec/helpers/form_helper_bs_spec.rb +102 -0
  330. data/spec/helpers/form_helper_spec.rb +109 -0
  331. data/spec/spec_helper.rb +15 -0
  332. data/spec/support/form_helper.rb +21 -0
  333. metadata +787 -0
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'ext_form spec:' do
4
+ it 'setup successfully' do
5
+ ExtForm.setup do |e|
6
+ e.should eq(ExtForm)
7
+ e.layout = 'BootstrapLayout'
8
+ end
9
+
10
+ ExtForm.layout.should eq('BootstrapLayout')
11
+ end
12
+ end
@@ -0,0 +1,22 @@
1
+ FactoryGirl.define do
2
+ sequence :num do |n|
3
+ "OO#{n}"
4
+ end
5
+
6
+ factory :order_header do
7
+ order_number { generate(:num) }
8
+ customer_name { "cust_#{generate(:num)}" }
9
+ end
10
+
11
+ factory :order_line do
12
+ item_name 'test item'
13
+ quantity 100
14
+ price 10
15
+ end
16
+
17
+ factory :shipment do
18
+ shipping_date { Time.now }
19
+ shipping_quantity 1
20
+ end
21
+
22
+ end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+ require 'action_view'
3
+
4
+ describe 'dt_picker spec:' do
5
+
6
+ before do
7
+ ExtForm.setup do |e|
8
+ e.layout = 'BootstrapLayout'
9
+ e.default_wrapper = :ext_bootstrap
10
+ e.default_layout = {
11
+ layout: '1:1',
12
+ spacing: '1',
13
+ label_width: '2',
14
+ max_width: '12'
15
+ }
16
+ end
17
+ end
18
+
19
+ let(:order_header) { FactoryGirl.create(:order_header) }
20
+
21
+ context 'date options' do
22
+
23
+ subject {
24
+ helper.ext_form_for(order_header) do |f|
25
+ f.input :order_date
26
+ end
27
+ }
28
+
29
+ it 'order_date should render date_picker' do
30
+ expect(subject).to match /<input.*data-format="yyyy-MM-dd" data-language="zh-CN" data-pick-time="false"/
31
+ expect(subject).to match /<span class="add-on"><i data-date-icon="icon-calendar" data-time-icon="icon-time"/
32
+ end
33
+
34
+ end
35
+
36
+ context 'time options' do
37
+
38
+ subject {
39
+ helper.ext_form_for(order_header) do |f|
40
+ f.input :order_number, as: :time_picker, input_html: {data: {start_date: '2012-2-2', end_date: '2012-3-3'}}
41
+ end
42
+ }
43
+
44
+ it 'order_date should render time_picker' do
45
+ expect(subject).to match /<input.*data-format="hh:mm:ss" data-language="zh-CN" data-pick-date="false"/
46
+ expect(subject).to match /data-start-date="2012-2-2"/
47
+ expect(subject).to match /data-end-date="2012-3-3"/
48
+ end
49
+
50
+ end
51
+
52
+ context 'datetime options' do
53
+
54
+ subject {
55
+ helper.ext_form_for(order_header) do |f|
56
+ f.input :order_number, as: :dt_picker
57
+ end
58
+ }
59
+
60
+ it 'order_date should render dt_picker' do
61
+ expect(subject).to match /<input.*data-format="yyyy-MM-dd hh:mm:ss" data-language="zh-CN"/
62
+ end
63
+
64
+ end
65
+
66
+ end
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+ require 'action_view'
3
+
4
+ describe 'dt_picker_tag spec:' do
5
+
6
+ before do
7
+ ExtForm.setup do |e|
8
+ e.layout = 'BootstrapLayout'
9
+ e.default_wrapper = :ext_bootstrap
10
+ e.default_layout = {
11
+ layout: '1:1',
12
+ spacing: '1',
13
+ label_width: '2',
14
+ max_width: '12'
15
+ }
16
+ end
17
+ end
18
+
19
+ let(:order_header) { FactoryGirl.create(:order_header) }
20
+
21
+ context 'date options' do
22
+
23
+ subject {
24
+ helper.dt_picker_tag('test', '2013-3-3', data: {pick_time: false, format: 'yyyy-MM-dd', language: 'zh-CN'})
25
+ }
26
+
27
+ it 'order_date should render date_picker' do
28
+ expect(subject).to match /<input.*data-format="yyyy-MM-dd" data-language="zh-CN" data-pick-time="false"/
29
+ expect(subject).to match /<span class="add-on"><i data-date-icon="icon-calendar" data-time-icon="icon-time"/
30
+ end
31
+
32
+ end
33
+
34
+ context 'time options' do
35
+
36
+ subject {
37
+ helper.dt_picker_tag('test', '2013-3-3',
38
+ data: {pick_date: false,
39
+ format: 'hh:mm:ss',
40
+ language: 'zh-CN',
41
+ start_date: '2012-2-2',
42
+ end_date: '2012-3-3'})
43
+ }
44
+
45
+ it 'order_date should render time_picker' do
46
+ expect(subject).to match /<input.*data-format="hh:mm:ss" data-language="zh-CN" data-pick-date="false"/
47
+ expect(subject).to match /data-start-date="2012-2-2"/
48
+ expect(subject).to match /data-end-date="2012-3-3"/
49
+ end
50
+
51
+ end
52
+
53
+ context 'datetime options' do
54
+
55
+ subject {
56
+ helper.dt_picker_tag('test', '2013-3-3', data: {format: 'yyyy-MM-dd hh:mm:ss', language: 'zh-CN'})
57
+ }
58
+
59
+ it 'order_date should render dt_picker' do
60
+ expect(subject).to match /<input.*data-format="yyyy-MM-dd hh:mm:ss" data-language="zh-CN"/
61
+ end
62
+
63
+ end
64
+
65
+ end
@@ -0,0 +1,102 @@
1
+ require 'spec_helper'
2
+ require 'action_view'
3
+
4
+ describe 'form_helper_bs spec:' do
5
+
6
+ before do
7
+ ExtForm.setup do |e|
8
+ e.layout = 'BootstrapLayout'
9
+ e.default_wrapper = :ext_bootstrap
10
+ e.default_layout = {
11
+ layout: '1:1',
12
+ spacing: '1',
13
+ label_width: '2',
14
+ max_width: '12'
15
+ }
16
+ end
17
+ end
18
+
19
+ let(:order_header) { FactoryGirl.create(:order_header) }
20
+
21
+ context 'no options' do
22
+
23
+ subject {
24
+ helper.ext_form_for(order_header) do |f|
25
+ f.input :order_number
26
+ end
27
+ }
28
+
29
+ it 'ext_form_for should render all-inputs' do
30
+ expect(subject).to match /<div class="left-spacing span1">/
31
+ expect(subject).to match /<div class="all-inputs span10">/
32
+ expect(subject).to match /<div class="right-spacing span1">/
33
+
34
+ expect(subject).to match /<div class="span2"><label/
35
+ expect(subject).to match /<div class="span3"><input class="span3/
36
+ end
37
+
38
+ end
39
+
40
+ context 'correct options' do
41
+
42
+ subject {
43
+ helper.ext_form_for(order_header, l: bs_correct_options) do |f|
44
+ f.input :order_number
45
+ end
46
+ }
47
+
48
+ it 'ext_form_for should render all-inputs' do
49
+ expect(subject).not_to match /<div class="left-spacing span0">/
50
+ expect(subject).to match /<div class="all-inputs span12">/
51
+ expect(subject).not_to match /<div class="right-spacing span0">/
52
+
53
+ expect(subject).to match /<div class="span1"><label/
54
+ expect(subject).to match /<div class="span3"><input class="span3/
55
+ end
56
+
57
+ end
58
+
59
+ context 'error options' do
60
+
61
+ subject {
62
+ helper.ext_form_for(order_header, l: bs_error_options) do |f|
63
+ f.input :order_number
64
+ end
65
+ }
66
+
67
+ it 'ext_form_for should render all-inputs' do
68
+ expect(subject).to match /<div class="left-spacing span1">/
69
+ expect(subject).to match /<div class="all-inputs span10">/
70
+ expect(subject).to match /<div class="right-spacing span1">/
71
+
72
+ expect(subject).to match /<div class="span2"><label/
73
+ expect(subject).to match /<div class="span3"><input class="span3/
74
+ end
75
+
76
+ end
77
+
78
+ context 'swap layout' do
79
+
80
+ subject {
81
+ helper.ext_form_for(order_header, l: error_options) do |f|
82
+ [f.input(:order_number),
83
+ f.input(:customer_name),
84
+
85
+ f.inputs('1') do |ff|
86
+
87
+ [ff.input(:customer_name),
88
+ ff.input(:customer_name)].join.html_safe
89
+ end,
90
+
91
+ f.input(:order_number),
92
+ f.input(:customer_name)].join.html_safe
93
+ end
94
+ }
95
+
96
+ it 'ext_form_for and swap_layout should render all-inputs correctly' do
97
+ expect(subject).to match /<div class="span3"><input class="span3/
98
+ expect(subject).to match /<div class="span8"><input class="span8/
99
+ end
100
+ end
101
+
102
+ end
@@ -0,0 +1,109 @@
1
+ require 'spec_helper'
2
+ require 'action_view'
3
+
4
+ describe 'form_helper spec:' do
5
+
6
+ before do
7
+ ExtForm.setup do |e|
8
+ e.layout = 'DefaultLayout'
9
+ e.default_wrapper = :ext
10
+ e.default_layout = {
11
+ layout: '1:1',
12
+ spacing: '10',
13
+ label_width: '15',
14
+ max_width: '100',
15
+ measure: '%'
16
+ }
17
+ end
18
+ end
19
+
20
+ let(:order_header) { FactoryGirl.create(:order_header) }
21
+
22
+ context 'no options' do
23
+
24
+ subject {
25
+ helper.ext_form_for(order_header) do |f|
26
+ f.input :order_number
27
+ end
28
+ }
29
+
30
+ it 'ext_form_for should render all-inputs' do
31
+ expect(subject).to match /<div class="all-inputs" style="padding-left: 10%; padding-right: 10%; width: 80\.0%;">/
32
+ expect(subject).to match /<div style="width: 15%; float: left;"><label/
33
+ expect(subject).to match /<div style="width: 25\.0%; float: left;"><input class="input-with-layout/
34
+ end
35
+
36
+ end
37
+
38
+ context 'percentage options' do
39
+
40
+ subject {
41
+ helper.ext_form_for(order_header, l: percentage_options) do |f|
42
+ f.input :order_number
43
+ end
44
+ }
45
+
46
+ it 'ext_form_for should render all-inputs' do
47
+ expect(subject).to match /<div class="all-inputs" style="padding-left: 5%; padding-right: 5%; width: 90\.0%;">/
48
+ expect(subject).to match /<div style="width: 5%; float: left;"><label/
49
+ expect(subject).to match /<div style="width: 25\.0%; float: left;"><input class="input-with-layout/
50
+ end
51
+
52
+ end
53
+
54
+ context 'px options' do
55
+
56
+ subject {
57
+ helper.ext_form_for(order_header, l: px_options) do |f|
58
+ f.input :order_number
59
+ end
60
+ }
61
+
62
+ it 'ext_form_for should render all-inputs' do
63
+ expect(subject).to match /<div class="all-inputs" style="padding-left: 30px; padding-right: 30px; width: 840\.0px;">/
64
+ expect(subject).to match /<div style="width: 160px; float: left;"><label/
65
+ expect(subject).to match /<div style="width: 120\.0px; float: left;"><input class="input-with-layout/
66
+ end
67
+
68
+ end
69
+
70
+ context 'error options' do
71
+
72
+ subject {
73
+ helper.ext_form_for(order_header, l: error_options) do |f|
74
+ f.input :order_number
75
+ end
76
+ }
77
+
78
+ it 'ext_form_for should render all-inputs' do
79
+ expect(subject).to match /<div class="all-inputs" style="padding-left: 10%; padding-right: 10%; width: 80\.0%;">/
80
+ expect(subject).to match /<div style="width: 15%; float: left;"><label/
81
+ expect(subject).to match /<div style="width: 25\.0%; float: left;"><input class="input-with-layout/
82
+ end
83
+
84
+ end
85
+
86
+ context 'swap layout' do
87
+
88
+ subject {
89
+ helper.ext_form_for(order_header, l: error_options) do |f|
90
+ [f.input(:order_number),
91
+ f.input(:customer_name),
92
+
93
+ f.inputs('1') do |ff|
94
+
95
+ [ff.input(:customer_name),
96
+ ff.input(:customer_name)].join.html_safe
97
+ end,
98
+
99
+ f.input(:order_number),
100
+ f.input(:customer_name)].join.html_safe
101
+ end
102
+ }
103
+
104
+ it 'ext_form_for and swap_layout should render all-inputs correctly' do
105
+ expect(subject).to match /<div style="width: 25\.0%; float: left;"><input class="input-with-layout/
106
+ expect(subject).to match /<div style="width: 65\.0%; float: left;"><input class="input-with-layout/
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,15 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
3
+ require 'rspec/rails'
4
+ require 'rspec/autorun'
5
+ require 'factory_girl_rails'
6
+ Rails.backtrace_cleaner.remove_silencers!
7
+ # Load support files
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
9
+ RSpec.configure do |config|
10
+ config.mock_with :rspec
11
+ config.use_transactional_fixtures = true
12
+ config.infer_base_class_for_anonymous_controllers = false
13
+ config.order = "random"
14
+ config.include FormHelper
15
+ end
@@ -0,0 +1,21 @@
1
+ module FormHelper
2
+ def percentage_options
3
+ {spacing: '5', layout: '1:1:1', label_width: '5', max_width: '100', measure: '%'}
4
+ end
5
+
6
+ def px_options
7
+ {spacing: '30', layout: '1:1:1', label_width: '160', max_width: '900', measure: 'px'}
8
+ end
9
+
10
+ def error_options
11
+ {spacing: '30t', layout: '1:1:1:1', label_width: '160per', max_width: '980px', measure: 'no'}
12
+ end
13
+
14
+ def bs_correct_options
15
+ {spacing: '0', layout: '1:1:1', label_width: '1', max_width: '12'}
16
+ end
17
+
18
+ def bs_error_options
19
+ {spacing: '30t', layout: '1:1:1:1', label_width: '13', max_width: '15'}
20
+ end
21
+ end