bootstrap_it 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (289) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +5 -0
  5. data/Gemfile +9 -0
  6. data/README.md +582 -0
  7. data/Rakefile +6 -0
  8. data/bootstrap_it.gemspec +33 -0
  9. data/config.ru +7 -0
  10. data/lib/bootstrap_it.rb +9 -0
  11. data/lib/bootstrap_it/assets.rb +67 -0
  12. data/lib/bootstrap_it/config.rb +50 -0
  13. data/lib/bootstrap_it/engine.rb +25 -0
  14. data/lib/bootstrap_it/locales/en.yml +4 -0
  15. data/lib/bootstrap_it/locales/ru.yml +4 -0
  16. data/lib/bootstrap_it/version.rb +6 -0
  17. data/lib/bootstrap_it/view_helpers.rb +55 -0
  18. data/lib/bootstrap_it/view_helpers/breadcrumb.rb +19 -0
  19. data/lib/bootstrap_it/view_helpers/button.rb +116 -0
  20. data/lib/bootstrap_it/view_helpers/button_group.rb +32 -0
  21. data/lib/bootstrap_it/view_helpers/button_toolbar.rb +21 -0
  22. data/lib/bootstrap_it/view_helpers/dropdown_menu.rb +30 -0
  23. data/lib/bootstrap_it/view_helpers/form.rb +127 -0
  24. data/lib/bootstrap_it/view_helpers/grid.rb +75 -0
  25. data/lib/bootstrap_it/view_helpers/icon.rb +24 -0
  26. data/lib/bootstrap_it/view_helpers/list.rb +47 -0
  27. data/lib/bootstrap_it/view_helpers/misc.rb +144 -0
  28. data/lib/bootstrap_it/view_helpers/mixin.rb +279 -0
  29. data/lib/bootstrap_it/view_helpers/nav.rb +96 -0
  30. data/lib/bootstrap_it/view_helpers/pagination.rb +34 -0
  31. data/lib/bootstrap_it/view_helpers/table.rb +72 -0
  32. data/lib/bootstrap_it/view_helpers/text.rb +46 -0
  33. data/spec/assets/assets_spec.rb +51 -0
  34. data/spec/internal/app/assets/javascript/application.js +7 -0
  35. data/spec/internal/app/assets/javascript/user.js +1 -0
  36. data/spec/internal/app/assets/javascript/userfont.eot +0 -0
  37. data/spec/internal/app/assets/stylesheets/application.css +6 -0
  38. data/spec/internal/app/assets/stylesheets/user.css +1 -0
  39. data/spec/internal/config/database.yml +3 -0
  40. data/spec/internal/config/routes.rb +3 -0
  41. data/spec/internal/db/schema.rb +3 -0
  42. data/spec/internal/log/.gitignore +1 -0
  43. data/spec/internal/public/favicon.ico +0 -0
  44. data/spec/lib/config_spec.rb +10 -0
  45. data/spec/lib/view_helpers_spec.rb +12 -0
  46. data/spec/spec_helper.rb +37 -0
  47. data/spec/support/example_groups/assets_example_group.rb +84 -0
  48. data/spec/support/example_groups/view_helpers_example_group.rb +124 -0
  49. data/spec/view_helpers/breadcrumb_spec.rb +12 -0
  50. data/spec/view_helpers/button_group_spec.rb +40 -0
  51. data/spec/view_helpers/button_spec.rb +169 -0
  52. data/spec/view_helpers/button_toolbar_spec.rb +14 -0
  53. data/spec/view_helpers/dropdown_menu_spec.rb +41 -0
  54. data/spec/view_helpers/form_spec.rb +27 -0
  55. data/spec/view_helpers/grid_spec.rb +47 -0
  56. data/spec/view_helpers/icon_spec.rb +6 -0
  57. data/spec/view_helpers/list_spec.rb +50 -0
  58. data/spec/view_helpers/misc_spec.rb +117 -0
  59. data/spec/view_helpers/mixin_spec.rb +177 -0
  60. data/spec/view_helpers/nav_spec.rb +63 -0
  61. data/spec/view_helpers/pagination_spec.rb +36 -0
  62. data/spec/view_helpers/table_spec.rb +59 -0
  63. data/spec/view_helpers/text_spec.rb +13 -0
  64. data/spec/views/examples_spec.rb +250 -0
  65. data/upstream/bootstrap-3.0.3-dist.zip +0 -0
  66. data/upstream/bootstrap/3.0.3/fonts/glyphicons-halflings-regular.eot +0 -0
  67. data/upstream/bootstrap/3.0.3/fonts/glyphicons-halflings-regular.svg +229 -0
  68. data/upstream/bootstrap/3.0.3/fonts/glyphicons-halflings-regular.ttf +0 -0
  69. data/upstream/bootstrap/3.0.3/fonts/glyphicons-halflings-regular.woff +0 -0
  70. data/upstream/bootstrap/3.0.3/javascript/bootstrap.js +2006 -0
  71. data/upstream/bootstrap/3.0.3/javascript/bootstrap.min.js +7 -0
  72. data/upstream/bootstrap/3.0.3/src/.editorconfig +11 -0
  73. data/upstream/bootstrap/3.0.3/src/.gitattributes +8 -0
  74. data/upstream/bootstrap/3.0.3/src/.gitignore +42 -0
  75. data/upstream/bootstrap/3.0.3/src/.travis.yml +10 -0
  76. data/upstream/bootstrap/3.0.3/src/CNAME +1 -0
  77. data/upstream/bootstrap/3.0.3/src/CONTRIBUTING.md +79 -0
  78. data/upstream/bootstrap/3.0.3/src/DOCS-LICENSE +319 -0
  79. data/upstream/bootstrap/3.0.3/src/Gruntfile.js +337 -0
  80. data/upstream/bootstrap/3.0.3/src/LICENSE +176 -0
  81. data/upstream/bootstrap/3.0.3/src/LICENSE-MIT +21 -0
  82. data/upstream/bootstrap/3.0.3/src/README.md +166 -0
  83. data/upstream/bootstrap/3.0.3/src/_config.yml +25 -0
  84. data/upstream/bootstrap/3.0.3/src/_includes/ads.html +1 -0
  85. data/upstream/bootstrap/3.0.3/src/_includes/footer.html +48 -0
  86. data/upstream/bootstrap/3.0.3/src/_includes/header.html +42 -0
  87. data/upstream/bootstrap/3.0.3/src/_includes/nav-about.html +12 -0
  88. data/upstream/bootstrap/3.0.3/src/_includes/nav-components.html +137 -0
  89. data/upstream/bootstrap/3.0.3/src/_includes/nav-css.html +99 -0
  90. data/upstream/bootstrap/3.0.3/src/_includes/nav-customize.html +40 -0
  91. data/upstream/bootstrap/3.0.3/src/_includes/nav-getting-started.html +48 -0
  92. data/upstream/bootstrap/3.0.3/src/_includes/nav-javascript.html +88 -0
  93. data/upstream/bootstrap/3.0.3/src/_includes/nav-main.html +37 -0
  94. data/upstream/bootstrap/3.0.3/src/_includes/old-bs-docs.html +8 -0
  95. data/upstream/bootstrap/3.0.3/src/_includes/social-buttons.html +16 -0
  96. data/upstream/bootstrap/3.0.3/src/_layouts/default.html +79 -0
  97. data/upstream/bootstrap/3.0.3/src/_layouts/home.html +47 -0
  98. data/upstream/bootstrap/3.0.3/src/about.html +94 -0
  99. data/upstream/bootstrap/3.0.3/src/bower.json +30 -0
  100. data/upstream/bootstrap/3.0.3/src/components.html +3714 -0
  101. data/upstream/bootstrap/3.0.3/src/composer.json +25 -0
  102. data/upstream/bootstrap/3.0.3/src/css.html +2673 -0
  103. data/upstream/bootstrap/3.0.3/src/customize.html +1715 -0
  104. data/upstream/bootstrap/3.0.3/src/dist/css/bootstrap-theme.css +397 -0
  105. data/upstream/bootstrap/3.0.3/src/dist/css/bootstrap-theme.min.css +7 -0
  106. data/upstream/bootstrap/3.0.3/src/dist/css/bootstrap.css +7118 -0
  107. data/upstream/bootstrap/3.0.3/src/dist/css/bootstrap.min.css +7 -0
  108. data/upstream/bootstrap/3.0.3/src/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  109. data/upstream/bootstrap/3.0.3/src/dist/fonts/glyphicons-halflings-regular.svg +229 -0
  110. data/upstream/bootstrap/3.0.3/src/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  111. data/upstream/bootstrap/3.0.3/src/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  112. data/upstream/bootstrap/3.0.3/src/dist/js/bootstrap.js +2006 -0
  113. data/upstream/bootstrap/3.0.3/src/dist/js/bootstrap.min.js +7 -0
  114. data/upstream/bootstrap/3.0.3/src/docs-assets/css/docs.css +1196 -0
  115. data/upstream/bootstrap/3.0.3/src/docs-assets/css/pygments-manni.css +66 -0
  116. data/upstream/bootstrap/3.0.3/src/docs-assets/ico/apple-touch-icon-144-precomposed.png +0 -0
  117. data/upstream/bootstrap/3.0.3/src/docs-assets/ico/favicon.png +0 -0
  118. data/upstream/bootstrap/3.0.3/src/docs-assets/js/application.js +103 -0
  119. data/upstream/bootstrap/3.0.3/src/docs-assets/js/customizer.js +332 -0
  120. data/upstream/bootstrap/3.0.3/src/docs-assets/js/filesaver.js +399 -0
  121. data/upstream/bootstrap/3.0.3/src/docs-assets/js/holder.js +500 -0
  122. data/upstream/bootstrap/3.0.3/src/docs-assets/js/ie8-responsive-file-warning.js +12 -0
  123. data/upstream/bootstrap/3.0.3/src/docs-assets/js/jszip.js +1474 -0
  124. data/upstream/bootstrap/3.0.3/src/docs-assets/js/less.js +9 -0
  125. data/upstream/bootstrap/3.0.3/src/docs-assets/js/raw-files.js +3 -0
  126. data/upstream/bootstrap/3.0.3/src/docs-assets/js/uglify.js +14 -0
  127. data/upstream/bootstrap/3.0.3/src/examples/carousel/carousel.css +148 -0
  128. data/upstream/bootstrap/3.0.3/src/examples/carousel/index.html +206 -0
  129. data/upstream/bootstrap/3.0.3/src/examples/grid/grid.css +28 -0
  130. data/upstream/bootstrap/3.0.3/src/examples/grid/index.html +148 -0
  131. data/upstream/bootstrap/3.0.3/src/examples/jumbotron-narrow/index.html +82 -0
  132. data/upstream/bootstrap/3.0.3/src/examples/jumbotron-narrow/jumbotron-narrow.css +79 -0
  133. data/upstream/bootstrap/3.0.3/src/examples/jumbotron/index.html +99 -0
  134. data/upstream/bootstrap/3.0.3/src/examples/jumbotron/jumbotron.css +5 -0
  135. data/upstream/bootstrap/3.0.3/src/examples/justified-nav/index.html +84 -0
  136. data/upstream/bootstrap/3.0.3/src/examples/justified-nav/justified-nav.css +88 -0
  137. data/upstream/bootstrap/3.0.3/src/examples/navbar-fixed-top/index.html +91 -0
  138. data/upstream/bootstrap/3.0.3/src/examples/navbar-fixed-top/navbar-fixed-top.css +4 -0
  139. data/upstream/bootstrap/3.0.3/src/examples/navbar-static-top/index.html +92 -0
  140. data/upstream/bootstrap/3.0.3/src/examples/navbar-static-top/navbar-static-top.css +7 -0
  141. data/upstream/bootstrap/3.0.3/src/examples/navbar/index.html +88 -0
  142. data/upstream/bootstrap/3.0.3/src/examples/navbar/navbar.css +8 -0
  143. data/upstream/bootstrap/3.0.3/src/examples/non-responsive/index.html +101 -0
  144. data/upstream/bootstrap/3.0.3/src/examples/non-responsive/non-responsive.css +120 -0
  145. data/upstream/bootstrap/3.0.3/src/examples/offcanvas/index.html +130 -0
  146. data/upstream/bootstrap/3.0.3/src/examples/offcanvas/offcanvas.css +51 -0
  147. data/upstream/bootstrap/3.0.3/src/examples/offcanvas/offcanvas.js +5 -0
  148. data/upstream/bootstrap/3.0.3/src/examples/screenshots/carousel.jpg +0 -0
  149. data/upstream/bootstrap/3.0.3/src/examples/screenshots/grid.jpg +0 -0
  150. data/upstream/bootstrap/3.0.3/src/examples/screenshots/jumbotron-narrow.jpg +0 -0
  151. data/upstream/bootstrap/3.0.3/src/examples/screenshots/jumbotron.jpg +0 -0
  152. data/upstream/bootstrap/3.0.3/src/examples/screenshots/justified-nav.jpg +0 -0
  153. data/upstream/bootstrap/3.0.3/src/examples/screenshots/navbar-fixed.jpg +0 -0
  154. data/upstream/bootstrap/3.0.3/src/examples/screenshots/navbar-static.jpg +0 -0
  155. data/upstream/bootstrap/3.0.3/src/examples/screenshots/navbar.jpg +0 -0
  156. data/upstream/bootstrap/3.0.3/src/examples/screenshots/non-responsive.jpg +0 -0
  157. data/upstream/bootstrap/3.0.3/src/examples/screenshots/offcanvas.jpg +0 -0
  158. data/upstream/bootstrap/3.0.3/src/examples/screenshots/sign-in.jpg +0 -0
  159. data/upstream/bootstrap/3.0.3/src/examples/screenshots/starter-template.jpg +0 -0
  160. data/upstream/bootstrap/3.0.3/src/examples/screenshots/sticky-footer-navbar.jpg +0 -0
  161. data/upstream/bootstrap/3.0.3/src/examples/screenshots/sticky-footer.jpg +0 -0
  162. data/upstream/bootstrap/3.0.3/src/examples/screenshots/theme.jpg +0 -0
  163. data/upstream/bootstrap/3.0.3/src/examples/signin/index.html +50 -0
  164. data/upstream/bootstrap/3.0.3/src/examples/signin/signin.css +40 -0
  165. data/upstream/bootstrap/3.0.3/src/examples/starter-template/index.html +68 -0
  166. data/upstream/bootstrap/3.0.3/src/examples/starter-template/starter-template.css +7 -0
  167. data/upstream/bootstrap/3.0.3/src/examples/sticky-footer-navbar/index.html +91 -0
  168. data/upstream/bootstrap/3.0.3/src/examples/sticky-footer-navbar/sticky-footer-navbar.css +45 -0
  169. data/upstream/bootstrap/3.0.3/src/examples/sticky-footer/index.html +55 -0
  170. data/upstream/bootstrap/3.0.3/src/examples/sticky-footer/sticky-footer.css +38 -0
  171. data/upstream/bootstrap/3.0.3/src/examples/theme/index.html +384 -0
  172. data/upstream/bootstrap/3.0.3/src/examples/theme/theme.css +14 -0
  173. data/upstream/bootstrap/3.0.3/src/fonts/glyphicons-halflings-regular.eot +0 -0
  174. data/upstream/bootstrap/3.0.3/src/fonts/glyphicons-halflings-regular.svg +229 -0
  175. data/upstream/bootstrap/3.0.3/src/fonts/glyphicons-halflings-regular.ttf +0 -0
  176. data/upstream/bootstrap/3.0.3/src/fonts/glyphicons-halflings-regular.woff +0 -0
  177. data/upstream/bootstrap/3.0.3/src/getting-started.html +1057 -0
  178. data/upstream/bootstrap/3.0.3/src/index.html +16 -0
  179. data/upstream/bootstrap/3.0.3/src/javascript.html +1995 -0
  180. data/upstream/bootstrap/3.0.3/src/js/.jshintrc +14 -0
  181. data/upstream/bootstrap/3.0.3/src/js/affix.js +126 -0
  182. data/upstream/bootstrap/3.0.3/src/js/alert.js +98 -0
  183. data/upstream/bootstrap/3.0.3/src/js/button.js +115 -0
  184. data/upstream/bootstrap/3.0.3/src/js/carousel.js +217 -0
  185. data/upstream/bootstrap/3.0.3/src/js/collapse.js +179 -0
  186. data/upstream/bootstrap/3.0.3/src/js/dropdown.js +154 -0
  187. data/upstream/bootstrap/3.0.3/src/js/modal.js +246 -0
  188. data/upstream/bootstrap/3.0.3/src/js/popover.js +117 -0
  189. data/upstream/bootstrap/3.0.3/src/js/scrollspy.js +158 -0
  190. data/upstream/bootstrap/3.0.3/src/js/tab.js +135 -0
  191. data/upstream/bootstrap/3.0.3/src/js/tests/index.html +52 -0
  192. data/upstream/bootstrap/3.0.3/src/js/tests/unit/affix.js +25 -0
  193. data/upstream/bootstrap/3.0.3/src/js/tests/unit/alert.js +62 -0
  194. data/upstream/bootstrap/3.0.3/src/js/tests/unit/button.js +122 -0
  195. data/upstream/bootstrap/3.0.3/src/js/tests/unit/carousel.js +87 -0
  196. data/upstream/bootstrap/3.0.3/src/js/tests/unit/collapse.js +164 -0
  197. data/upstream/bootstrap/3.0.3/src/js/tests/unit/dropdown.js +219 -0
  198. data/upstream/bootstrap/3.0.3/src/js/tests/unit/modal.js +196 -0
  199. data/upstream/bootstrap/3.0.3/src/js/tests/unit/phantom.js +69 -0
  200. data/upstream/bootstrap/3.0.3/src/js/tests/unit/popover.js +133 -0
  201. data/upstream/bootstrap/3.0.3/src/js/tests/unit/scrollspy.js +37 -0
  202. data/upstream/bootstrap/3.0.3/src/js/tests/unit/tab.js +86 -0
  203. data/upstream/bootstrap/3.0.3/src/js/tests/unit/tooltip.js +437 -0
  204. data/upstream/bootstrap/3.0.3/src/js/tests/unit/transition.js +13 -0
  205. data/upstream/bootstrap/3.0.3/src/js/tests/vendor/jquery.js +6 -0
  206. data/upstream/bootstrap/3.0.3/src/js/tests/vendor/qunit.css +232 -0
  207. data/upstream/bootstrap/3.0.3/src/js/tests/vendor/qunit.js +1510 -0
  208. data/upstream/bootstrap/3.0.3/src/js/tooltip.js +386 -0
  209. data/upstream/bootstrap/3.0.3/src/js/transition.js +56 -0
  210. data/upstream/bootstrap/3.0.3/src/less/alerts.less +67 -0
  211. data/upstream/bootstrap/3.0.3/src/less/badges.less +51 -0
  212. data/upstream/bootstrap/3.0.3/src/less/bootstrap.less +49 -0
  213. data/upstream/bootstrap/3.0.3/src/less/breadcrumbs.less +23 -0
  214. data/upstream/bootstrap/3.0.3/src/less/button-groups.less +227 -0
  215. data/upstream/bootstrap/3.0.3/src/less/buttons.less +155 -0
  216. data/upstream/bootstrap/3.0.3/src/less/carousel.less +232 -0
  217. data/upstream/bootstrap/3.0.3/src/less/close.less +33 -0
  218. data/upstream/bootstrap/3.0.3/src/less/code.less +53 -0
  219. data/upstream/bootstrap/3.0.3/src/less/component-animations.less +29 -0
  220. data/upstream/bootstrap/3.0.3/src/less/dropdowns.less +187 -0
  221. data/upstream/bootstrap/3.0.3/src/less/forms.less +375 -0
  222. data/upstream/bootstrap/3.0.3/src/less/glyphicons.less +237 -0
  223. data/upstream/bootstrap/3.0.3/src/less/grid.less +79 -0
  224. data/upstream/bootstrap/3.0.3/src/less/input-groups.less +136 -0
  225. data/upstream/bootstrap/3.0.3/src/less/jumbotron.less +46 -0
  226. data/upstream/bootstrap/3.0.3/src/less/labels.less +64 -0
  227. data/upstream/bootstrap/3.0.3/src/less/list-group.less +88 -0
  228. data/upstream/bootstrap/3.0.3/src/less/media.less +56 -0
  229. data/upstream/bootstrap/3.0.3/src/less/mixins.less +845 -0
  230. data/upstream/bootstrap/3.0.3/src/less/modals.less +129 -0
  231. data/upstream/bootstrap/3.0.3/src/less/navbar.less +612 -0
  232. data/upstream/bootstrap/3.0.3/src/less/navs.less +242 -0
  233. data/upstream/bootstrap/3.0.3/src/less/normalize.less +406 -0
  234. data/upstream/bootstrap/3.0.3/src/less/pager.less +55 -0
  235. data/upstream/bootstrap/3.0.3/src/less/pagination.less +85 -0
  236. data/upstream/bootstrap/3.0.3/src/less/panels.less +182 -0
  237. data/upstream/bootstrap/3.0.3/src/less/popovers.less +133 -0
  238. data/upstream/bootstrap/3.0.3/src/less/print.less +105 -0
  239. data/upstream/bootstrap/3.0.3/src/less/progress-bars.less +80 -0
  240. data/upstream/bootstrap/3.0.3/src/less/responsive-utilities.less +209 -0
  241. data/upstream/bootstrap/3.0.3/src/less/scaffolding.less +119 -0
  242. data/upstream/bootstrap/3.0.3/src/less/tables.less +231 -0
  243. data/upstream/bootstrap/3.0.3/src/less/theme.less +247 -0
  244. data/upstream/bootstrap/3.0.3/src/less/thumbnails.less +36 -0
  245. data/upstream/bootstrap/3.0.3/src/less/tooltip.less +95 -0
  246. data/upstream/bootstrap/3.0.3/src/less/type.less +281 -0
  247. data/upstream/bootstrap/3.0.3/src/less/utilities.less +56 -0
  248. data/upstream/bootstrap/3.0.3/src/less/variables.less +642 -0
  249. data/upstream/bootstrap/3.0.3/src/less/wells.less +29 -0
  250. data/upstream/bootstrap/3.0.3/src/package.json +51 -0
  251. data/upstream/bootstrap/3.0.3/stylesheets/bootstrap-theme.css +397 -0
  252. data/upstream/bootstrap/3.0.3/stylesheets/bootstrap-theme.min.css +7 -0
  253. data/upstream/bootstrap/3.0.3/stylesheets/bootstrap.css +7118 -0
  254. data/upstream/bootstrap/3.0.3/stylesheets/bootstrap.min.css +7 -0
  255. data/upstream/font-awesome-4.0.3.zip +0 -0
  256. data/upstream/font-awesome/4.0.3/fonts/FontAwesome.otf +0 -0
  257. data/upstream/font-awesome/4.0.3/fonts/fontawesome-webfont.eot +0 -0
  258. data/upstream/font-awesome/4.0.3/fonts/fontawesome-webfont.svg +414 -0
  259. data/upstream/font-awesome/4.0.3/fonts/fontawesome-webfont.ttf +0 -0
  260. data/upstream/font-awesome/4.0.3/fonts/fontawesome-webfont.woff +0 -0
  261. data/upstream/font-awesome/4.0.3/stylesheets/font-awesome.css +1338 -0
  262. data/upstream/font-awesome/4.0.3/stylesheets/font-awesome.min.css +4 -0
  263. data/upstream/font-awesome/4.0.3/stylesheets/less/bordered-pulled.less +16 -0
  264. data/upstream/font-awesome/4.0.3/stylesheets/less/core.less +12 -0
  265. data/upstream/font-awesome/4.0.3/stylesheets/less/fixed-width.less +6 -0
  266. data/upstream/font-awesome/4.0.3/stylesheets/less/font-awesome.less +17 -0
  267. data/upstream/font-awesome/4.0.3/stylesheets/less/icons.less +412 -0
  268. data/upstream/font-awesome/4.0.3/stylesheets/less/larger.less +13 -0
  269. data/upstream/font-awesome/4.0.3/stylesheets/less/list.less +19 -0
  270. data/upstream/font-awesome/4.0.3/stylesheets/less/mixins.less +20 -0
  271. data/upstream/font-awesome/4.0.3/stylesheets/less/path.less +14 -0
  272. data/upstream/font-awesome/4.0.3/stylesheets/less/rotated-flipped.less +9 -0
  273. data/upstream/font-awesome/4.0.3/stylesheets/less/spinning.less +30 -0
  274. data/upstream/font-awesome/4.0.3/stylesheets/less/stacked.less +20 -0
  275. data/upstream/font-awesome/4.0.3/stylesheets/less/variables.less +381 -0
  276. data/upstream/font-awesome/4.0.3/stylesheets/scss/_bordered-pulled.scss +16 -0
  277. data/upstream/font-awesome/4.0.3/stylesheets/scss/_core.scss +12 -0
  278. data/upstream/font-awesome/4.0.3/stylesheets/scss/_fixed-width.scss +6 -0
  279. data/upstream/font-awesome/4.0.3/stylesheets/scss/_icons.scss +412 -0
  280. data/upstream/font-awesome/4.0.3/stylesheets/scss/_larger.scss +13 -0
  281. data/upstream/font-awesome/4.0.3/stylesheets/scss/_list.scss +19 -0
  282. data/upstream/font-awesome/4.0.3/stylesheets/scss/_mixins.scss +20 -0
  283. data/upstream/font-awesome/4.0.3/stylesheets/scss/_path.scss +14 -0
  284. data/upstream/font-awesome/4.0.3/stylesheets/scss/_rotated-flipped.scss +9 -0
  285. data/upstream/font-awesome/4.0.3/stylesheets/scss/_spinning.scss +30 -0
  286. data/upstream/font-awesome/4.0.3/stylesheets/scss/_stacked.scss +20 -0
  287. data/upstream/font-awesome/4.0.3/stylesheets/scss/_variables.scss +381 -0
  288. data/upstream/font-awesome/4.0.3/stylesheets/scss/font-awesome.scss +17 -0
  289. metadata +505 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3d9b1e234b9f56d313b2ec896e86adc602a257fb
