loremGem 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +14 -0
  3. data/.gitignore +24 -0
  4. data/.travis.yml +17 -0
  5. data/CHANGELOG.md +37 -0
  6. data/CODE_OF_CONDUCT.md +49 -0
  7. data/Gemfile +12 -0
  8. data/LICENSE Bootstrap +21 -0
  9. data/LICENSE Lorem.txt +21 -0
  10. data/README.md +35 -0
  11. data/Rakefile +80 -0
  12. data/assets/javascript/bootstrap/alert.js +177 -0
  13. data/assets/javascript/bootstrap/button.js +166 -0
  14. data/assets/javascript/bootstrap/carousel.js +507 -0
  15. data/assets/javascript/bootstrap/collapse.js +366 -0
  16. data/assets/javascript/bootstrap/dropdown.js +488 -0
  17. data/assets/javascript/bootstrap/modal.js +584 -0
  18. data/assets/javascript/bootstrap/popover.js +205 -0
  19. data/assets/javascript/bootstrap/scrollspy.js +318 -0
  20. data/assets/javascript/bootstrap/tab.js +250 -0
  21. data/assets/javascript/bootstrap/tooltip.js +673 -0
  22. data/assets/javascript/bootstrap/util.js +131 -0
  23. data/assets/javascript/bootstrap-sprockets.js +11 -0
  24. data/assets/javascript/bootstrap.js +3926 -0
  25. data/assets/javascript/bootstrap.min.js +6 -0
  26. data/assets/javascript/lorem.js +24044 -0
  27. data/assets/stylesheets/_bootstrap-grid.scss +32 -0
  28. data/assets/stylesheets/_bootstrap-reboot.scss +12 -0
  29. data/assets/stylesheets/_bootstrap.scss +42 -0
  30. data/assets/stylesheets/bootstrap/_alert.scss +51 -0
  31. data/assets/stylesheets/bootstrap/_badge.scss +47 -0
  32. data/assets/stylesheets/bootstrap/_breadcrumb.scss +41 -0
  33. data/assets/stylesheets/bootstrap/_button-group.scss +172 -0
  34. data/assets/stylesheets/bootstrap/_buttons.scss +144 -0
  35. data/assets/stylesheets/bootstrap/_card.scss +301 -0
  36. data/assets/stylesheets/bootstrap/_carousel.scss +236 -0
  37. data/assets/stylesheets/bootstrap/_close.scss +34 -0
  38. data/assets/stylesheets/bootstrap/_code.scss +48 -0
  39. data/assets/stylesheets/bootstrap/_custom-forms.scss +421 -0
  40. data/assets/stylesheets/bootstrap/_dropdown.scss +166 -0
  41. data/assets/stylesheets/bootstrap/_forms.scss +335 -0
  42. data/assets/stylesheets/bootstrap/_functions.scss +86 -0
  43. data/assets/stylesheets/bootstrap/_grid.scss +52 -0
  44. data/assets/stylesheets/bootstrap/_images.scss +42 -0
  45. data/assets/stylesheets/bootstrap/_input-group.scss +158 -0
  46. data/assets/stylesheets/bootstrap/_jumbotron.scss +16 -0
  47. data/assets/stylesheets/bootstrap/_list-group.scss +115 -0
  48. data/assets/stylesheets/bootstrap/_media.scss +8 -0
  49. data/assets/stylesheets/bootstrap/_mixins.scss +41 -0
  50. data/assets/stylesheets/bootstrap/_modal.scss +168 -0
  51. data/assets/stylesheets/bootstrap/_nav.scss +118 -0
  52. data/assets/stylesheets/bootstrap/_navbar.scss +299 -0
  53. data/assets/stylesheets/bootstrap/_pagination.scss +78 -0
  54. data/assets/stylesheets/bootstrap/_popover.scss +183 -0
  55. data/assets/stylesheets/bootstrap/_print.scss +141 -0
  56. data/assets/stylesheets/bootstrap/_progress.scss +34 -0
  57. data/assets/stylesheets/bootstrap/_reboot.scss +480 -0
  58. data/assets/stylesheets/bootstrap/_root.scss +19 -0
  59. data/assets/stylesheets/bootstrap/_tables.scss +188 -0
  60. data/assets/stylesheets/bootstrap/_tooltip.scss +115 -0
  61. data/assets/stylesheets/bootstrap/_transitions.scss +22 -0
  62. data/assets/stylesheets/bootstrap/_type.scss +125 -0
  63. data/assets/stylesheets/bootstrap/_utilities.scss +15 -0
  64. data/assets/stylesheets/bootstrap/_variables.scss +929 -0
  65. data/assets/stylesheets/bootstrap/mixins/_alert.scss +13 -0
  66. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +21 -0
  67. data/assets/stylesheets/bootstrap/mixins/_badge.scss +12 -0
  68. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +35 -0
  69. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +5 -0
  70. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +123 -0
  71. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +109 -0
  72. data/assets/stylesheets/bootstrap/mixins/_caret.scss +66 -0
  73. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +7 -0
  74. data/assets/stylesheets/bootstrap/mixins/_float.scss +11 -0
  75. data/assets/stylesheets/bootstrap/mixins/_forms.scss +147 -0
  76. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +45 -0
  77. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +67 -0
  78. data/assets/stylesheets/bootstrap/mixins/_grid.scss +52 -0
  79. data/assets/stylesheets/bootstrap/mixins/_hover.scss +37 -0
  80. data/assets/stylesheets/bootstrap/mixins/_image.scss +36 -0
  81. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +21 -0
  82. data/assets/stylesheets/bootstrap/mixins/_lists.scss +7 -0
  83. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  84. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +22 -0
  85. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +17 -0
  86. data/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  87. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +33 -0
  88. data/assets/stylesheets/bootstrap/mixins/_size.scss +6 -0
  89. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +30 -0
  90. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +14 -0
  91. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +13 -0
  92. data/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +8 -0
  93. data/assets/stylesheets/bootstrap/mixins/_transition.scss +13 -0
  94. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +7 -0
  95. data/assets/stylesheets/bootstrap/utilities/_align.scss +8 -0
  96. data/assets/stylesheets/bootstrap/utilities/_background.scss +19 -0
  97. data/assets/stylesheets/bootstrap/utilities/_borders.scss +59 -0
  98. data/assets/stylesheets/bootstrap/utilities/_clearfix.scss +3 -0
  99. data/assets/stylesheets/bootstrap/utilities/_display.scss +38 -0
  100. data/assets/stylesheets/bootstrap/utilities/_embed.scss +52 -0
  101. data/assets/stylesheets/bootstrap/utilities/_flex.scss +51 -0
  102. data/assets/stylesheets/bootstrap/utilities/_float.scss +9 -0
  103. data/assets/stylesheets/bootstrap/utilities/_position.scss +37 -0
  104. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +11 -0
  105. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
  106. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +12 -0
  107. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +51 -0
  108. data/assets/stylesheets/bootstrap/utilities/_text.scss +58 -0
  109. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +11 -0
  110. data/assets/stylesheets/lorem.css +23980 -0
  111. data/bin/console +14 -0
  112. data/bin/setup +8 -0
  113. data/lib/loremGem/engine.rb +12 -0
  114. data/lib/loremGem/version.rb +4 -0
  115. data/lib/loremGem.rb +74 -0
  116. data/loremGem.gemspec +50 -0
  117. data/tasks/updater/js.rb +68 -0
  118. data/tasks/updater/logger.rb +57 -0
  119. data/tasks/updater/network.rb +103 -0
  120. data/tasks/updater/scss.rb +26 -0
  121. data/tasks/updater.rb +67 -0
  122. data/test/dummy_rails/README.rdoc +3 -0
  123. data/test/dummy_rails/Rakefile +6 -0
  124. data/test/dummy_rails/app/assets/images/.keep +0 -0
  125. data/test/dummy_rails/app/assets/javascripts/application.js +7 -0
  126. data/test/dummy_rails/app/assets/stylesheets/application.sass +4 -0
  127. data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
  128. data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
  129. data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
  130. data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
  131. data/test/dummy_rails/app/views/pages/root.html.slim +58 -0
  132. data/test/dummy_rails/config/application.rb +34 -0
  133. data/test/dummy_rails/config/boot.rb +5 -0
  134. data/test/dummy_rails/config/environment.rb +5 -0
  135. data/test/dummy_rails/config/environments/development.rb +23 -0
  136. data/test/dummy_rails/config/environments/production.rb +82 -0
  137. data/test/dummy_rails/config/environments/test.rb +38 -0
  138. data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  139. data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
  140. data/test/dummy_rails/config/initializers/inflections.rb +16 -0
  141. data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
  142. data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
  143. data/test/dummy_rails/config/initializers/session_store.rb +3 -0
  144. data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  145. data/test/dummy_rails/config/locales/en.yml +3 -0
  146. data/test/dummy_rails/config/locales/es.yml +3 -0
  147. data/test/dummy_rails/config/routes.rb +3 -0
  148. data/test/dummy_rails/config.ru +4 -0
  149. data/test/dummy_rails/log/.keep +0 -0
  150. data/test/gemfiles/rails_4_2.gemfile +7 -0
  151. data/test/gemfiles/rails_5_0.gemfile +8 -0
  152. data/test/gemfiles/rails_5_1.gemfile +8 -0
  153. data/test/rails_test.rb +24 -0
  154. data/test/support/dummy_rails_integration.rb +29 -0
  155. data/test/support/reporting.rb +27 -0
  156. data/test/test_helper.rb +35 -0
  157. data/test/test_helper_rails.rb +6 -0
  158. metadata +480 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 62a09ce85e7479e0b73836dd61ce6cbf0630b303
