nex-bootstrap 4.6.3

Sign up to get free protection for your applications and to get access to all the features.
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
+ }));