select2-bootstrap-rails 4.1.0.pre.rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +5 -0
  3. data/README.md +82 -0
  4. data/Rakefile +9 -0
  5. data/lib/select2-bootstrap-rails/engine.rb +6 -0
  6. data/lib/select2-bootstrap-rails/source_file.rb +53 -0
  7. data/lib/select2-bootstrap-rails/version.rb +5 -0
  8. data/lib/select2-bootstrap-rails.rb +7 -0
  9. data/select2-bootstrap-rails.gemspec +23 -0
  10. data/vendor/assets/javascripts/select2-full.js +6114 -0
  11. data/vendor/assets/javascripts/select2.js +5403 -0
  12. data/vendor/assets/javascripts/select2_locale_af.js +3 -0
  13. data/vendor/assets/javascripts/select2_locale_ar.js +3 -0
  14. data/vendor/assets/javascripts/select2_locale_az.js +3 -0
  15. data/vendor/assets/javascripts/select2_locale_bg.js +3 -0
  16. data/vendor/assets/javascripts/select2_locale_bn.js +3 -0
  17. data/vendor/assets/javascripts/select2_locale_bs.js +3 -0
  18. data/vendor/assets/javascripts/select2_locale_ca.js +3 -0
  19. data/vendor/assets/javascripts/select2_locale_cs.js +3 -0
  20. data/vendor/assets/javascripts/select2_locale_da.js +3 -0
  21. data/vendor/assets/javascripts/select2_locale_de.js +3 -0
  22. data/vendor/assets/javascripts/select2_locale_dsb.js +3 -0
  23. data/vendor/assets/javascripts/select2_locale_el.js +3 -0
  24. data/vendor/assets/javascripts/select2_locale_en.js +3 -0
  25. data/vendor/assets/javascripts/select2_locale_eo.js +3 -0
  26. data/vendor/assets/javascripts/select2_locale_es.js +3 -0
  27. data/vendor/assets/javascripts/select2_locale_et.js +3 -0
  28. data/vendor/assets/javascripts/select2_locale_eu.js +3 -0
  29. data/vendor/assets/javascripts/select2_locale_fa.js +3 -0
  30. data/vendor/assets/javascripts/select2_locale_fi.js +3 -0
  31. data/vendor/assets/javascripts/select2_locale_fr.js +3 -0
  32. data/vendor/assets/javascripts/select2_locale_gl.js +3 -0
  33. data/vendor/assets/javascripts/select2_locale_he.js +3 -0
  34. data/vendor/assets/javascripts/select2_locale_hi.js +3 -0
  35. data/vendor/assets/javascripts/select2_locale_hr.js +3 -0
  36. data/vendor/assets/javascripts/select2_locale_hsb.js +3 -0
  37. data/vendor/assets/javascripts/select2_locale_hu.js +3 -0
  38. data/vendor/assets/javascripts/select2_locale_hy.js +3 -0
  39. data/vendor/assets/javascripts/select2_locale_id.js +3 -0
  40. data/vendor/assets/javascripts/select2_locale_is.js +3 -0
  41. data/vendor/assets/javascripts/select2_locale_it.js +3 -0
  42. data/vendor/assets/javascripts/select2_locale_ja.js +3 -0
  43. data/vendor/assets/javascripts/select2_locale_ka.js +3 -0
  44. data/vendor/assets/javascripts/select2_locale_km.js +3 -0
  45. data/vendor/assets/javascripts/select2_locale_ko.js +3 -0
  46. data/vendor/assets/javascripts/select2_locale_lt.js +3 -0
  47. data/vendor/assets/javascripts/select2_locale_lv.js +3 -0
  48. data/vendor/assets/javascripts/select2_locale_mk.js +3 -0
  49. data/vendor/assets/javascripts/select2_locale_ms.js +3 -0
  50. data/vendor/assets/javascripts/select2_locale_nb.js +3 -0
  51. data/vendor/assets/javascripts/select2_locale_ne.js +3 -0
  52. data/vendor/assets/javascripts/select2_locale_nl.js +3 -0
  53. data/vendor/assets/javascripts/select2_locale_pa.js +3 -0
  54. data/vendor/assets/javascripts/select2_locale_pl.js +3 -0
  55. data/vendor/assets/javascripts/select2_locale_ps.js +3 -0
  56. data/vendor/assets/javascripts/select2_locale_pt-BR.js +3 -0
  57. data/vendor/assets/javascripts/select2_locale_pt.js +3 -0
  58. data/vendor/assets/javascripts/select2_locale_ro.js +3 -0
  59. data/vendor/assets/javascripts/select2_locale_ru.js +3 -0
  60. data/vendor/assets/javascripts/select2_locale_sk.js +3 -0
  61. data/vendor/assets/javascripts/select2_locale_sl.js +3 -0
  62. data/vendor/assets/javascripts/select2_locale_sq.js +3 -0
  63. data/vendor/assets/javascripts/select2_locale_sr-Cyrl.js +3 -0
  64. data/vendor/assets/javascripts/select2_locale_sr.js +3 -0
  65. data/vendor/assets/javascripts/select2_locale_sv.js +3 -0
  66. data/vendor/assets/javascripts/select2_locale_th.js +3 -0
  67. data/vendor/assets/javascripts/select2_locale_tk.js +3 -0
  68. data/vendor/assets/javascripts/select2_locale_tr.js +3 -0
  69. data/vendor/assets/javascripts/select2_locale_uk.js +3 -0
  70. data/vendor/assets/javascripts/select2_locale_vi.js +3 -0
  71. data/vendor/assets/javascripts/select2_locale_zh-CN.js +3 -0
  72. data/vendor/assets/javascripts/select2_locale_zh-TW.js +3 -0
  73. data/vendor/assets/stylesheets/select2-bootstrap-5-theme.css +486 -0
  74. data/vendor/assets/stylesheets/select2.css +431 -0
  75. metadata +176 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a760a5fec45b282655eb16617a5e09a527d7c8e9678abe8b6adb87009c8de710
