nex-bootstrap 4.6.3

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 (163) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +14 -0
  3. data/.gitignore +19 -0
  4. data/.travis.yml +31 -0
  5. data/CHANGELOG.md +25 -0
  6. data/Gemfile +11 -0
  7. data/LICENSE +21 -0
  8. data/README.md +109 -0
  9. data/Rakefile +63 -0
  10. data/assets/javascripts/bootstrap/alert.js +183 -0
  11. data/assets/javascripts/bootstrap/button.js +225 -0
  12. data/assets/javascripts/bootstrap/carousel.js +640 -0
  13. data/assets/javascripts/bootstrap/collapse.js +394 -0
  14. data/assets/javascripts/bootstrap/dropdown.js +557 -0
  15. data/assets/javascripts/bootstrap/modal.js +660 -0
  16. data/assets/javascripts/bootstrap/popover.js +243 -0
  17. data/assets/javascripts/bootstrap/scrollspy.js +337 -0
  18. data/assets/javascripts/bootstrap/tab.js +259 -0
  19. data/assets/javascripts/bootstrap/toast.js +265 -0
  20. data/assets/javascripts/bootstrap/tooltip.js +886 -0
  21. data/assets/javascripts/bootstrap/util.js +189 -0
  22. data/assets/javascripts/bootstrap-sprockets.js +12 -0
  23. data/assets/javascripts/bootstrap.js +4356 -0
  24. data/assets/javascripts/bootstrap.min.js +6 -0
  25. data/assets/stylesheets/_bootstrap-grid.scss +30 -0
  26. data/assets/stylesheets/_bootstrap-reboot.scss +12 -0
  27. data/assets/stylesheets/_bootstrap.scss +44 -0
  28. data/assets/stylesheets/bootstrap/_alert.scss +52 -0
  29. data/assets/stylesheets/bootstrap/_badge.scss +54 -0
  30. data/assets/stylesheets/bootstrap/_breadcrumb.scss +42 -0
  31. data/assets/stylesheets/bootstrap/_button-group.scss +163 -0
  32. data/assets/stylesheets/bootstrap/_buttons.scss +142 -0
  33. data/assets/stylesheets/bootstrap/_card.scss +286 -0
  34. data/assets/stylesheets/bootstrap/_carousel.scss +200 -0
  35. data/assets/stylesheets/bootstrap/_close.scss +40 -0
  36. data/assets/stylesheets/bootstrap/_code.scss +48 -0
  37. data/assets/stylesheets/bootstrap/_custom-forms.scss +526 -0
  38. data/assets/stylesheets/bootstrap/_dropdown.scss +192 -0
  39. data/assets/stylesheets/bootstrap/_forms.scss +347 -0
  40. data/assets/stylesheets/bootstrap/_functions.scss +190 -0
  41. data/assets/stylesheets/bootstrap/_grid.scss +73 -0
  42. data/assets/stylesheets/bootstrap/_images.scss +42 -0
  43. data/assets/stylesheets/bootstrap/_input-group.scss +211 -0
  44. data/assets/stylesheets/bootstrap/_jumbotron.scss +17 -0
  45. data/assets/stylesheets/bootstrap/_list-group.scss +154 -0
  46. data/assets/stylesheets/bootstrap/_media.scss +8 -0
  47. data/assets/stylesheets/bootstrap/_mixins.scss +47 -0
  48. data/assets/stylesheets/bootstrap/_modal.scss +240 -0
  49. data/assets/stylesheets/bootstrap/_nav.scss +125 -0
  50. data/assets/stylesheets/bootstrap/_navbar.scss +332 -0
  51. data/assets/stylesheets/bootstrap/_pagination.scss +74 -0
  52. data/assets/stylesheets/bootstrap/_popover.scss +170 -0
  53. data/assets/stylesheets/bootstrap/_print.scss +132 -0
  54. data/assets/stylesheets/bootstrap/_progress.scss +47 -0
  55. data/assets/stylesheets/bootstrap/_reboot.scss +484 -0
  56. data/assets/stylesheets/bootstrap/_root.scss +19 -0
  57. data/assets/stylesheets/bootstrap/_spinners.scss +65 -0
  58. data/assets/stylesheets/bootstrap/_tables.scss +185 -0
  59. data/assets/stylesheets/bootstrap/_toasts.scss +46 -0
  60. data/assets/stylesheets/bootstrap/_tooltip.scss +115 -0
  61. data/assets/stylesheets/bootstrap/_transitions.scss +26 -0
  62. data/assets/stylesheets/bootstrap/_type.scss +125 -0
  63. data/assets/stylesheets/bootstrap/_utilities.scss +18 -0
  64. data/assets/stylesheets/bootstrap/_variables.scss +1149 -0
  65. data/assets/stylesheets/bootstrap/mixins/_alert.scss +13 -0
  66. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +23 -0
  67. data/assets/stylesheets/bootstrap/mixins/_badge.scss +17 -0
  68. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +76 -0
  69. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +20 -0
  70. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +123 -0
  71. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +110 -0
  72. data/assets/stylesheets/bootstrap/mixins/_caret.scss +62 -0
  73. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +7 -0
  74. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  75. data/assets/stylesheets/bootstrap/mixins/_float.scss +14 -0
  76. data/assets/stylesheets/bootstrap/mixins/_forms.scss +195 -0
  77. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +45 -0
  78. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +80 -0
  79. data/assets/stylesheets/bootstrap/mixins/_grid.scss +69 -0
  80. data/assets/stylesheets/bootstrap/mixins/_hover.scss +37 -0
  81. data/assets/stylesheets/bootstrap/mixins/_image.scss +36 -0
  82. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +21 -0
  83. data/assets/stylesheets/bootstrap/mixins/_lists.scss +7 -0
  84. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +11 -0
  85. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +22 -0
  86. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +17 -0
  87. data/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  88. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +34 -0
  89. data/assets/stylesheets/bootstrap/mixins/_size.scss +7 -0
  90. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +39 -0
  91. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +17 -0
  92. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +11 -0
  93. data/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +8 -0
  94. data/assets/stylesheets/bootstrap/mixins/_transition.scss +26 -0
  95. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +8 -0
  96. data/assets/stylesheets/bootstrap/utilities/_align.scss +8 -0
  97. data/assets/stylesheets/bootstrap/utilities/_background.scss +19 -0
  98. data/assets/stylesheets/bootstrap/utilities/_borders.scss +75 -0
  99. data/assets/stylesheets/bootstrap/utilities/_clearfix.scss +3 -0
  100. data/assets/stylesheets/bootstrap/utilities/_display.scss +26 -0
  101. data/assets/stylesheets/bootstrap/utilities/_embed.scss +39 -0
  102. data/assets/stylesheets/bootstrap/utilities/_flex.scss +51 -0
  103. data/assets/stylesheets/bootstrap/utilities/_float.scss +11 -0
  104. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  105. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
  106. data/assets/stylesheets/bootstrap/utilities/_position.scss +32 -0
  107. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +11 -0
  108. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
  109. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +20 -0
  110. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +73 -0
  111. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
  112. data/assets/stylesheets/bootstrap/utilities/_text.scss +72 -0
  113. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +13 -0
  114. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +228 -0
  115. data/bootstrap.gemspec +38 -0
  116. data/lib/bootstrap/engine.rb +15 -0
  117. data/lib/bootstrap/version.rb +6 -0
  118. data/lib/bootstrap.rb +75 -0
  119. data/tasks/updater/js.rb +68 -0
  120. data/tasks/updater/logger.rb +57 -0
  121. data/tasks/updater/network.rb +103 -0
  122. data/tasks/updater/scss.rb +26 -0
  123. data/tasks/updater.rb +67 -0
  124. data/test/dummy_rails/README.rdoc +3 -0
  125. data/test/dummy_rails/Rakefile +6 -0
  126. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  127. data/test/dummy_rails/app/assets/images/.keep +0 -0
  128. data/test/dummy_rails/app/assets/javascripts/application.js +7 -0
  129. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  130. data/test/dummy_rails/app/assets/stylesheets/application.sass +4 -0
  131. data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
  132. data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
  133. data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
  134. data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
  135. data/test/dummy_rails/app/views/pages/root.html.slim +58 -0
  136. data/test/dummy_rails/config/application.rb +35 -0
  137. data/test/dummy_rails/config/boot.rb +5 -0
  138. data/test/dummy_rails/config/environment.rb +5 -0
  139. data/test/dummy_rails/config/environments/development.rb +23 -0
  140. data/test/dummy_rails/config/environments/production.rb +82 -0
  141. data/test/dummy_rails/config/environments/test.rb +38 -0
  142. data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  143. data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
  144. data/test/dummy_rails/config/initializers/inflections.rb +16 -0
  145. data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
  146. data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
  147. data/test/dummy_rails/config/initializers/session_store.rb +3 -0
  148. data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  149. data/test/dummy_rails/config/locales/en.yml +3 -0
  150. data/test/dummy_rails/config/locales/es.yml +3 -0
  151. data/test/dummy_rails/config/routes.rb +3 -0
  152. data/test/dummy_rails/config.ru +4 -0
  153. data/test/dummy_rails/log/.keep +0 -0
  154. data/test/gemfiles/rails_4_2.gemfile +7 -0
  155. data/test/gemfiles/rails_5_0.gemfile +8 -0
  156. data/test/gemfiles/rails_5_1.gemfile +8 -0
  157. data/test/gemfiles/rails_6_0.gemfile +7 -0
  158. data/test/rails_test.rb +24 -0
  159. data/test/support/dummy_rails_integration.rb +31 -0
  160. data/test/support/reporting.rb +27 -0
  161. data/test/test_helper.rb +41 -0
  162. data/test/test_helper_rails.rb +6 -0
  163. metadata +445 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: '0182e09be6076176e63856a8bb2143b0fb606141814de2ed1df5cc6776f9ce10'