4
+ data.tar.gz: 7f5444a163ea56505c19926166897fe2b2ac625a
5
+ SHA512:
6
+ metadata.gz: 59a0b75fe93234d9c06d150d42a977cddf94e3f922bdc118155fd69596861bb9a59d92297ec656af197c77a80e7dedc90d4601293a8825bffba3c75c6d4af6a4
7
+ data.tar.gz: 356666745264f01ba36dd012609e538bfbaab5301bad272be3c88ef3b499f0be77b50edeb7f7ccdfbbfe83716bef8947a16d7c5cc098c4fcc8d597bee339d026
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ .rspec
2
+ Gemfile.lock
3
+
4
+ # Ignore bundler config.
5
+ /.bundle
6
+
7
+ # Ignore all logfiles and tempfiles.
8
+ /log/*.log
9
+ /tmp
10
+
11
+ *.gem
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/.rubocop.yml ADDED
@@ -0,0 +1,5 @@
1
+ MethodLength:
2
+ Max: 20
3
+
4
+ CyclomaticComplexity:
5
+ Max: 7
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ # gem 'wrap_it', path: '../wrap_it'
6
+
7
+ group :development, :test do
8
+ gem 'rspec-rails', require: false
9
+ end
data/README.md ADDED
@@ -0,0 +1,582 @@
1
+ # General info
2
+
3
+ This package provides helpers for easly creating sites with [Twitter Bootstrap 3](http://getbootstrap.com) framework.
4
+
5
+ > **Warning!** This gem is in active development state. Please, don't use it in production.
6
+
7
+ # Why to use it?
8
+
9
+ At first, it simplify views writing process. You dont't need to keep in mind Bootstrap-specific markup - just write `<%= button 'text', :success %>` and thats it! At the same time, your views will looks clearly.
10
+
11
+ At second, when Bootstrap version changed and some HTML attributes needs to be updated, you don't need to search through all your views for this changes to switch your project to new version. Just select appropriate version with `gem bootstrap_it, 'x.x.x'`. In future releases, markup part of library will be separated from main code and will be versioned respectively to Twitter Bootstrap versions.
12
+
13
+ At third, you can easily extend helpers with your own. This package use [WrapIt](https://github.com/cybernetlab/wrap_it) library, see it's documentation for details.
14
+
15
+ # State
16
+
17
+ Project is in active development state now. First release version is `1.0.0` and planned at second half of February. Version `0.1.0` and all other `0.x.x` are for testing purposes.
18
+
19
+ Not implemented now: forms, inputs, thumbnails, media object, list group, panels, wells and allmost all from JavaScript section of Bootstrap documentation.
20
+
21
+ # Installation
22
+
23
+ put following line in you `Gemfile`
24
+
25
+ ```ruby
26
+ gem 'bootstrap_it'
27
+ ```
28
+
29
+ and run
30
+
31
+ ```sh
32
+ bundle install
33
+ ```
34
+
35
+ Add bootstrap_it to your `layout` file:
36
+
37
+ ```html
38
+ <!DOCTYPE html>
39
+ <html>
40
+ <head>
41
+ ...
42
+ <%= bootstrap_it %>
43
+ </head>
44
+ </html>
45
+ ```
46
+
47
+ # Configuration
48
+
49
+ Full Rails-style configuration is not implemented yet. So, to change config options, just put following line inside your `config/application.rb`:
50
+
51
+ ```ruby
52
+ class Application < Rails::Application
53
+ ...
54
+ BootstrapIt.config.assets_source = :cdn
55
+ end
56
+ ```
57
+
58
+ ## Bootstrap assets
59
+
60
+ Now, you have two choises: at first, CDN source of CSS and JavaScript. And second is minified versions of assets, downloaded from official sites. Third options - compile from LESS source will be available soon. So, you can configure bootstrap_it in `application.rb` linke this:
61
+
62
+ ```ruby
63
+ BootstrapIt.config.assets_source = :cdn # or :precompiled for minified version
64
+ ```
65
+
66
+ > Package have some other options, thats are not implemented yet. Look into `lib/bootstrap_it/config.rb` for details.
67
+
68
+ # Usage
69
+
70
+ ## Sample application
71
+
72
+ You can explore [sample application](https://github.com/cybernetlab/bootstrap_it_sample), especially `app/views/welcome/index.html.erb` for usage examples. This repository will be updated frequently, so keep track on it.
73
+
74
+ ## Common guidelines
75
+
76
+ ### Flags and enumerations arguments and options
77
+
78
+ All helpers supports Bootstrap flags and enumerations, passed as symbols. Any flag can be setted or cleared by boolean option. Enumerations can be specified in options by their names. For example, following two lines
79
+
80
+ ```ruby
81
+ button 'Text', :large, :active, :success
82
+ button 'Text', size: :large, active: true, appearence: :success
83
+ ```
84
+
85
+ produces same HTML:
86
+
87
+ ```html
88
+ <button type="button" class="btn btn-success btn-lg active">Text</button>
89
+ ```
90
+
91
+ Order of flags irrelevant, but all flags and enumerations should be **symbols**. Only supported flags allowed, so refer to [Bootstrap documentation](getbootstrap.com/css) or read corresponding section of this document for valid values. You can replace hyphens `-` to underscores `_` in class names.
92
+
93
+ ### HTML attributes via options
94
+
95
+ You can specify any attribute for element just in creation options:
96
+
97
+ ```ruby
98
+ button :success, 'Text', class: 'super', attr: 'value'
99
+ ```
100
+
101
+ produces HTML:
102
+
103
+ ```html
104
+ <button type="button" class="btn btn-success super" attr="value">Text</button>
105
+ ```
106
+
107
+ In some cases, it will overrided to provide correct Bootstrap manner.
108
+
109
+ ### HTML tag names
110
+
111
+ In most cases you can override default tag name via `tag` option:
112
+
113
+ ```ruby
114
+ button :success, 'Text', tag: 'a', href: 'http://some.url'
115
+ ```
116
+
117
+ produces HTML:
118
+
119
+ ```html
120
+ <a role="button" class="btn btn-success" href="http://some.url">Text</a>
121
+ ```
122
+
123
+ Note, that `role` attribute added automatically.
124
+
125
+ ### Capturing tags
126
+
127
+ Not all helpers produces HTML, but it's recommended to always use capturing tags `<%= >` instead of `<% >` form.
128
+
129
+ ## Components
130
+
131
+ ### Grid system
132
+
133
+ Main helper is `grid`. You can add rows to it with `row` method and cells to rows with `cell` method. Rows can be nested, so cell have `row` method. Also clearfixes elements supports for rows via `clear` method.
134
+
135
+ Cells can have `extra_small`, `small`, `medium` and `large` size specification. Also supported corresponding aliases `xs`, `sm`, `md` and `lg`. You can specify size with digit at the end. For example, `col-sm-4` Bootstrap class correspond to `:sm4` or `:small4` or `:sm_4` or `:small_4` or `:col_sm_4` or `:col_small_4` argument. You can specify element offset, push and pull in same way. For example `:medium_offset_3` will produce `col-md-offset-3` class.
136
+
137
+ If no size specified, cell have `col-md-3` class by default.
138
+
139
+ You can provide text to cell by passing it as string argument.
140
+
141
+ *Example:*
142
+
143
+ ```ruby
144
+ grid do |g|
145
+ g.row do |r|
146
+ r.cell :md4, 'col 1'
147
+ r.cell :md4, :md_offset_4, 'col 2'
148
+ end
149
+ g.row do |r|
150
+ r.cell :md6, :md_offset_3, 'col 3'
151
+ r.clear
152
+ end
153
+ end
154
+ ```
155
+
156
+ *will produce HTML:*
157
+
158
+ ```html
159
+ <div class="container">
160
+ <div class="row">
161
+ <div class="col-md-4">col 1</div>
162
+ <div class="col-md-4 col-md-offset-4">col 2</div>
163
+ </div>
164
+ <div class="row">
165
+ <div class="col-md-6 col-md-offset-3">col 3</div>
166
+ <div class="clearfix"></div>
167
+ </div>
168
+ </div>
169
+ ```
170
+
171
+ ### Tables
172
+
173
+ tables created by main `table` helper. You can add rows and cells as in previous chapter. Table have following flags: `striped`, `bordered`, `hover`, `condensed` and `responsive`. Rows and cells can have one value from following enum: `active`, `success`, `warning`, `danger`. Cells can be produces by `cell` or `td` method of row. To make `<th>`, use `head` or `th` methods. Cells also have size specification but not offsets and push/pull.
174
+
175
+ *Example:*
176
+
177
+ ```ruby
178
+ table :condensed, :bordered do |t|
179
+ t.row :success do |r|
180
+ r.head 'header 1'
181
+ r.head 'header 2'
182
+ end
183
+ t.row do |r|
184
+ r.cell 'data', colspan: 2
185
+ end
186
+ end
187
+ ```
188
+
189
+ *will produce HTML:*
190
+
191
+ ```html
192
+ <table class="table table-condensed table-bordered">
193
+ <tr class="success">
194
+ <th>header 1</th>
195
+ <th>header 2</th>
196
+ </tr>
197
+ <tr>
198
+ <td colspan="2">data</td>
199
+ </tr>
200
+ </table>
201
+ ```
202
+
203
+ ### Forms
204
+
205
+ Forms are in development now.
206
+
207
+ ### Buttons
208
+
209
+ Buttons created by `button` helper. Buttons supports sizes via `:large`, `:small` and `:extra_small` flags and their aliases `:lg`, `:sm` and `:xs`. You can specify one of following appearence type: `:default`, `:primary`, `:success`, `:info`, `:warning`, `:danger` and `:link`. For creating block level buttons, use `:block` flag. Also supported `:active` and `:disabled` switchers.
210
+
211
+ Icon can be added to button with `icon` option.
212
+
213
+ *Example:*
214
+
215
+ ```ruby
216
+ button :danger, :large, 'alert', icon: 'home'
217
+ ```
218
+
219
+ *will produce HTML:*
220
+
221
+ ```html
222
+ <button type="button" class="btn btn-danger"><i class="fa fa-home"></i> alert</button>
223
+ ```
224
+
225
+ ### Icons
226
+
227
+ You can use icon set from bootstrap or font-awesome. To select icon set use following configuration option:
228
+
229
+ ```ruby
230
+ BootstrapIt.config.font_awesome = true
231
+ ```
232
+
233
+ To produce icon, use `icon` helper with icon name as argument.
234
+
235
+ *Example:*
236
+
237
+ ```ruby
238
+ icon :asterisk
239
+ ```
240
+
241
+ *will produce HTML:*
242
+
243
+ ```html
244
+ <i class="fa fa-asterisk"></i>
245
+ ```
246
+
247
+ ### Button groups
248
+
249
+ To create button group use `button_group` helper. And then add buttons with `button` method. To create group of radio or checkbox behaviour buttons, use `redio` or `checkbox` methods. To create dropdown button use `dropdown` method. You can specify size for included buttons by `:large`, `:small` and `:extra_small` or `:lg`, `:sm` and `:xs` arguments. To create vertical group use `:vertical` switch. Also `:justified` switch available.
250
+
251
+ *Example:*
252
+
253
+ ```ruby
254
+ button_group do |g|
255
+ g.button 'one'
256
+ g.button 'two', :success
257
+ g.dropdown 'dropdown' do |d|
258
+ d.link_item 'link 1', '#'
259
+ d.link_item 'link 2', '#'
260
+ end
261
+ end
262
+
263
+ button_group do |g|
264
+ g.radio 'radio 1', :primary
265
+ g.radio 'radio 2', :primary
266
+ end
267
+ ```
268
+
269
+ *will produce HTML:*
270
+
271
+ ```html
272
+ <div class="btn-group">
273
+ <button type="button" class="btn btn-default">one</button>
274
+ <button type="button" class="btn btn-success">two</button>
275
+ <div class="btn-group">
276
+ <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
277
+ dropdown
278
+ <span class="caret"></span>
279
+ </button>
280
+ <ul class="dropdown-menu" role="menu">
281
+ <li role="presentation"><a href="#" role="menuitem" tabindex="-1">link 1</a></li>
282
+ <li role="presentation"><a href="#" role="menuitem" tabindex="-1">link 2</a></li>
283
+ </ul>
284
+ </div>
285
+ </div>
286
+
287
+ <div class="btn-group" data-toggle="buttons">
288
+ <label class="btn btn-primary">
289
+ <input type="checkbox"></input>radio 1
290
+ </label>
291
+ <label class="btn btn-primary">
292
+ <input type="checkbox"></input>radio 2
293
+ </label>
294
+ </div>
295
+ ```
296
+
297
+ ### Button toolbar
298
+
299
+ Button groups can be grouped in button toolbar. Use `toolbar` or `button_toolbar` (it's alias) to make toolbars.
300
+
301
+ ### Dropdown button
302
+
303
+ To make separate dropdown button use `dropdown_button` helper. You can create splitted dropdown with `:splitted` flag and dropped up buttons with `:dropup` flag.
304
+
305
+ *Example:*
306
+
307
+ ```ruby
308
+ dropdown_button :danger, :splitted, 'Button' do |b|
309
+ b.header 'Actions'
310
+ b.link_item 'Action', '#'
311
+ b.link_item 'Another action', '#'
312
+ b.divider
313
+ end
314
+ ```
315
+
316
+ *will produce HTML:*
317
+
318
+ ```html
319
+ <div class="btn-group">
320
+ <button type="button" class="btn btn-danger">Button</button>
321
+ <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown">
322
+ <span class="caret"></span>
323
+ </button>
324
+ <ul class="dropdown-menu" role="menu">
325
+ <li role="presentation" class="dropdown-header">Actions</li>
326
+ <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
327
+ <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
328
+ <li role="presentation" class="divider"></li>
329
+ </ul>
330
+ </div>
331
+ ```
332
+
333
+ ### Input groups
334
+
335
+ Input groups are in development.
336
+
337
+ ### Navs
338
+
339
+ You can create nav pills or nav tabs with `nav_pills` or `pills` and `nav-tabs` or `tabs` helpers. Provide items with `link_item` method. Pills can be vertically stacked with `:stacked` flag. You can justify navs with `:justified` switch. Any item can be disabled with `:disabled` and takes active state with `:active` flags. Use `item` to create items without links and `dropdown` to make dropdown items.
340
+
341
+ *Example:*
342
+
343
+ ```ruby
344
+ pills do |p|
345
+ p.link_item :active, 'Home', '#'
346
+ p.link_item 'Profile', '#'
347
+ p.link_item 'Messages', '#'
348
+ end
349
+ ```
350
+
351
+ *will produce HTML:*
352
+
353
+ ```html
354
+ <ul class="nav nav-pills">
355
+ <li class="active"><a href="#">Home</a></li>
356
+ <li><a href="#">Profile</a></li>
357
+ <li><a href="#">Messages</a></li>
358
+ </ul>
359
+ ```
360
+
361
+ ### Navbar
362
+
363
+ Navbar implementation is not finished yet.
364
+
365
+ ### Breadcrumps
366
+
367
+ Breadcrumps available via `breadcrumb` helper.
368
+
369
+ *Example:*
370
+
371
+ ```ruby
372
+ breadcrumb do |b|
373
+ b.link_item 'Home', '#'
374
+ b.link_item 'Library', '#'
375
+ b.item :active, 'Data'
376
+ end
377
+ ```
378
+
379
+ *will produce HTML:*
380
+
381
+ ```html
382
+ <ol class="breadcrumb">
383
+ <li><a href="#">Home</a></li>
384
+ <li><a href="#">Library</a></li>
385
+ <li class="active">Data</li>
386
+ </ol>
387
+ ```
388
+
389
+ ### Pagination and pagers
390
+
391
+ To create pagination or pager, use `pagination` and `pager` helpers. You can use `:large` and `:small` or `:lg` and `sm:` sizes for pagination. In pager, use `link_item` or `previous` and `next` methods.
392
+
393
+ *Example:*
394
+
395
+ ```ruby
396
+ pagination do |p|
397
+ p.link_item '&laquo;', '#', :disabled
398
+ p.link_item '1', '#', :active
399
+ p.link_item '2', '#'
400
+ p.link_item '3', '#'
401
+ p.link_item '&raquo;', '#'
402
+ end
403
+
404
+ pager do |p|
405
+ p.previous '&larr; Older', '#', :disabled
406
+ p.next 'Newer &rarr;', '#'
407
+ end
408
+ ```
409
+
410
+ *will produce HTML:*
411
+
412
+ ```html
413
+ <ul class="pagination">
414
+ <li class="disabled"><a href="#">&laquo;</a></li>
415
+ <li class="active"><a href="#">1</a></li>
416
+ <li><a href="#">2</a></li>
417
+ <li><a href="#">3</a></li>
418
+ <li><a href="#">&raquo;</a></li>
419
+ </ul>
420
+
421
+ <ul class="pager">
422
+ <li class="previous disabled"><a href="#">&larr; Older</a></li>
423
+ <li class="next"><a href="#">Newer &rarr;</a></li>
424
+ </ul>
425
+ ```
426
+
427
+ ### Labels and badges
428
+
429
+ Use `label` and `badge` helpers. Labels can be `:default`, `:primary`, `:success`, `:info`, `:warning` or `:danger`.
430
+
431
+ *Example:*
432
+
433
+ ```ruby
434
+ label :info, 'label text'
435
+ badge '10'
436
+ ```
437
+
438
+ *will produce HTML:*
439
+
440
+ ```html
441
+ <span class="label label-info">label text</span>
442
+ <span class="badge">10</span>
443
+ ```
444
+
445
+
446
+ ### Jumbotron
447
+
448
+ Use `jumbotron` helper. To create full-width jumbotron, place it outside other other `.container` blocks and use `full_width` flag.
449
+
450
+ *Example:*
451
+
452
+ ```html
453
+ <%= jumbotron do %>
454
+ <h1>Hello, world!</h1>
455
+ <% end %>
456
+ ```
457
+
458
+ *will produce HTML:*
459
+
460
+ ```html
461
+ <div class="jumbotron">
462
+ <h1>Hello, world!</h1>
463
+ </div>
464
+ ```
465
+
466
+ ### Page header
467
+
468
+ Use `page_header` helper
469
+
470
+ *Example:*
471
+
472
+ ```html
473
+ <%= page_header do %>
474
+ <h1>Hello, world!</h1>
475
+ <% end %>
476
+ ```
477
+
478
+ *will produce HTML:*
479
+
480
+ ```html
481
+ <div class="page-header">
482
+ <h1>Hello, world!</h1>
483
+ </div>
484
+ ```
485
+
486
+ ### Thumbnails
487
+
488
+ Thumbnails is not implemented yet.
489
+
490
+ ### Alerts
491
+
492
+ Use `alert_box` helper. To change appearence use `appearence` enum with following values: `success`, `info`, `warning`, `danger`. To make alert dismissable, use `dismissable` flag. To make your links inside alerts well-looking, use `link` method of alert.
493
+
494
+ *Example:*
495
+
496
+ ```ruby
497
+ alert_box :success, :dismissable do |a|
498
+ a.link 'link text', 'url'
499
+ end
500
+ ```
501
+
502
+ *will produce HTML:*
503
+
504
+ ```html
505
+ <div class="alert alert-success alert-dismissable">
506
+ <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
507
+ <a href="url" class="alert-link">link text</a>
508
+ </div>
509
+ ```
510
+
511
+ ### Progress Bar
512
+
513
+ Use `progress_bar` or `progress` helper. To specify completed percents just pass any Numeric argument, or use `completed` option. To change appearence use `appearence` enum with following values: `success`, `info`, `warning`, `danger`. You can use `striped` flag to make bar striped and `active` flag to make bar animated. You can make more that one progress bar stacked together. To do this, use `bar` method of progress bar object to add other bars. To override `sr-only` text for bar, specify it as String argument, or use `body` or `text` option.
514
+
515
+ *Example:*
516
+
517
+ ```ruby
518
+ progress_bar :striped, :success, 35, '35% total complete' do |p|
519
+ p.bar :warning, 20, '20% files complete'
520
+ end
521
+ ```
522
+
523
+ *will produce HTML:*
524
+
525
+ ```html
526
+ <div class="progress progress-striped">
527
+ <div class="progress-bar progress-bar-success" style="width: 35%" role="progressbar" aria-valuenow="35" aria-valuemin="0" aria-valuemax="100">
528
+ <span class="sr-only">35% total complete</span>
529
+ </div>
530
+ <div class="progress-bar progress-bar-warning" style="width: 20%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
531
+ <span class="sr-only">20% files complete</span>
532
+ </div>
533
+ </div>
534
+ ```
535
+
536
+ ### Media objects
537
+
538
+ This and all other stuff are in development.
539
+
540
+ # Todo
541
+
542
+ - finish bootstrap components implementation
543
+ - documentation
544
+ - implement LESS compilation
545
+ - finish Rails config
546
+ - create Rails generators
547
+ - `simple_form` integration
548
+ - `simple-navigation` integration
549
+
550
+ # Long time plans
551
+
552
+ - integration to other ruby frameworks, such as `Sinatra`
553
+
554
+ # Changes
555
+
556
+ `0.1.0`
557
+ * initial version
558
+
559
+ # License
560
+
561
+ The MIT License (MIT)
562
+
563
+ Copyright (c) 2014 Alexey Ovchinnikov
564
+
565
+ Permission is hereby granted, free of charge, to any person obtaining a copy
566
+ of this software and associated documentation files (the "Software"), to deal
567
+ in the Software without restriction, including without limitation the rights
568
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
569
+ copies of the Software, and to permit persons to whom the Software is
570
+ furnished to do so, subject to the following conditions:
571
+
572
+ The above copyright notice and this permission notice shall be included in
573
+ all copies or substantial portions of the Software.
574
+
575
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
576
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
577
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
578
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
579
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
580
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
581
+ THE SOFTWARE.
582
+