4
+ data.tar.gz: 411c9266649c3b198bcaddc6aef2657036d6f81e3f8f6827f28b899c81064378
5
+ SHA512:
6
+ metadata.gz: 536e5d5c56b5c022501a43b70a19b7f79ecaaa7a5d2ecb4bf34a278c227403f55fe2a8f4303231e58cb0d0238b8d8e32bf5866c3ce8e23f1fcd5e8ea78539bc2
7
+ data.tar.gz: 9afcf80c55a4fc273920b023bfcb48d24a1dfe6aaf726bb73ccf537e9ea20d1f750fe97d24e228ed4328d1d9322bbeec836a4aa1fef9eacb026575fbeecde6aa
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in bootstrap-select2-rails.gemspec
4
+
5
+ gemspec
data/README.md ADDED
@@ -0,0 +1,82 @@
1
+ # Select2 with Bootstrap 5 theme for rails asset pipeline
2
+
3
+ [Select2](https://github.com/select2/select2) is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
4
+
5
+ The `select2-bootstrap-rails` gem integrates the `Select2` jQuery plugin with the Rails asset pipeline.
6
+
7
+ ## Usage
8
+
9
+ ### Install select2-bootstrap-rails gem
10
+
11
+ Add `select2-bootstrap-rails` to your Gemfile and run `bundle install`:
12
+
13
+ gem "select2-bootstrap-rails"
14
+
15
+ ### Include select2-bootstrap-rails javascript assets
16
+
17
+ Add the following to your `app/assets/javascripts/application.js`:
18
+
19
+ //= require select2
20
+
21
+ To add `select2-full.js` instead of `select2.js`, add the following instead :
22
+
23
+ //= require select2-full
24
+
25
+ ### Include select2-bootstrap-rails stylesheet assets
26
+
27
+ Add to your `app/assets/stylesheets/application.css`:
28
+
29
+ @import select2
30
+
31
+ If you are using Twitter Boostrap you need to also require the bootstrap theme CSS in addition to the above require.
32
+
33
+ @import select2-bootstrap-5-theme
34
+
35
+ To apply the theme, tell Select2 to do so by passing `bootstrap` to the [`theme`](https://select2.github.io/examples.html#themes) option when initializing Select2:
36
+
37
+ $( "#dropdown" ).select2({
38
+ theme: "bootstrap"
39
+ });
40
+
41
+ ## Internationalization (i18n)
42
+
43
+ The `select2-bootstrap-rails` now supports multiple languages.
44
+
45
+ Add the following to your `app/assets/javascripts/application.js`:
46
+
47
+ //= require select2_locale_"any possible language"
48
+
49
+ To apply the language, pass whatever language you'd like to use to the [`language`](https://select2.github.io/examples.html#language) option when initializing Select2:
50
+
51
+ $( "#dropdown" ).select2({
52
+ language: "zh-TW"
53
+ });
54
+
55
+ Possible languages:
56
+
57
+ af, ar, az, bg, bn, bs, ca, cs, da, de, dsb, el, en, eo, es, et, eu, fa, fi, fr, gl, he, hi, hr, hsb, hu, hy, id, is, it, ja, ka, km, ko, lt, lv, mk, ms, nb, ne, nl, pa, pl, ps, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-Cyrl, sv, th, tk, tr, uk, vi, zh-CN, zh-TW
58
+
59
+ ## Example
60
+ Code [here](https://github.com/argerim/select_2_example)
61
+
62
+ ## Fix
63
+ ### IE8 Invalid Character
64
+ IE8 doesn't support some unescaped Unicode character and need to quote keys in object literals
65
+ You need some configurations for [Uglifier](https://github.com/lautis/uglifier) to do the work.
66
+ Add to your `config/environments/production.rb`
67
+
68
+ require 'uglifier'
69
+ config.assets.js_compressor = Uglifier.new(output: {ascii_only: true, quote_keys: true})
70
+
71
+
72
+ ## Contributions
73
+
74
+ If you want to contribute, please:
75
+
76
+ * Fork the project.
77
+ * Make your feature addition or bug fix.
78
+ * Send me a pull request on Github.
79
+
80
+ ## License
81
+
82
+ Selec2-Rails is released under the [MIT License](http://www.opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+ require File.expand_path('../lib/select2-bootstrap-rails/source_file', __FILE__)
4
+
5
+ desc "Update with select2 and bootstrap 5 theme Libraries"
6
+ task "update-bootstrap-select2" do
7
+ files = SourceFile.new
8
+ files.fetch
9
+ end
@@ -0,0 +1,6 @@
1
+ module Select2Bootstrap
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,53 @@
1
+ require "thor"
2
+ require "json"
3
+ require "httpclient"
4
+
5
+ class SourceFile < Thor
6
+ include Thor::Actions
7
+
8
+ desc "fetch source files", "fetch source files from GitHub"
9
+ def fetch
10
+ filtered_select2_tags = fetch_select2_tags
11
+ select2_tag = select("Which tag do you want to fetch for select2?", filtered_select2_tags)
12
+ bs_theme_tag = select("Which tag do you want to fetch for select 2 bootstrap 5 theme?", fetch_bs_theme_tags)
13
+ self.destination_root = "vendor/assets"
14
+ remote_select2 = "https://github.com/select2/select2"
15
+ remote_bootstrap = "https://github.com/apalfrey/select2-bootstrap-5-theme"
16
+ get "#{remote_select2}/raw/#{select2_tag}/dist/css/select2.css", "stylesheets/select2.css"
17
+ get "#{remote_select2}/raw/#{select2_tag}/dist/js/select2.full.js", "javascripts/select2-full.js"
18
+ get "#{remote_select2}/raw/#{select2_tag}/dist/js/select2.js", "javascripts/select2.js"
19
+ get "#{remote_bootstrap}/raw/#{bs_theme_tag}/dist/select2-bootstrap-5-theme.css", "stylesheets/select2-bootstrap-5-theme.css"
20
+ languages(select2_tag).each do |lang|
21
+ get "#{remote_select2}/raw/#{select2_tag}/dist/js/i18n/#{lang}.js", "javascripts/select2_locale_#{lang}.js"
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def fetch_select2_tags
28
+ response = JSON.parse(http_client.get("https://api.github.com/repos/select2/select2/tags").body)
29
+ response.map { |tag| tag["name"] }.sort
30
+ end
31
+
32
+ def fetch_bs_theme_tags
33
+ response = JSON.parse(http_client.get("https://api.github.com/repos/apalfrey/select2-bootstrap-5-theme/tags").body)
34
+ response.map { |tag| tag["name"] }.sort
35
+ end
36
+
37
+ def http_client
38
+ @http_client ||= HTTPClient.new
39
+ end
40
+
41
+ def languages(tag)
42
+ response = JSON.parse(http_client.get("https://api.github.com/repos/select2/select2/contents/src/js/select2/i18n?ref=#{tag}").body)
43
+ response.map { |file| file["name"].gsub('.js', '') }.sort
44
+ end
45
+
46
+ def select(message, elements)
47
+ elements.each_with_index do |element, index|
48
+ say(block_given? ? yield(element, index + 1) : ("#{index + 1}. #{element.to_s}"))
49
+ end
50
+ result = ask(message).to_i
51
+ elements[result - 1]
52
+ end
53
+ end
@@ -0,0 +1,5 @@
1
+ module Select2Bootstrap
2
+ module Rails
3
+ VERSION = '4.1.0-rc.0'
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ require "select2-bootstrap-rails/version"
2
+
3
+ module Select2Bootstrap
4
+ module Rails
5
+ require "select2-bootstrap-rails/engine"
6
+ end
7
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path("../lib/select2-bootstrap-rails/version", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "select2-bootstrap-rails"
6
+ s.version = Select2Bootstrap::Rails::VERSION
7
+ s.authors = ["Muneza Karl"]
8
+ s.email = ["kazozaagiro@gmail.com"]
9
+ s.homepage = "https://github.com/karl257/select2-bootstrap-rails"
10
+ s.summary = %q{Integrate Select2 and Select2 Bootstrap 5 Theme with the Rails asset pipeline.}
11
+ s.description = %q{Select2, a jQuery-based substitute for select boxes, offers features such as search functionality, support for remote data sets, and infinite result scrolling. This gem offers search, remote data loading, and infinite scrolling, all wrapped in a beautiful Bootstrap 5 theme. Integrating them with your Rails app has never been easier.}
12
+ s.license = 'MIT'
13
+ s.files = `git ls-files`.split("\n")
14
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
+ s.require_paths = ["lib"]
17
+
18
+ s.add_development_dependency "thor", "~> 1"
19
+ s.add_development_dependency "bundler", ">= 2"
20
+ s.add_development_dependency "rails", ">= 3.0"
21
+ s.add_development_dependency "httpclient", "~> 2.2"
22
+ end
23
+