bootstrap3_autocomplete_input 0.0.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 (247) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +32 -0
  4. data/app/inputs/autocomplete_input.rb +65 -0
  5. data/lib/assets/javascripts/bootstrap3-autocomplete-input.js +87 -0
  6. data/lib/assets/javascripts/bootstrap3-autocomplete-input.min.js +1 -0
  7. data/lib/assets/javascripts/bootstrap3-typeahead.js +476 -0
  8. data/lib/assets/javascripts/bootstrap3-typeahead.min.js +1 -0
  9. data/lib/bootstrap3_autocomplete_input.rb +24 -0
  10. data/lib/bootstrap3_autocomplete_input/controllers/autocomplete.rb +66 -0
  11. data/lib/bootstrap3_autocomplete_input/orm.rb +7 -0
  12. data/lib/bootstrap3_autocomplete_input/orm/active_record.rb +51 -0
  13. data/lib/bootstrap3_autocomplete_input/orm/mongo_mapper.rb +30 -0
  14. data/lib/bootstrap3_autocomplete_input/orm/mongoid.rb +44 -0
  15. data/lib/bootstrap3_autocomplete_input/rails/engine.rb +15 -0
  16. data/lib/bootstrap3_autocomplete_input/simple_form_inputs.rb +78 -0
  17. data/lib/bootstrap3_autocomplete_input/version.rb +3 -0
  18. data/lib/generators/autocomplete/install_generator.rb +0 -0
  19. data/lib/tasks/bootstrap3_autocomplete_input_tasks.rake +4 -0
  20. data/test/bootstrap3_autocomplete_input_test.rb +7 -0
  21. data/test/dummy/README.rdoc +28 -0
  22. data/test/dummy/Rakefile +6 -0
  23. data/test/dummy/app/assets/javascripts/application.js +18 -0
  24. data/test/dummy/app/assets/stylesheets/application.css.scss +3 -0
  25. data/test/dummy/app/controllers/application_controller.rb +5 -0
  26. data/test/dummy/app/controllers/clients_controller.rb +58 -0
  27. data/test/dummy/app/controllers/orders_controller.rb +60 -0
  28. data/test/dummy/app/helpers/application_helper.rb +2 -0
  29. data/test/dummy/app/helpers/clients_helper.rb +2 -0
  30. data/test/dummy/app/helpers/orders_helper.rb +2 -0
  31. data/test/dummy/app/models/client.rb +3 -0
  32. data/test/dummy/app/models/order.rb +3 -0
  33. data/test/dummy/app/views/clients/_form.html.erb +18 -0
  34. data/test/dummy/app/views/clients/edit.html.erb +6 -0
  35. data/test/dummy/app/views/clients/index.html.erb +24 -0
  36. data/test/dummy/app/views/clients/new.html.erb +5 -0
  37. data/test/dummy/app/views/clients/show.html.erb +4 -0
  38. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  39. data/test/dummy/app/views/orders/_form.html.erb +50 -0
  40. data/test/dummy/app/views/orders/edit.html.erb +6 -0
  41. data/test/dummy/app/views/orders/index.html.erb +23 -0
  42. data/test/dummy/app/views/orders/new.html.erb +5 -0
  43. data/test/dummy/app/views/orders/show.html.erb +4 -0
  44. data/test/dummy/bin/bundle +3 -0
  45. data/test/dummy/bin/rails +4 -0
  46. data/test/dummy/bin/rake +4 -0
  47. data/test/dummy/config.ru +4 -0
  48. data/test/dummy/config/application.rb +25 -0
  49. data/test/dummy/config/boot.rb +5 -0
  50. data/test/dummy/config/database.yml +25 -0
  51. data/test/dummy/config/environment.rb +5 -0
  52. data/test/dummy/config/environments/development.rb +37 -0
  53. data/test/dummy/config/environments/production.rb +78 -0
  54. data/test/dummy/config/environments/test.rb +39 -0
  55. data/test/dummy/config/initializers/assets.rb +8 -0
  56. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  57. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  58. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  59. data/test/dummy/config/initializers/inflections.rb +16 -0
  60. data/test/dummy/config/initializers/mime_types.rb +4 -0
  61. data/test/dummy/config/initializers/session_store.rb +3 -0
  62. data/test/dummy/config/initializers/simple_form.rb +166 -0
  63. data/test/dummy/config/initializers/simple_form_bootstrap.rb +136 -0
  64. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  65. data/test/dummy/config/locales/en.yml +23 -0
  66. data/test/dummy/config/locales/simple_form.en.yml +31 -0
  67. data/test/dummy/config/routes.rb +62 -0
  68. data/test/dummy/config/secrets.yml +22 -0
  69. data/test/dummy/db/development.sqlite3 +0 -0
  70. data/test/dummy/db/migrate/20141224031843_create_clients.rb +10 -0
  71. data/test/dummy/db/migrate/20141224031854_create_orders.rb +12 -0
  72. data/test/dummy/db/migrate/20141224032000_add_client_to_order.rb +6 -0
  73. data/test/dummy/db/schema.rb +30 -0
  74. data/test/dummy/lib/templates/erb/scaffold/_form.html.erb +13 -0
  75. data/test/dummy/log/development.log +163 -0
  76. data/test/dummy/public/404.html +67 -0
  77. data/test/dummy/public/422.html +67 -0
  78. data/test/dummy/public/500.html +66 -0
  79. data/test/dummy/public/assets/application-c75a9a9deda9531070f576f4b4f75c82.js +5 -0
  80. data/test/dummy/public/assets/application-c75a9a9deda9531070f576f4b4f75c82.js.gz +0 -0
  81. data/test/dummy/public/assets/application-f44356f250333028ca1fd1097ad49074.css +8146 -0
  82. data/test/dummy/public/assets/application-f44356f250333028ca1fd1097ad49074.css.gz +0 -0
  83. data/test/dummy/public/assets/bootstrap/glyphicons-halflings-regular-195cb410b49d75c104a5bc6ad385ac77.woff +0 -0
  84. data/test/dummy/public/assets/bootstrap/glyphicons-halflings-regular-38831bbd01504eaf996d291c5e157661.ttf +0 -0
  85. data/test/dummy/public/assets/bootstrap/glyphicons-halflings-regular-69ff52480052cf785cc3f4472e1d56d9.eot +0 -0
  86. data/test/dummy/public/assets/bootstrap/glyphicons-halflings-regular-8acb5264b8eab48469867b225a7f3eb5.svg +229 -0
  87. data/test/dummy/public/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-cf2b341a1531cbc2fc6ef5ad4701a2f2.png +0 -0
  88. data/test/dummy/public/assets/jquery-ui/ui-bg_flat_75_ffffff_40x100-5858cfe74efe6264f22d7173d47d59ff.png +0 -0
  89. data/test/dummy/public/assets/jquery-ui/ui-bg_glass_55_fbf9ee_1x400-ea25ba87e2239186bff03593a01ee8b9.png +0 -0
  90. data/test/dummy/public/assets/jquery-ui/ui-bg_glass_65_ffffff_1x400-c338312c804e21990fd135b4cfd47e34.png +0 -0
  91. data/test/dummy/public/assets/jquery-ui/ui-bg_glass_75_dadada_1x400-f341292284f79753f6c7437a4a56706e.png +0 -0
  92. data/test/dummy/public/assets/jquery-ui/ui-bg_glass_75_e6e6e6_1x400-d78f160584dc06a42b7309e5d6a6f181.png +0 -0
  93. data/test/dummy/public/assets/jquery-ui/ui-bg_glass_95_fef1ec_1x400-e9751011cbae1cab664dca499087cf35.png +0 -0
  94. data/test/dummy/public/assets/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-648c6d3e57afdb3827bcf9da30572df6.png +0 -0
  95. data/test/dummy/public/assets/jquery-ui/ui-icons_222222_256x240-af300280aedd6d5650563b1c4ddb4170.png +0 -0
  96. data/test/dummy/public/assets/jquery-ui/ui-icons_2e83ff_256x240-6e705c14341602e315c8320420582407.png +0 -0
  97. data/test/dummy/public/assets/jquery-ui/ui-icons_454545_256x240-79df93e060c7f26739b6bdab208a83bb.png +0 -0
  98. data/test/dummy/public/assets/jquery-ui/ui-icons_888888_256x240-a37e590d37d1a4614f1e05f9a3fa270c.png +0 -0
  99. data/test/dummy/public/assets/jquery-ui/ui-icons_cd0a0a_256x240-d350ff5c368b707165371738d74a45f3.png +0 -0
  100. data/test/dummy/public/assets/manifest-2c14fa9337f42e56d7ee7bc25e91853c.json +1 -0
  101. data/test/dummy/public/favicon.ico +0 -0
  102. data/test/dummy/test/controllers/clients_controller_test.rb +49 -0
  103. data/test/dummy/test/controllers/orders_controller_test.rb +49 -0
  104. data/test/dummy/test/fixtures/clients.yml +11 -0
  105. data/test/dummy/test/fixtures/orders.yml +11 -0
  106. data/test/dummy/test/helpers/clients_helper_test.rb +4 -0
  107. data/test/dummy/test/helpers/orders_helper_test.rb +4 -0
  108. data/test/dummy/test/models/client_test.rb +7 -0
  109. data/test/dummy/test/models/order_test.rb +7 -0
  110. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_alerts.scssc +0 -0
  111. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_badges.scssc +0 -0
  112. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_breadcrumbs.scssc +0 -0
  113. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_button-groups.scssc +0 -0
  114. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_buttons.scssc +0 -0
  115. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_carousel.scssc +0 -0
  116. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_close.scssc +0 -0
  117. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_code.scssc +0 -0
  118. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_component-animations.scssc +0 -0
  119. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_dropdowns.scssc +0 -0
  120. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_forms.scssc +0 -0
  121. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_glyphicons.scssc +0 -0
  122. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_grid.scssc +0 -0
  123. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_input-groups.scssc +0 -0
  124. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_jumbotron.scssc +0 -0
  125. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_labels.scssc +0 -0
  126. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_list-group.scssc +0 -0
  127. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_media.scssc +0 -0
  128. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_mixins.scssc +0 -0
  129. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_modals.scssc +0 -0
  130. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_navbar.scssc +0 -0
  131. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_navs.scssc +0 -0
  132. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_normalize.scssc +0 -0
  133. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_pager.scssc +0 -0
  134. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_pagination.scssc +0 -0
  135. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_panels.scssc +0 -0
  136. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_popovers.scssc +0 -0
  137. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_print.scssc +0 -0
  138. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_progress-bars.scssc +0 -0
  139. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_responsive-embed.scssc +0 -0
  140. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_responsive-utilities.scssc +0 -0
  141. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_scaffolding.scssc +0 -0
  142. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_tables.scssc +0 -0
  143. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_thumbnails.scssc +0 -0
  144. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_tooltip.scssc +0 -0
  145. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_type.scssc +0 -0
  146. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_utilities.scssc +0 -0
  147. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_variables.scssc +0 -0
  148. data/test/dummy/tmp/cache/assets/development/sass/00c0d190ddd8c2872a4734aa8f23fac8f3f4f27c/_wells.scssc +0 -0
  149. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_alerts.scssc +0 -0
  150. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_background-variant.scssc +0 -0
  151. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_border-radius.scssc +0 -0
  152. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_buttons.scssc +0 -0
  153. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_center-block.scssc +0 -0
  154. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_clearfix.scssc +0 -0
  155. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_forms.scssc +0 -0
  156. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_gradients.scssc +0 -0
  157. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_grid-framework.scssc +0 -0
  158. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_grid.scssc +0 -0
  159. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_hide-text.scssc +0 -0
  160. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_image.scssc +0 -0
  161. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_labels.scssc +0 -0
  162. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_list-group.scssc +0 -0
  163. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_nav-divider.scssc +0 -0
  164. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_nav-vertical-align.scssc +0 -0
  165. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_opacity.scssc +0 -0
  166. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_pagination.scssc +0 -0
  167. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_panels.scssc +0 -0
  168. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_progress-bar.scssc +0 -0
  169. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_reset-filter.scssc +0 -0
  170. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_resize.scssc +0 -0
  171. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_responsive-visibility.scssc +0 -0
  172. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_size.scssc +0 -0
  173. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_tab-focus.scssc +0 -0
  174. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_table-row.scssc +0 -0
  175. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_text-emphasis.scssc +0 -0
  176. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_text-overflow.scssc +0 -0
  177. data/test/dummy/tmp/cache/assets/development/sass/826344a9bdbb4ce67201515fbc2643c96b5692c8/_vendor-prefixes.scssc +0 -0
  178. data/test/dummy/tmp/cache/assets/development/sass/a39e0369930579ee8c9c371998d66bc75345b4be/application.css.scssc +0 -0
  179. data/test/dummy/tmp/cache/assets/development/sass/cec4c201800e8a79a141df13cd1029773a871cb4/_bootstrap-sprockets.scssc +0 -0
  180. data/test/dummy/tmp/cache/assets/development/sass/cec4c201800e8a79a141df13cd1029773a871cb4/_bootstrap.scssc +0 -0
  181. data/test/dummy/tmp/cache/assets/development/sprockets/05304e2722415bbc5142bded0d637d5b +0 -0
  182. data/test/dummy/tmp/cache/assets/development/sprockets/067de15f6eed2b96ff2fef4779e1495f +0 -0
  183. data/test/dummy/tmp/cache/assets/development/sprockets/097f3cf94fac7a339daf65b4fbbbf469 +0 -0
  184. data/test/dummy/tmp/cache/assets/development/sprockets/09e7eed3751645884590e16723e8c7b4 +0 -0
  185. data/test/dummy/tmp/cache/assets/development/sprockets/0bf93caacb628748207c7b18f44e2ce5 +0 -0
  186. data/test/dummy/tmp/cache/assets/development/sprockets/13bbf50c11c4a0032c43cfedab28589c +0 -0
  187. data/test/dummy/tmp/cache/assets/development/sprockets/14ff7948a4a406b91a86768262212334 +0 -0
  188. data/test/dummy/tmp/cache/assets/development/sprockets/158c207e246f777fd1b202837deb4d2a +0 -0
  189. data/test/dummy/tmp/cache/assets/development/sprockets/15bf67bdb925b7dd96d635ec0088a5e1 +0 -0
  190. data/test/dummy/tmp/cache/assets/development/sprockets/1e9dbac6bb0ab62a1258e8e450ffc43a +0 -0
  191. data/test/dummy/tmp/cache/assets/development/sprockets/278146df7d7c18920d86a4ae7852fd8b +0 -0
  192. data/test/dummy/tmp/cache/assets/development/sprockets/28105053ec5c84ff23ba9a772770ae92 +0 -0
  193. data/test/dummy/tmp/cache/assets/development/sprockets/2acf447a8c29da6e4d89163a70ef0ae8 +0 -0
  194. data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  195. data/test/dummy/tmp/cache/assets/development/sprockets/32f6f752901c13c529a37eb337113f1f +0 -0
  196. data/test/dummy/tmp/cache/assets/development/sprockets/346e797e518b143a4d66645c95d73528 +0 -0
  197. data/test/dummy/tmp/cache/assets/development/sprockets/38929ac56b95af9ff0142cfe13972e8f +0 -0
  198. data/test/dummy/tmp/cache/assets/development/sprockets/3afb0d89e1e96802e9878dbf7b9ba3a8 +0 -0
  199. data/test/dummy/tmp/cache/assets/development/sprockets/3b5b4cd2a1abf7f59590adc0be9c2e4b +0 -0
  200. data/test/dummy/tmp/cache/assets/development/sprockets/3e25f4c5c007ec48c5febf3a06a6c301 +0 -0
  201. data/test/dummy/tmp/cache/assets/development/sprockets/4127f13a5b8ce6faf84acfa698bcfbaf +0 -0
  202. data/test/dummy/tmp/cache/assets/development/sprockets/423defc0a61e0f9d7158ad173b4440d0 +0 -0
  203. data/test/dummy/tmp/cache/assets/development/sprockets/4708cc029aeffd33fd6d871326a69195 +0 -0
  204. data/test/dummy/tmp/cache/assets/development/sprockets/4a5472adf761a1d2f647e7900b5ef968 +0 -0
  205. data/test/dummy/tmp/cache/assets/development/sprockets/4bdbccbeace1fffd0d66c45b11c1cd39 +0 -0
  206. data/test/dummy/tmp/cache/assets/development/sprockets/4f494d96ea9500f27cd13f8f0023387b +0 -0
  207. data/test/dummy/tmp/cache/assets/development/sprockets/50dea07ea281a8cbea66d410c600a2ff +0 -0
  208. data/test/dummy/tmp/cache/assets/development/sprockets/5629567743085156cc027749c19c1ffb +0 -0
  209. data/test/dummy/tmp/cache/assets/development/sprockets/56bc640a0f9583792c60571e60eddae5 +0 -0
  210. data/test/dummy/tmp/cache/assets/development/sprockets/5d8aa60f935c97dcad777bcd7b918e91 +0 -0
  211. data/test/dummy/tmp/cache/assets/development/sprockets/61049b8df6c1b633546ac4d6b352977e +0 -0
  212. data/test/dummy/tmp/cache/assets/development/sprockets/69770d4ab285a55d14293db680d92d76 +0 -0
  213. data/test/dummy/tmp/cache/assets/development/sprockets/720375e2e5e9dbdd1d2596eb6f4ffea2 +0 -0
  214. data/test/dummy/tmp/cache/assets/development/sprockets/7403249712f49d78cd3a754390ee69d6 +0 -0
  215. data/test/dummy/tmp/cache/assets/development/sprockets/7a356d0e966dd72c226bcf7135d06241 +0 -0
  216. data/test/dummy/tmp/cache/assets/development/sprockets/7c653abf8262bcbff815599a9d6eb6bc +0 -0
  217. data/test/dummy/tmp/cache/assets/development/sprockets/8940a3fa55913c130433eaf2b1147b8a +0 -0
  218. data/test/dummy/tmp/cache/assets/development/sprockets/8ab512c9b33ac90e699b73469d71f061 +0 -0
  219. data/test/dummy/tmp/cache/assets/development/sprockets/8eda70465594d269ff72217d71e139f7 +0 -0
  220. data/test/dummy/tmp/cache/assets/development/sprockets/92f86cdf28d08db9f59aa10f2eb19a6e +0 -0
  221. data/test/dummy/tmp/cache/assets/development/sprockets/9b033013c82fee3eadfd068f18eb5fde +0 -0
  222. data/test/dummy/tmp/cache/assets/development/sprockets/a42a698569fb032e296fd80b809d31e1 +0 -0
  223. data/test/dummy/tmp/cache/assets/development/sprockets/a4d0dcd6736789a4e61a05c0b0d4f6d8 +0 -0
  224. data/test/dummy/tmp/cache/assets/development/sprockets/b2e65f0fccfa235b5d60262df3e10aae +0 -0
  225. data/test/dummy/tmp/cache/assets/development/sprockets/b48b23ce9dee63a2449cc13d923a587e +0 -0
  226. data/test/dummy/tmp/cache/assets/development/sprockets/bafa439ba35a0831ed26638af2634282 +0 -0
  227. data/test/dummy/tmp/cache/assets/development/sprockets/bb06a5a9c23f9fedeb77029977958bed +0 -0
  228. data/test/dummy/tmp/cache/assets/development/sprockets/bcca522c6302f184f12fe0e8a7d7e71a +0 -0
  229. data/test/dummy/tmp/cache/assets/development/sprockets/c13fc73ceafa45876a901b3e775b83ae +0 -0
  230. data/test/dummy/tmp/cache/assets/development/sprockets/c1539958d8d5f93bfaad4f3cc9d21047 +0 -0
  231. data/test/dummy/tmp/cache/assets/development/sprockets/c99fb99f69104b46f747c743409df324 +0 -0
  232. data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  233. data/test/dummy/tmp/cache/assets/development/sprockets/d2c64b08d25425455b7d9d66e142fa0b +0 -0
  234. data/test/dummy/tmp/cache/assets/development/sprockets/d5a46b2a46d7423c5287fc57e24aba11 +0 -0
  235. data/test/dummy/tmp/cache/assets/development/sprockets/d5e8ebed7a8e96a30f28d4b06fa5a6c4 +0 -0
  236. data/test/dummy/tmp/cache/assets/development/sprockets/d6f08cc14c885cf7a55e95ed54172a89 +0 -0
  237. data/test/dummy/tmp/cache/assets/development/sprockets/dab5e3951e6d81b6edca28eb6c66964c +0 -0
  238. data/test/dummy/tmp/cache/assets/development/sprockets/db8ec0c14f31d98a8ceb8365ade470e6 +0 -0
  239. data/test/dummy/tmp/cache/assets/development/sprockets/ee91e123536718a81d5d676d83f421c4 +0 -0
  240. data/test/dummy/tmp/cache/assets/development/sprockets/f2ad9aef860b7792f7542318c4731fe0 +0 -0
  241. data/test/dummy/tmp/cache/assets/development/sprockets/f62fbf566f3d7493edb2d257079b377a +0 -0
  242. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  243. data/test/dummy/tmp/cache/assets/development/sprockets/f8f634cf3fb2563597257d30d0cc25fc +0 -0
  244. data/test/dummy/tmp/cache/assets/development/sprockets/fc1c8dd76249106a788624558da20062 +0 -0
  245. data/test/dummy/tmp/cache/assets/development/sprockets/fff835239214e2c684bd8ff954854862 +0 -0
  246. data/test/test_helper.rb +16 -0
  247. metadata +558 -0