4
+ data.tar.gz: 7772f531a74ca982182d1509951a6b4e5a539d6f
5
+ SHA512:
6
+ metadata.gz: 87c69a1e5f6901ce67bfce21f31b2c76ccc2db49a841680df1a82eb7bcb751e53da83201c66bf2e2ae500fd410f43263c2076faadd5573aa2b22e4220c8804f7
7
+ data.tar.gz: 88b47139a08bc1435a4354b86af423c40c148b618211df90b4ec2ec6b702af0bf49c268a0d5acc2ce2501e241c9242376e0660d52f82d7e8f981a91ff8d686c7
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,24 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.gem
11
+
12
+ .sass-cache
13
+ bootstrap.css
14
+ bootstrap-responsive.css
15
+ .rvmrc
16
+ .rbenv-version
17
+ # Ignore bundler config
18
+ /vendor/cache
19
+ /vendor/bundle
20
+ test/screenshots/
21
+ test/dummy_rails/log/*.log
22
+ test/dummy_rails/public/assets/
23
+ .DS_Store
24
+ node_modules
data/.travis.yml ADDED
@@ -0,0 +1,17 @@
1
+ language: ruby
2
+ sudo: false
3
+ rvm:
4
+ - 2.3.1
5
+ gemfile:
6
+ - test/gemfiles/rails_4_2.gemfile
7
+ - test/gemfiles/rails_5_0.gemfile
8
+ - test/gemfiles/rails_5_1.gemfile
9
+ cache: bundler
10
+ bundler_args: --path ../../vendor/bundle --without debug
11
+ notifications:
12
+ slack: heybb:3n88HHilXn76ji9vV4gL819Y
13
+ env:
14
+ global:
15
+ - VERBOSE=1
16
+ script:
17
+ bundle exec rake --trace
data/CHANGELOG.md ADDED
@@ -0,0 +1,37 @@
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.1.1
10
+
11
+ No gem-specific changes.
12
+
13
+ # 4.1.0
14
+
15
+ No gem-specific changes.
16
+
17
+ # 4.0.0
18
+
19
+ No gem-specific changes.
20
+
21
+ # 4.0.0.beta3
22
+
23
+ No gem-specific changes.
24
+
25
+ # 4.0.0.beta2.1
26
+
27
+ Fixes an extraneous `sourceMappingURL` in `lorem.js`.
28
+ [#124](https://github.com/twbs/bootstrap-rubygem/issues/124)
29
+
30
+ # 4.0.0.beta2
31
+
32
+ Compass is no longer supported. Minimum required Sass version is now v3.5.2.
33
+ [#122](https://github.com/twbs/bootstrap-rubygem/pull/122)
34
+
35
+ # 4.0.0.alpha3.1
36
+
37
+ This release corresponds to the upstream Bootstrap 4 Alpha 3.
@@ -0,0 +1,49 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, and in the interest of
4
+ fostering an open and welcoming community, we pledge to respect all people who
5
+ contribute through reporting issues, posting feature requests, updating
6
+ documentation, submitting pull requests or patches, and other activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, religion, or nationality.
12
+
13
+ Examples of unacceptable behavior by participants include:
14
+
15
+ * The use of sexualized language or imagery
16
+ * Personal attacks
17
+ * Trolling or insulting/derogatory comments
18
+ * Public or private harassment
19
+ * Publishing other's private information, such as physical or electronic
20
+ addresses, without explicit permission
21
+ * Other unethical or unprofessional conduct
22
+
23
+ Project maintainers have the right and responsibility to remove, edit, or
24
+ reject comments, commits, code, wiki edits, issues, and other contributions
25
+ that are not aligned to this Code of Conduct, or to ban temporarily or
26
+ permanently any contributor for other behaviors that they deem inappropriate,
27
+ threatening, offensive, or harmful.
28
+
29
+ By adopting this Code of Conduct, project maintainers commit themselves to
30
+ fairly and consistently applying these principles to every aspect of managing
31
+ this project. Project maintainers who do not follow or enforce the Code of
32
+ Conduct may be permanently removed from the project team.
33
+
34
+ This code of conduct applies both within project spaces and in public spaces
35
+ when an individual is representing the project or its community.
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
+ reported by contacting a project maintainer at crisciotti.1689186@studenti.uniroma1.it. All
39
+ complaints will be reviewed and investigated and will result in a response that
40
+ is deemed necessary and appropriate to the circumstances. Maintainers are
41
+ obligated to maintain confidentiality with regard to the reporter of an
42
+ incident.
43
+
44
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
45
+ version 1.3.0, available at
46
+ [http://contributor-covenant.org/version/1/3/0/][version]
47
+
48
+ [homepage]: http://contributor-covenant.org
49
+ [version]: http://contributor-covenant.org/version/1/3/0/
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in loremGem.gemspec
4
+ gemspec
5
+
6
+ group :development do
7
+ gem 'popper_js', '>= 1.12.3'
8
+ end
9
+
10
+ group :debug do
11
+ gem 'byebug', platforms: [:mri], require: false
12
+ end
@@ -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.
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2018 Andrea Crisciotti
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,35 @@
1
+ # LoremGem
2
+
3
+ ## Installation
4
+
5
+ Add this line to your application's Gemfile:
6
+
7
+ ```ruby
8
+ gem 'loremGem'
9
+ ```
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install loremGem
18
+
19
+ ## Usage
20
+
21
+
22
+ ## Development
23
+
24
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
25
+
26
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
27
+
28
+ ## Contributing
29
+
30
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/loremGem. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
31
+
32
+
33
+ ## License
34
+
35
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,80 @@
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 'Dumps output to a CSS file for testing'
47
+ task :debug do
48
+ require 'sass'
49
+ require './lib/loremGem'
50
+ require 'term/ansicolor'
51
+ require 'autoprefixer-rails'
52
+ path = LoremGem.stylesheets_path
53
+ %w(_bootstrap _bootstrap-reboot _bootstrap-grid).each do |file|
54
+ engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
55
+ out = File.join('tmp', "#{file[1..-1]}.css")
56
+ css = engine.render
57
+ css = AutoprefixerRails.process(css)
58
+ File.write(out, css)
59
+ $stderr.puts Term::ANSIColor.green "Compiled #{out}"
60
+ end
61
+ end
62
+
63
+ desc 'Update bootstrap from upstream'
64
+ task :update, :branch do |t, args|
65
+ require './tasks/updater'
66
+ Updater.new(branch: args[:branch]).update_bootstrap
67
+ end
68
+
69
+ desc 'Start a dummy Rails app server'
70
+ task :rails_server do
71
+ require 'rack'
72
+ require 'term/ansicolor'
73
+ port = ENV['PORT'] || 9292
74
+ puts %Q(Starting on #{Term::ANSIColor.cyan "http://localhost:#{port}"})
75
+ Rack::Server.start(
76
+ config: 'test/dummy_rails/config.ru',
77
+ Port: port)
78
+ end
79
+
80
+ task :default => :spec
@@ -0,0 +1,177 @@
1
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
2
+
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
4
+
5
+ /**
6
+ * --------------------------------------------------------------------------
7
+ * Bootstrap (v4.1.1): alert.js
8
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
9
+ * --------------------------------------------------------------------------
10
+ */
11
+ var Alert = function ($) {
12
+ /**
13
+ * ------------------------------------------------------------------------
14
+ * Constants
15
+ * ------------------------------------------------------------------------
16
+ */
17
+ var NAME = 'alert';
18
+ var VERSION = '4.1.1';
19
+ var DATA_KEY = 'bs.alert';
20
+ var EVENT_KEY = "." + DATA_KEY;
21
+ var DATA_API_KEY = '.data-api';
22
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
23
+ var Selector = {
24
+ DISMISS: '[data-dismiss="alert"]'
25
+ };
26
+ var Event = {
27
+ CLOSE: "close" + EVENT_KEY,
28
+ CLOSED: "closed" + EVENT_KEY,
29
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
30
+ };
31
+ var ClassName = {
32
+ ALERT: 'alert',
33
+ FADE: 'fade',
34
+ SHOW: 'show'
35
+ /**
36
+ * ------------------------------------------------------------------------
37
+ * Class Definition
38
+ * ------------------------------------------------------------------------
39
+ */
40
+
41
+ };
42
+
43
+ var Alert =
44
+ /*#__PURE__*/
45
+ function () {
46
+ function Alert(element) {
47
+ this._element = element;
48
+ } // Getters
49
+
50
+
51
+ var _proto = Alert.prototype;
52
+
53
+ // Public
54
+ _proto.close = function close(element) {
55
+ var rootElement = this._element;
56
+
57
+ if (element) {
58
+ rootElement = this._getRootElement(element);
59
+ }
60
+
61
+ var customEvent = this._triggerCloseEvent(rootElement);
62
+
63
+ if (customEvent.isDefaultPrevented()) {
64
+ return;
65
+ }
66
+
67
+ this._removeElement(rootElement);
68
+ };
69
+
70
+ _proto.dispose = function dispose() {
71
+ $.removeData(this._element, DATA_KEY);
72
+ this._element = null;
73
+ }; // Private
74
+
75
+
76
+ _proto._getRootElement = function _getRootElement(element) {
77
+ var selector = Util.getSelectorFromElement(element);
78
+ var parent = false;
79
+
80
+ if (selector) {
81
+ parent = $(selector)[0];
82
+ }
83
+
84
+ if (!parent) {
85
+ parent = $(element).closest("." + ClassName.ALERT)[0];
86
+ }
87
+
88
+ return parent;
89
+ };
90
+
91
+ _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
92
+ var closeEvent = $.Event(Event.CLOSE);
93
+ $(element).trigger(closeEvent);
94
+ return closeEvent;
95
+ };
96
+
97
+ _proto._removeElement = function _removeElement(element) {
98
+ var _this = this;
99
+
100
+ $(element).removeClass(ClassName.SHOW);
101
+
102
+ if (!$(element).hasClass(ClassName.FADE)) {
103
+ this._destroyElement(element);
104
+
105
+ return;
106
+ }
107
+
108
+ var transitionDuration = Util.getTransitionDurationFromElement(element);
109
+ $(element).one(Util.TRANSITION_END, function (event) {
110
+ return _this._destroyElement(element, event);
111
+ }).emulateTransitionEnd(transitionDuration);
112
+ };
113
+
114
+ _proto._destroyElement = function _destroyElement(element) {
115
+ $(element).detach().trigger(Event.CLOSED).remove();
116
+ }; // Static
117
+
118
+
119
+ Alert._jQueryInterface = function _jQueryInterface(config) {
120
+ return this.each(function () {
121
+ var $element = $(this);
122
+ var data = $element.data(DATA_KEY);
123
+
124
+ if (!data) {
125
+ data = new Alert(this);
126
+ $element.data(DATA_KEY, data);
127
+ }
128
+
129
+ if (config === 'close') {
130
+ data[config](this);
131
+ }
132
+ });
133
+ };
134
+
135
+ Alert._handleDismiss = function _handleDismiss(alertInstance) {
136
+ return function (event) {
137
+ if (event) {
138
+ event.preventDefault();
139
+ }
140
+
141
+ alertInstance.close(this);
142
+ };
143
+ };
144
+
145
+ _createClass(Alert, null, [{
146
+ key: "VERSION",
147
+ get: function get() {
148
+ return VERSION;
149
+ }
150
+ }]);
151
+
152
+ return Alert;
153
+ }();
154
+ /**
155
+ * ------------------------------------------------------------------------
156
+ * Data Api implementation
157
+ * ------------------------------------------------------------------------
158
+ */
159
+
160
+
161
+ $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
162
+ /**
163
+ * ------------------------------------------------------------------------
164
+ * jQuery
165
+ * ------------------------------------------------------------------------
166
+ */
167
+
168
+ $.fn[NAME] = Alert._jQueryInterface;
169
+ $.fn[NAME].Constructor = Alert;
170
+
171
+ $.fn[NAME].noConflict = function () {
172
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
173
+ return Alert._jQueryInterface;
174
+ };
175
+
176
+ return Alert;
177
+ }($);
@@ -0,0 +1,166 @@
1
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
2
+
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
4
+
5
+ /**
6
+ * --------------------------------------------------------------------------
7
+ * Bootstrap (v4.1.1): button.js
8
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
9
+ * --------------------------------------------------------------------------
10
+ */
11
+ var Button = function ($) {
12
+ /**
13
+ * ------------------------------------------------------------------------
14
+ * Constants
15
+ * ------------------------------------------------------------------------
16
+ */
17
+ var NAME = 'button';
18
+ var VERSION = '4.1.1';
19
+ var DATA_KEY = 'bs.button';
20
+ var EVENT_KEY = "." + DATA_KEY;
21
+ var DATA_API_KEY = '.data-api';
22
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
23
+ var ClassName = {
24
+ ACTIVE: 'active',
25
+ BUTTON: 'btn',
26
+ FOCUS: 'focus'
27
+ };
28
+ var Selector = {
29
+ DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
30
+ DATA_TOGGLE: '[data-toggle="buttons"]',
31
+ INPUT: 'input',
32
+ ACTIVE: '.active',
33
+ BUTTON: '.btn'
34
+ };
35
+ var Event = {
36
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
37
+ FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
38
+ /**
39
+ * ------------------------------------------------------------------------
40
+ * Class Definition
41
+ * ------------------------------------------------------------------------
42
+ */
43
+
44
+ };
45
+
46
+ var Button =
47
+ /*#__PURE__*/
48
+ function () {
49
+ function Button(element) {
50
+ this._element = element;
51
+ } // Getters
52
+
53
+
54
+ var _proto = Button.prototype;
55
+
56
+ // Public
57
+ _proto.toggle = function toggle() {
58
+ var triggerChangeEvent = true;
59
+ var addAriaPressed = true;
60
+ var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
61
+
62
+ if (rootElement) {
63
+ var input = $(this._element).find(Selector.INPUT)[0];
64
+
65
+ if (input) {
66
+ if (input.type === 'radio') {
67
+ if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {
68
+ triggerChangeEvent = false;
69
+ } else {
70
+ var activeElement = $(rootElement).find(Selector.ACTIVE)[0];
71
+
72
+ if (activeElement) {
73
+ $(activeElement).removeClass(ClassName.ACTIVE);
74
+ }
75
+ }
76
+ }
77
+
78
+ if (triggerChangeEvent) {
79
+ if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
80
+ return;
81
+ }
82
+
83
+ input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
84
+ $(input).trigger('change');
85
+ }
86
+
87
+ input.focus();
88
+ addAriaPressed = false;
89
+ }
90
+ }
91
+
92
+ if (addAriaPressed) {
93
+ this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
94
+ }
95
+
96
+ if (triggerChangeEvent) {
97
+ $(this._element).toggleClass(ClassName.ACTIVE);
98
+ }
99
+ };
100
+
101
+ _proto.dispose = function dispose() {
102
+ $.removeData(this._element, DATA_KEY);
103
+ this._element = null;
104
+ }; // Static
105
+
106
+
107
+ Button._jQueryInterface = function _jQueryInterface(config) {
108
+ return this.each(function () {
109
+ var data = $(this).data(DATA_KEY);
110
+
111
+ if (!data) {
112
+ data = new Button(this);
113
+ $(this).data(DATA_KEY, data);
114
+ }
115
+
116
+ if (config === 'toggle') {
117
+ data[config]();
118
+ }
119
+ });
120
+ };
121
+
122
+ _createClass(Button, null, [{
123
+ key: "VERSION",
124
+ get: function get() {
125
+ return VERSION;
126
+ }
127
+ }]);
128
+
129
+ return Button;
130
+ }();
131
+ /**
132
+ * ------------------------------------------------------------------------
133
+ * Data Api implementation
134
+ * ------------------------------------------------------------------------
135
+ */
136
+
137
+
138
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
139
+ event.preventDefault();
140
+ var button = event.target;
141
+
142
+ if (!$(button).hasClass(ClassName.BUTTON)) {
143
+ button = $(button).closest(Selector.BUTTON);
144
+ }
145
+
146
+ Button._jQueryInterface.call($(button), 'toggle');
147
+ }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
148
+ var button = $(event.target).closest(Selector.BUTTON)[0];
149
+ $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
150
+ });
151
+ /**
152
+ * ------------------------------------------------------------------------
153
+ * jQuery
154
+ * ------------------------------------------------------------------------
155
+ */
156
+
157
+ $.fn[NAME] = Button._jQueryInterface;
158
+ $.fn[NAME].Constructor = Button;
159
+
160
+ $.fn[NAME].noConflict = function () {
161
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
162
+ return Button._jQueryInterface;
163
+ };
164
+
165
+ return Button;
166
+ }($);