4
+ data.tar.gz: 261ac174109484e5292a2ec61037b0a538f6b57db11582b89364770b63735946
5
+ SHA512:
6
+ metadata.gz: 384d52641fbf577fb0319453bf9280716b0b1d041d11688d6d035a263cfa662b3e95df01a944d7888eee6006e5fa2ddbb28fd893d09e143909420addcd7e8996
7
+ data.tar.gz: dff9e55a7919d0b6da736e050217a9c1d7d2eafd6d1b1e5e1deb63b1aa1d16ad35df10e060a30799042e23b6e0fd7f5392ead48bd49d4c3159acd7ccac131bf7
data/.gitattributes ADDED
@@ -0,0 +1,14 @@
1
+ .* text eol=lf
2
+ Gemfile text eol=lf
3
+ LICENSE text eol=lf
4
+ Rakefile text eol=lf
5
+ *.gemfile text eol=lf
6
+ *.gemspec text eol=lf
7
+ *.html.erb text eol=lf
8
+ *.html.slim text eol=lf
9
+ *.js text eol=lf
10
+ *.rb text eol=lf
11
+ *.ru text eol=lf
12
+ *.sass text eol=lf
13
+ *.scss text eol=lf
14
+ *.yml text eol=lf
data/.gitignore ADDED
@@ -0,0 +1,19 @@
1
+ *.gem
2
+ .sass-cache
3
+ bootstrap.css
4
+ bootstrap-responsive.css
5
+ Gemfile.lock
6
+ *.gemfile.lock
7
+ .rvmrc
8
+ .rbenv-version
9
+
10
+ # Ignore bundler config
11
+ /.bundle
12
+ /vendor/cache
13
+ /vendor/bundle
14
+ tmp/
15
+ test/screenshots/
16
+ test/dummy_rails/log/*.log
17
+ test/dummy_rails/public/assets/
18
+ .DS_Store
19
+ node_modules
data/.travis.yml ADDED
@@ -0,0 +1,31 @@
1
+ language: ruby
2
+ sudo: false
3
+ addons:
4
+ apt:
5
+ packages:
6
+ - chromium-browser
7
+ rvm:
8
+ - 2.5
9
+ - 2.6
10
+ - 2.7
11
+
12
+ gemfile:
13
+ - test/gemfiles/rails_4_2.gemfile
14
+ - test/gemfiles/rails_5_0.gemfile
15
+ - test/gemfiles/rails_5_1.gemfile
16
+ - test/gemfiles/rails_6_0.gemfile
17
+
18
+ jobs:
19
+ exclude:
20
+ rvm: 2.7
21
+ gemfile: test/gemfiles/rails_4_2.gemfile
22
+
23
+ cache: bundler
24
+ bundler_args: --path ../../vendor/bundle --without debug
25
+ notifications:
26
+ slack: heybb:3n88HHilXn76ji9vV4gL819Y
27
+ env:
28
+ global:
29
+ - VERBOSE=1
30
+ script:
31
+ bundle exec rake --trace
data/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # Changelog
2
+
3
+ The changelog is tracked here but also in [the Releases section of the GitHub project](https://github.com/twbs/bootstrap-rubygem/releases).
4
+ The changelog only includes changes specific to the RubyGem.
5
+
6
+ The Bootstrap framework changes can be found in [the Releases section of twbs/bootstrap](https://github.com/twbs/bootstrap/releases).
7
+ Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release of Bootstrap.
8
+
9
+ # 4.2.1
10
+
11
+ * Bootstrap rubygem now depends on SassC instead of Sass.
12
+
13
+ # 4.0.0.beta2.1
14
+
15
+ Fixes an extraneous `sourceMappingURL` in `bootstrap.js`.
16
+ [#124](https://github.com/twbs/bootstrap-rubygem/issues/124)
17
+
18
+ # 4.0.0.beta2
19
+
20
+ Compass is no longer supported. Minimum required Sass version is now v3.5.2.
21
+ [#122](https://github.com/twbs/bootstrap-rubygem/pull/122)
22
+
23
+ # 4.0.0.alpha3.1
24
+
25
+ This release corresponds to the upstream Bootstrap 4 Alpha 3.
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'popper_js', '>= 1.12.3'
7
+ end
8
+
9
+ group :debug do
10
+ gem 'byebug', platforms: [:mri], require: false
11
+ end
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2013-2016 Twitter, Inc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,109 @@
1
+ This is a fork of the [Bootstrap 4][bootstrap-home] ruby gem for Ruby on Rails (Sprockets) and Hanami (formerly Lotus), which removes the sassc-rails dependency.
2
+
3
+ For Sass versions of Bootstrap 3 and 2 see [bootstrap-sass](https://github.com/twbs/bootstrap-sass) instead.
4
+
5
+ ## Installation
6
+
7
+ Please see the appropriate guide for your environment of choice:
8
+
9
+ * [Ruby on Rails 4+](#a-ruby-on-rails) or other Sprockets environment.
10
+ * [Other Ruby frameworks](#b-other-ruby-frameworks) not on Rails.
11
+
12
+
13
+ ### a. Ruby on Rails
14
+
15
+ Add `bootstrap` to your Gemfile:
16
+
17
+ ```ruby
18
+ gem 'bootstrap', '~> 4.6.1'
19
+ ```
20
+
21
+ Ensure that `sprockets-rails` is at least v2.3.2.
22
+
23
+ `bundle install` and restart your server to make the files available through the pipeline.
24
+
25
+ Import Bootstrap styles in `app/assets/stylesheets/application.scss`:
26
+
27
+ ```scss
28
+ // Custom bootstrap variables must be set or imported *before* bootstrap.
29
+ @import "bootstrap";
30
+ ```
31
+
32
+ The available variables can be found [here](assets/stylesheets/bootstrap/_variables.scss).
33
+
34
+ Make sure the file has `.scss` extension (or `.sass` for Sass syntax). If you have just generated a new Rails app,
35
+ it may come with a `.css` file instead. If this file exists, it will be served instead of Sass, so rename it:
36
+
37
+ ```console
38
+ $ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
39
+ ```
40
+
41
+ Then, remove all the `*= require` and `*= require_tree` statements from the Sass file. Instead, use `@import` to import Sass files.
42
+
43
+ Do not use `*= require` in Sass or your other stylesheets will not be able to access the Bootstrap mixins and variables.
44
+
45
+ Bootstrap JavaScript depends on jQuery.
46
+ If you're using Rails 5.1+, add the `jquery-rails` gem to your Gemfile:
47
+
48
+ ```ruby
49
+ gem 'jquery-rails'
50
+ ```
51
+
52
+ Bootstrap tooltips and popovers depend on [popper.js] for positioning.
53
+ The `bootstrap` gem already depends on the
54
+ [popper_js](https://github.com/glebm/popper_js-rubygem) gem.
55
+
56
+ Add Bootstrap dependencies and Bootstrap to your `application.js`:
57
+
58
+ ```js
59
+ //= require jquery3
60
+ //= require popper
61
+ //= require bootstrap-sprockets
62
+ ```
63
+
64
+ While `bootstrap-sprockets` provides individual Bootstrap components
65
+ for ease of debugging, you may alternatively require
66
+ the concatenated `bootstrap` for faster compilation:
67
+
68
+ ```js
69
+ //= require jquery3
70
+ //= require popper
71
+ //= require bootstrap
72
+ ```
73
+
74
+ ### b. Other Ruby frameworks
75
+
76
+ If your framework uses Sprockets or Hanami,
77
+ the assets will be registered with Sprockets when the gem is required,
78
+ and you can use them as per the Rails section of the guide.
79
+
80
+ Otherwise you may need to register the assets manually.
81
+ Refer to your framework's documentation on the subject.
82
+
83
+ ## Configuration
84
+
85
+ ### Sass: Autoprefixer
86
+
87
+ Bootstrap requires the use of [Autoprefixer][autoprefixer].
88
+ [Autoprefixer][autoprefixer] adds vendor prefixes to CSS rules using values from [Can I Use](http://caniuse.com/).
89
+
90
+ If you are using bootstrap with Rails, autoprefixer is set up for you automatically.
91
+ Otherwise, please consult the [Autoprefixer documentation][autoprefixer].
92
+
93
+ ### Sass: Individual components
94
+
95
+ By default all of Bootstrap is imported.
96
+
97
+ You can also import components explicitly. To start with a full list of modules copy
98
+ [`_bootstrap.scss`](assets/stylesheets/_bootstrap.scss) file into your assets as `_bootstrap-custom.scss`.
99
+ Then comment out components you do not want from `_bootstrap-custom`.
100
+ In the application Sass file, replace `@import 'bootstrap'` with:
101
+
102
+ ```scss
103
+ @import 'bootstrap-custom';
104
+ ```
105
+
106
+ [bootstrap-home]: https://getbootstrap.com
107
+ [bootstrap-variables.scss]: https://github.com/twbs/bootstrap-rubygem/blob/master/templates/project/_bootstrap-variables.scss
108
+ [autoprefixer]: https://github.com/ai/autoprefixer
109
+ [popper.js]: https://popper.js.org
data/Rakefile ADDED
@@ -0,0 +1,63 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ lib_path = File.join(File.dirname(__FILE__), 'lib')
4
+ $:.unshift(lib_path) unless $:.include?(lib_path)
5
+
6
+ require 'rake/testtask'
7
+ Rake::TestTask.new do |t|
8
+ t.libs << 'test'
9
+ t.test_files = FileList['test/**/*_test.rb']
10
+ t.verbose = false
11
+ t.warning = false
12
+ end
13
+
14
+ desc 'Test all Gemfiles from test/*.gemfile'
15
+ task :test_all_gemfiles do
16
+ require 'term/ansicolor'
17
+ require 'pty'
18
+ require 'shellwords'
19
+ cmd = 'bundle install --quiet && bundle exec rake --trace'
20
+ statuses = Dir.glob('./test/gemfiles/*{[!.lock]}').map do |gemfile|
21
+ env = {'BUNDLE_GEMFILE' => gemfile}
22
+ cmd_with_env = " (#{env.map { |k, v| "export #{k}=#{Shellwords.escape v}" } * ' '}; #{cmd})"
23
+ $stderr.puts Term::ANSIColor.cyan("Testing\n#{cmd_with_env}")
24
+ Bundler.with_clean_env do
25
+ PTY.spawn(env, cmd) do |r, _w, pid|
26
+ begin
27
+ r.each_line { |l| puts l }
28
+ rescue Errno::EIO
29
+ # Errno:EIO error means that the process has finished giving output.
30
+ ensure
31
+ ::Process.wait pid
32
+ end
33
+ end
34
+ end
35
+ [$? && $?.exitstatus == 0, cmd_with_env]
36
+ end
37
+ failed_cmds = statuses.reject(&:first).map { |(_status, cmd_with_env)| cmd_with_env }
38
+ if failed_cmds.empty?
39
+ $stderr.puts Term::ANSIColor.green('Tests pass with all gemfiles')
40
+ else
41
+ $stderr.puts Term::ANSIColor.red("Failing (#{failed_cmds.size} / #{statuses.size})\n#{failed_cmds * "\n"}")
42
+ exit 1
43
+ end
44
+ end
45
+
46
+ desc 'Update bootstrap from upstream'
47
+ task :update, :branch do |t, args|
48
+ require './tasks/updater'
49
+ Updater.new(branch: args[:branch]).update_bootstrap
50
+ end
51
+
52
+ desc 'Start a dummy Rails app server'
53
+ task :rails_server do
54
+ require 'rack'
55
+ require 'term/ansicolor'
56
+ port = ENV['PORT'] || 9292
57
+ puts %Q(Starting on #{Term::ANSIColor.cyan "http://localhost:#{port}"})
58
+ Rack::Server.start(
59
+ config: 'test/dummy_rails/config.ru',
60
+ Port: port)
61
+ end
62
+
63
+ task default: :test
@@ -0,0 +1,183 @@
1
+ /*!
2
+ * Bootstrap alert.js v4.6.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
+ typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.jQuery, global.Util));
10
+ })(this, (function ($, Util) { 'use strict';
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
+ var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
16
+
17
+ function _defineProperties(target, props) {
18
+ for (var i = 0; i < props.length; i++) {
19
+ var descriptor = props[i];
20
+ descriptor.enumerable = descriptor.enumerable || false;
21
+ descriptor.configurable = true;
22
+ if ("value" in descriptor) descriptor.writable = true;
23
+ Object.defineProperty(target, descriptor.key, descriptor);
24
+ }
25
+ }
26
+
27
+ function _createClass(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ return Constructor;
31
+ }
32
+
33
+ /**
34
+ * Constants
35
+ */
36
+
37
+ var NAME = 'alert';
38
+ var VERSION = '4.6.1';
39
+ var DATA_KEY = 'bs.alert';
40
+ var EVENT_KEY = "." + DATA_KEY;
41
+ var DATA_API_KEY = '.data-api';
42
+ var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
43
+ var CLASS_NAME_ALERT = 'alert';
44
+ var CLASS_NAME_FADE = 'fade';
45
+ var CLASS_NAME_SHOW = 'show';
46
+ var EVENT_CLOSE = "close" + EVENT_KEY;
47
+ var EVENT_CLOSED = "closed" + EVENT_KEY;
48
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
49
+ var SELECTOR_DISMISS = '[data-dismiss="alert"]';
50
+ /**
51
+ * Class definition
52
+ */
53
+
54
+ var Alert = /*#__PURE__*/function () {
55
+ function Alert(element) {
56
+ this._element = element;
57
+ } // Getters
58
+
59
+
60
+ var _proto = Alert.prototype;
61
+
62
+ // Public
63
+ _proto.close = function close(element) {
64
+ var rootElement = this._element;
65
+
66
+ if (element) {
67
+ rootElement = this._getRootElement(element);
68
+ }
69
+
70
+ var customEvent = this._triggerCloseEvent(rootElement);
71
+
72
+ if (customEvent.isDefaultPrevented()) {
73
+ return;
74
+ }
75
+
76
+ this._removeElement(rootElement);
77
+ };
78
+
79
+ _proto.dispose = function dispose() {
80
+ $__default["default"].removeData(this._element, DATA_KEY);
81
+ this._element = null;
82
+ } // Private
83
+ ;
84
+
85
+ _proto._getRootElement = function _getRootElement(element) {
86
+ var selector = Util__default["default"].getSelectorFromElement(element);
87
+ var parent = false;
88
+
89
+ if (selector) {
90
+ parent = document.querySelector(selector);
91
+ }
92
+
93
+ if (!parent) {
94
+ parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0];
95
+ }
96
+
97
+ return parent;
98
+ };
99
+
100
+ _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
101
+ var closeEvent = $__default["default"].Event(EVENT_CLOSE);
102
+ $__default["default"](element).trigger(closeEvent);
103
+ return closeEvent;
104
+ };
105
+
106
+ _proto._removeElement = function _removeElement(element) {
107
+ var _this = this;
108
+
109
+ $__default["default"](element).removeClass(CLASS_NAME_SHOW);
110
+
111
+ if (!$__default["default"](element).hasClass(CLASS_NAME_FADE)) {
112
+ this._destroyElement(element);
113
+
114
+ return;
115
+ }
116
+
117
+ var transitionDuration = Util__default["default"].getTransitionDurationFromElement(element);
118
+ $__default["default"](element).one(Util__default["default"].TRANSITION_END, function (event) {
119
+ return _this._destroyElement(element, event);
120
+ }).emulateTransitionEnd(transitionDuration);
121
+ };
122
+
123
+ _proto._destroyElement = function _destroyElement(element) {
124
+ $__default["default"](element).detach().trigger(EVENT_CLOSED).remove();
125
+ } // Static
126
+ ;
127
+
128
+ Alert._jQueryInterface = function _jQueryInterface(config) {
129
+ return this.each(function () {
130
+ var $element = $__default["default"](this);
131
+ var data = $element.data(DATA_KEY);
132
+
133
+ if (!data) {
134
+ data = new Alert(this);
135
+ $element.data(DATA_KEY, data);
136
+ }
137
+
138
+ if (config === 'close') {
139
+ data[config](this);
140
+ }
141
+ });
142
+ };
143
+
144
+ Alert._handleDismiss = function _handleDismiss(alertInstance) {
145
+ return function (event) {
146
+ if (event) {
147
+ event.preventDefault();
148
+ }
149
+
150
+ alertInstance.close(this);
151
+ };
152
+ };
153
+
154
+ _createClass(Alert, null, [{
155
+ key: "VERSION",
156
+ get: function get() {
157
+ return VERSION;
158
+ }
159
+ }]);
160
+
161
+ return Alert;
162
+ }();
163
+ /**
164
+ * Data API implementation
165
+ */
166
+
167
+
168
+ $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));
169
+ /**
170
+ * jQuery
171
+ */
172
+
173
+ $__default["default"].fn[NAME] = Alert._jQueryInterface;
174
+ $__default["default"].fn[NAME].Constructor = Alert;
175
+
176
+ $__default["default"].fn[NAME].noConflict = function () {
177
+ $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
178
+ return Alert._jQueryInterface;
179
+ };
180
+
181
+ return Alert;
182
+
183
+ }));