@@ -0,0 +1 @@
1
+ !function(a,b){"use strict";"undefined"!=typeof module&&module.exports?module.exports=b(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):b(a.jQuery)}(this,function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.select=this.options.select||this.select,this.autoSelect="boolean"==typeof this.options.autoSelect?this.options.autoSelect:!0,this.highlighter=this.options.highlighter||this.highlighter,this.render=this.options.render||this.render,this.updater=this.options.updater||this.updater,this.displayText=this.options.displayText||this.displayText,this.source=this.options.source,this.delay=this.options.delay,this.$menu=a(this.options.menu),this.$appendTo=this.options.appendTo?a(this.options.appendTo):null,this.shown=!1,this.listen(),this.showHintOnFocus="boolean"==typeof this.options.showHintOnFocus?this.options.showHintOnFocus:!1,this.afterSelect=this.options.afterSelect,this.addItem=!1};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").data("value");if(this.$element.data("active",a),this.autoSelect||a){var b=this.updater(a);this.$element.val(this.displayText(b)||b).change(),this.afterSelect(b)}return this.hide()},updater:function(a){return a},setSource:function(a){this.source=a},show:function(){var b,c=a.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return b="function"==typeof this.options.scrollHeight?this.options.scrollHeight.call():this.options.scrollHeight,(this.$appendTo?this.$menu.appendTo(this.$appendTo):this.$menu.insertAfter(this.$element)).css({top:c.top+c.height+b,left:c.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){if(this.query="undefined"!=typeof b&&null!==b?b:this.$element.val()||"",this.query.length<this.options.minLength)return this.shown?this.hide():this;var c=a.proxy(function(){a.isFunction(this.source)?this.source(this.query,a.proxy(this.process,this)):this.source&&this.process(this.source)},this);clearTimeout(this.lookupWorker),this.lookupWorker=setTimeout(c,this.delay)},process:function(b){var c=this;return b=a.grep(b,function(a){return c.matcher(a)}),b=this.sorter(b),b.length||this.options.addItem?(b.length>0?this.$element.data("active",b[0]):this.$element.data("active",null),this.options.addItem&&b.push(this.options.addItem),"all"==this.options.items?this.render(b).show():this.render(b.slice(0,this.options.items)).show()):this.shown?this.hide():this},matcher:function(a){var b=this.displayText(a);return~b.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){for(var b,c=[],d=[],e=[];b=a.shift();){var f=this.displayText(b);f.toLowerCase().indexOf(this.query.toLowerCase())?~f.indexOf(this.query)?d.push(b):e.push(b):c.push(b)}return c.concat(d,e)},highlighter:function(b){var c,d,e,f,g,h=a("<div></div>"),i=this.query,j=b.toLowerCase().indexOf(i.toLowerCase());if(c=i.length,0===c)return h.text(b).html();for(;j>-1;)d=b.substr(0,j),e=b.substr(j,c),f=b.substr(j+c),g=a("<strong></strong>").text(e),h.append(document.createTextNode(d)).append(g),b=f,j=b.toLowerCase().indexOf(i.toLowerCase());return h.append(document.createTextNode(b)).html()},render:function(b){var c=this,d=this,e=!1;return b=a(b).map(function(b,f){var g=d.displayText(f);return b=a(c.options.item).data("value",f),b.find("a").html(c.highlighter(g)),g==d.$element.val()&&(b.addClass("active"),d.$element.data("active",f),e=!0),b[0]}),this.autoSelect&&!e&&(b.first().addClass("active"),this.$element.data("active",b.first().data("value"))),this.$menu.html(b),this},displayText:function(a){return a.name||a},next:function(){var b=this.$menu.find(".active").removeClass("active"),c=b.next();c.length||(c=a(this.$menu.find("li")[0])),c.addClass("active")},prev:function(){var a=this.$menu.find(".active").removeClass("active"),b=a.prev();b.length||(b=this.$menu.find("li").last()),b.addClass("active")},listen:function(){this.$element.on("focus",a.proxy(this.focus,this)).on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",a.proxy(this.keydown,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this)).on("mouseleave","li",a.proxy(this.mouseleave,this))},destroy:function(){this.$element.data("typeahead",null),this.$element.data("active",null),this.$element.off("focus").off("blur").off("keypress").off("keyup"),this.eventSupported("keydown")&&this.$element.off("keydown"),this.$menu.remove()},eventSupported:function(a){var b=a in this.$element;return b||(this.$element.setAttribute(a,"return;"),b="function"==typeof this.$element[a]),b},move:function(a){if(this.shown){switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:if(a.shiftKey)return;a.preventDefault(),this.prev();break;case 40:if(a.shiftKey)return;a.preventDefault(),this.next()}a.stopPropagation()}},keydown:function(b){this.suppressKeyPressRepeat=~a.inArray(b.keyCode,[40,38,9,13,27]),this.shown||40!=b.keyCode?this.move(b):this.lookup()},keypress:function(a){this.suppressKeyPressRepeat||this.move(a)},keyup:function(a){switch(a.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}a.stopPropagation(),a.preventDefault()},focus:function(){this.focused||(this.focused=!0,this.options.showHintOnFocus&&this.lookup(""))},blur:function(){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(a){a.stopPropagation(),a.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(b){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")},mouseleave:function(){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var c=a.fn.typeahead;a.fn.typeahead=function(c){var d=arguments;return"string"==typeof c&&"getActive"==c?this.data("active"):this.each(function(){var e=a(this),f=e.data("typeahead"),g="object"==typeof c&&c;f||e.data("typeahead",f=new b(this,g)),"string"==typeof c&&(d.length>1?f[c].apply(f,Array.prototype.slice.call(d,1)):f[c]())})},a.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu" role="listbox"></ul>',item:'<li><a href="#" role="option"></a></li>',minLength:1,scrollHeight:0,autoSelect:!0,afterSelect:a.noop,delay:0,addItem:!1},a.fn.typeahead.Constructor=b,a.fn.typeahead.noConflict=function(){return a.fn.typeahead=c,this},a(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(){var b=a(this);b.data("typeahead")||b.typeahead(b.data())})});
@@ -0,0 +1,24 @@
1
+ module Bootstrap3AutocompleteInput
2
+ #
3
+ require 'bootstrap3_autocomplete_input/rails/engine'
4
+ end
5
+
6
+ # orm
7
+ require 'bootstrap3_autocomplete_input/orm'
8
+
9
+
10
+
11
+ # extend controller
12
+ require 'bootstrap3_autocomplete_input/controllers/autocomplete'
13
+
14
+ class ActionController::Base
15
+ include Bootstrap3AutocompleteInput::Controllers::Autocomplete
16
+ end
17
+
18
+ # simple_form
19
+ begin
20
+ require 'simple_form'
21
+ require 'bootstrap3_autocomplete_input/simple_form_inputs'
22
+
23
+ rescue LoadError
24
+ end
@@ -0,0 +1,66 @@
1
+ #require 'orm/active_record'
2
+
3
+ module Bootstrap3AutocompleteInput
4
+ module Controllers
5
+
6
+ module Autocomplete
7
+ def self.included(target)
8
+ target.extend Bootstrap3AutocompleteInput::Controllers::Autocomplete::ClassMethods
9
+
10
+ if defined?(Mongoid::Document)
11
+ target.send :include, Bootstrap3AutocompleteInput::Orm::Mongoid
12
+ elsif defined?(MongoMapper::Document)
13
+ target.send :include, Bootstrap3AutocompleteInput::Orm::MongoMapper
14
+ else
15
+ target.send :include, Bootstrap3AutocompleteInput::Orm::ActiveRecord
16
+ end
17
+ end
18
+
19
+
20
+ module ClassMethods
21
+
22
+ def autocomplete(object, method, options = {})
23
+ define_method("autocomplete_#{object}_#{method}") do
24
+
25
+ method = options[:column_name] if options.has_key?(:column_name)
26
+
27
+ q = params[:q]
28
+
29
+ class_name = options[:class_name] || object
30
+ model = get_object(class_name)
31
+
32
+ if q && q.present?
33
+ items = get_autocomplete_items(:model => model, :options => options, :q => q, :method => method)
34
+ elsif params[:q].nil?
35
+ # return ALL
36
+ items = get_autocomplete_items(:model => model, :options => options, :q => '', :method => method)
37
+ end
38
+
39
+ render :json => items_to_json(items, options[:display_value] ||= method)
40
+ end
41
+ end
42
+ end
43
+
44
+
45
+ def autocomplete_option_limit(options)
46
+ options[:limit] ||= 10
47
+ end
48
+
49
+
50
+ # Returns parameter model_sym as a constant
51
+ def get_object(model_sym)
52
+ object = model_sym.to_s.camelize.constantize
53
+ end
54
+
55
+ #
56
+ # Returns an array of [id, name]
57
+ #
58
+ def items_to_json(items, method)
59
+ items.collect do |item|
60
+ [item.id.to_s, item.send(method)]
61
+ end
62
+ end
63
+ end
64
+
65
+ end
66
+ end
@@ -0,0 +1,7 @@
1
+ module Bootstrap3AutocompleteInput
2
+ module Orm
3
+ autoload :ActiveRecord , 'bootstrap3_autocomplete_input/orm/active_record'
4
+ autoload :Mongoid , 'bootstrap3_autocomplete_input/orm/mongoid'
5
+ autoload :MongoMapper , 'bootstrap3_autocomplete_input/orm/mongo_mapper'
6
+ end
7
+ end
@@ -0,0 +1,51 @@
1
+ module Bootstrap3AutocompleteInput
2
+ module Orm
3
+ module ActiveRecord
4
+ def get_autocomplete_order(method, options, model=nil)
5
+ order = options[:order]
6
+
7
+ table_prefix = model ? "#{model.table_name}." : ""
8
+ order || "#{table_prefix}#{method} ASC"
9
+ end
10
+
11
+ def get_autocomplete_items(parameters)
12
+ model = parameters[:model]
13
+ term = parameters[:q] || parameters[:term]
14
+ method = parameters[:method]
15
+ options = parameters[:options]
16
+ scopes = Array(options[:scopes])
17
+ where = options[:where]
18
+ limit = autocomplete_option_limit(options)
19
+ order = get_autocomplete_order(method, options, model)
20
+
21
+ items = model.all
22
+
23
+ scopes.each { |scope| items = items.send(scope) } unless scopes.empty?
24
+
25
+ items = items.select(get_autocomplete_select_clause(model, method, options)) unless options[:full_model]
26
+ items = items.where(get_autocomplete_where_clause(model, term, method, options)).
27
+ limit(limit).order(order)
28
+ items = items.where(where) unless where.blank?
29
+
30
+ items
31
+ end
32
+
33
+ def get_autocomplete_select_clause(model, method, options)
34
+ table_name = model.table_name
35
+ (["#{table_name}.#{model.primary_key}", "#{table_name}.#{method}"] + (options[:extra_data].blank? ? [] : options[:extra_data]))
36
+ end
37
+
38
+ def get_autocomplete_where_clause(model, term, method, options)
39
+ table_name = model.table_name
40
+ is_full_search = options[:full]
41
+ like_clause = (postgres?(model) ? 'ILIKE' : 'LIKE')
42
+ ["LOWER(#{table_name}.#{method}) #{like_clause} ?", "#{(is_full_search ? '%' : '')}#{term.downcase}%"]
43
+ end
44
+
45
+ def postgres?(model)
46
+ # Figure out if this particular model uses the PostgreSQL adapter
47
+ model.connection.class.to_s.match(/PostgreSQLAdapter/)
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,30 @@
1
+ module Bootstrap3AutocompleteInput
2
+ module Orm
3
+ module MongoMapper
4
+ def get_autocomplete_order(method, options, model=nil)
5
+ order = options[:order]
6
+ if order
7
+ order.split(',').collect do |fields|
8
+ sfields = fields.split
9
+ [sfields[0].downcase.to_sym, sfields[1].downcase.to_sym]
10
+ end
11
+ else
12
+ [[method.to_sym, :asc]]
13
+ end
14
+ end
15
+
16
+ def get_autocomplete_items(parameters)
17
+ model = parameters[:model]
18
+ method = parameters[:method]
19
+ options = parameters[:options]
20
+ is_full_search = options[:full]
21
+ term = parameters[:term]
22
+ limit = autocomplete_option_limit(options)
23
+ order = get_autocomplete_order(method, options)
24
+
25
+ search = (is_full_search ? '.*' : '^') + term + '.*'
26
+ items = model.where(method.to_sym => /#{search}/i).limit(limit).sort(order)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,44 @@
1
+ module Bootstrap3AutocompleteInput
2
+ module Orm
3
+ module Mongoid
4
+ def get_autocomplete_order(method, options, model=nil)
5
+ order = options[:order]
6
+ if order
7
+ order.split(',').collect do |fields|
8
+ sfields = fields.split
9
+ [sfields[0].downcase.to_sym, sfields[1].downcase.to_sym]
10
+ end
11
+ else
12
+ [[method.to_sym, :asc]]
13
+ end
14
+ end
15
+
16
+ def get_autocomplete_items(parameters)
17
+ model = parameters[:model]
18
+ method = parameters[:method]
19
+ options = parameters[:options]
20
+ scopes = options[:scopes]
21
+ is_full_search = options[:full]
22
+ term = parameters[:term]
23
+ limit = autocomplete_option_limit(options)
24
+ order = get_autocomplete_order(method, options)
25
+
26
+ if is_full_search
27
+ search = '.*' + Regexp.escape(term) + '.*'
28
+ else
29
+ search = '^' + Regexp.escape(term)
30
+ end
31
+
32
+ items = model.where(method.to_sym => /#{search}/i).limit(limit).order_by(order)
33
+
34
+ case scopes
35
+ when Symbol then
36
+ items = items.send(scopes)
37
+ when Array then
38
+ scopes.each { |scope| items = items.send(scope) } unless scopes.empty?
39
+ end
40
+ items
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,15 @@
1
+ module Bootstrap3AutocompleteInput
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ #isolate_namespace Bootstrap3AutocompleteInput
5
+
6
+ #config.to_prepare do
7
+ # Dir.glob(Rails.root + "app/decorators/**/*_decorator*.rb").each do |c|
8
+ # require_dependency(c)
9
+ # end
10
+ #end
11
+
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,78 @@
1
+ =begin
2
+ module SimpleForm
3
+ module Inputs
4
+ class AutocompleteInput < TextInput
5
+ #enable :placeholder, :maxlength
6
+
7
+ def input(wrapper_options = nil)
8
+ out = ActiveSupport::SafeBuffer.new
9
+
10
+ # prepare options
11
+ new_html_options = merge_wrapper_options(prepare_html_options, wrapper_options)
12
+
13
+
14
+ # hidden field
15
+ if add_field_id?
16
+ hidden_name = "#{attribute_name}_id"
17
+ hidden_id = "#{object_name}_#{attribute_name}_id"
18
+ new_html_options["data-field-id"] ||= hidden_id
19
+
20
+ hidden_options = {}
21
+ hidden_options[:id] = hidden_id
22
+
23
+ # value
24
+ value_method = hidden_options[:id]
25
+ if object.respond_to?(value_method)
26
+ hidden_options[:value] = object.send(value_method)
27
+ end
28
+
29
+ out << @builder.hidden_field(hidden_name, hidden_options)
30
+ end
31
+
32
+ #
33
+ out << @builder.text_field(attribute_name, new_html_options)
34
+ out
35
+ end
36
+
37
+ def prepare_html_options
38
+ new_options = {}
39
+
40
+ new_options[:class] = [input_html_options[:class], options[:class]].compact
41
+
42
+ #
43
+ new_options["data-provide"] ||= "typeahead"
44
+ new_options["autocomplete"] ||= "off"
45
+
46
+ # source
47
+ if options[:source]
48
+ new_options["data-source"] = options[:source]
49
+ elsif options[:source_query]
50
+ new_options["data-source-query"] = options[:source_query]
51
+ elsif options[:source_array]
52
+ #new_options["data-source-array"] = options[:source_array].inspect.to_s # problem with quotes "
53
+ new_options["data-source-array"] = '['+options[:source_array].map{|r| "&quot;#{r}&quot;"}.join(',')+']'
54
+ end
55
+
56
+
57
+ # data options
58
+ new_options["data-items"] = options[:items] || 8
59
+ new_options["data-min-length"] = options[:minLength] || 1
60
+
61
+ input_html_options.merge new_options
62
+ end
63
+
64
+ def add_field_id?
65
+ !options[:source_array] && (options[:field_id].nil? || options[:field_id])
66
+ end
67
+
68
+ end
69
+
70
+ end
71
+ end
72
+
73
+ # add input to simple_form inputs
74
+ #SimpleForm::Inputs::Base.send(:include, SimpleForm::Inputs::AutocompleteInput)
75
+ SimpleForm::Inputs::Base.send(:include, AutocompleteInput)
76
+ #SimpleForm::Inputs::Base.send(:include, Bootstrap3AutocompleteInput::AutocompleteInput)
77
+
78
+ =end
@@ -0,0 +1,3 @@
1
+ module Bootstrap3AutocompleteInput
2
+ VERSION = "0.0.4"
3
+ end
File without changes
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :bootstrap3_autocomplete_input do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class Bootstrap3AutocompleteInputTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, Bootstrap3AutocompleteInput
6
+ end
7
+ end
@@ -0,0 +1,28 @@
1
+ == README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
25
+
26
+
27
+ Please feel free to use a different markup language if you do not plan to run
28
+ <tt>rake doc:app</tt>.
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,18 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+
14
+ //= require jquery
15
+ //= require jquery_ujs
16
+ //= require bootstrap
17
+ //= require bootstrap3-typeahead.min
18
+ //= require bootstrap3-autocomplete-input.min
@@ -0,0 +1,3 @@
1
+ @import "bootstrap-sprockets";
2
+ @import "bootstrap";
3
+
@@ -0,0 +1,5 @@
1
+ class ApplicationController < ActionController::Base
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+ end
@@ -0,0 +1,58 @@
1
+ class ClientsController < ApplicationController
2
+ before_action :set_client, only: [:show, :edit, :update, :destroy]
3
+
4
+ # GET /clients
5
+ def index
6
+ @clients = Client.all
7
+ end
8
+
9
+ # GET /clients/1
10
+ def show
11
+ end
12
+
13
+ # GET /clients/new
14
+ def new
15
+ @client = Client.new
16
+ end
17
+
18
+ # GET /clients/1/edit
19
+ def edit
20
+ end
21
+
22
+ # POST /clients
23
+ def create
24
+ @client = Client.new(client_params)
25
+
26
+ if @client.save
27
+ redirect_to @client, notice: 'Client was successfully created.'
28
+ else
29
+ render :new
30
+ end
31
+ end
32
+
33
+ # PATCH/PUT /clients/1
34
+ def update
35
+ if @client.update(client_params)
36
+ redirect_to @client, notice: 'Client was successfully updated.'
37
+ else
38
+ render :edit
39
+ end
40
+ end
41
+
42
+ # DELETE /clients/1
43
+ def destroy
44
+ @client.destroy
45
+ redirect_to clients_url, notice: 'Client was successfully destroyed.'
46
+ end
47
+
48
+ private
49
+ # Use callbacks to share common setup or constraints between actions.
50
+ def set_client
51
+ @client = Client.find(params[:id])
52
+ end
53
+
54
+ # Only allow a trusted parameter "white list" through.
55
+ def client_params
56
+ params[:client].permit(:name)
57
+ end
58
+ end