stylish 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (458) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -10
  3. data/ARCHITECTURE.md +96 -0
  4. data/Gemfile +8 -0
  5. data/README.md +25 -29
  6. data/Rakefile +24 -0
  7. data/bin/stylish +33 -0
  8. data/lib/stylish.rb +36 -1
  9. data/lib/stylish/configuration.rb +37 -0
  10. data/lib/stylish/core_ext.rb +20 -0
  11. data/lib/stylish/developer.rb +13 -0
  12. data/lib/stylish/developer/config.rb +19 -0
  13. data/lib/stylish/developer/environment.rb +75 -0
  14. data/lib/stylish/developer/listing.rb +85 -0
  15. data/lib/stylish/developer/model_delegator.rb +51 -0
  16. data/lib/stylish/developer/modification.rb +139 -0
  17. data/lib/stylish/developer/path.rb +168 -0
  18. data/lib/stylish/developer/route.rb +97 -0
  19. data/lib/stylish/developer/server.rb +40 -0
  20. data/lib/stylish/engine.rb +12 -0
  21. data/lib/stylish/fs.rb +59 -0
  22. data/lib/stylish/manifest.rb +100 -0
  23. data/lib/stylish/models.rb +119 -0
  24. data/lib/stylish/models/component.rb +19 -0
  25. data/lib/stylish/models/layout.rb +19 -0
  26. data/lib/stylish/models/library.rb +134 -0
  27. data/lib/stylish/models/package.rb +156 -0
  28. data/lib/stylish/models/script.rb +10 -0
  29. data/lib/stylish/models/stylesheet.rb +9 -0
  30. data/lib/stylish/models/template.rb +9 -0
  31. data/lib/stylish/models/theme.rb +8 -0
  32. data/lib/stylish/util.rb +20 -0
  33. data/lib/stylish/version.rb +1 -1
  34. data/library/config.json +4 -0
  35. data/library/second-theme/manifest.json +8 -0
  36. data/library/second-theme/manifest.yml +6 -0
  37. data/library/second-theme/templates/footers/footer-01.html +3 -0
  38. data/library/second-theme/templates/footers/footer-02.html +3 -0
  39. data/library/second-theme/templates/headers/header-01.html +3 -0
  40. data/library/second-theme/templates/headers/header-02.html +3 -0
  41. data/library/second-theme/templates/landing-page-blocks/landing-page-block-01.html +3 -0
  42. data/library/second-theme/templates/landing-page-blocks/landing-page-block-02.html +3 -0
  43. data/library/test-theme/components/footers/footer-01.json +5 -0
  44. data/library/test-theme/components/footers/footer-02.json +5 -0
  45. data/library/test-theme/components/headers/header-01.json +5 -0
  46. data/library/test-theme/components/headers/header-02.json +5 -0
  47. data/library/test-theme/components/landing-page-blocks/landing-page-01.json +5 -0
  48. data/library/test-theme/components/landing-page-blocks/landing-page-02.json +5 -0
  49. data/library/test-theme/manifest.json +8 -0
  50. data/library/test-theme/manifest.yml +6 -0
  51. data/library/test-theme/pages/page-01.json +11 -0
  52. data/library/test-theme/templates/footers/footer-01.html +3 -0
  53. data/library/test-theme/templates/footers/footer-02.html +3 -0
  54. data/library/test-theme/templates/headers/header-01.html +3 -0
  55. data/library/test-theme/templates/headers/header-02.html +3 -0
  56. data/library/test-theme/templates/landing-page-blocks/landing-page-block-01.html +3 -0
  57. data/library/test-theme/templates/landing-page-blocks/landing-page-block-02.html +3 -0
  58. data/library/test-theme/templates/layouts/standard-layout.html +10 -0
  59. data/spec/acceptance/listing_assets_spec.rb +20 -0
  60. data/spec/acceptance/model_browsing_spec.rb +21 -0
  61. data/spec/acceptance/model_creation_spec.rb +16 -0
  62. data/spec/acceptance/model_deleting_spec.rb +10 -0
  63. data/spec/acceptance/model_updating_spec.rb +12 -0
  64. data/spec/acceptance/modifying_assets_spec.rb +50 -0
  65. data/spec/acceptance/server_info_spec.rb +10 -0
  66. data/spec/dummy/README.rdoc +28 -0
  67. data/spec/dummy/Rakefile +6 -0
  68. data/spec/dummy/app/assets/images/.keep +0 -0
  69. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  70. data/spec/dummy/app/assets/javascripts/test.coffee +4 -0
  71. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  72. data/spec/dummy/app/assets/stylesheets/test.css.scss +6 -0
  73. data/spec/dummy/app/assets/stylesheets/writable/existing.scss.css +0 -0
  74. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  75. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  76. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  77. data/spec/dummy/app/mailers/.keep +0 -0
  78. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  79. data/spec/dummy/bin/bundle +3 -0
  80. data/spec/dummy/bin/rails +4 -0
  81. data/spec/dummy/bin/rake +4 -0
  82. data/spec/dummy/config.ru +4 -0
  83. data/spec/dummy/config/application.rb +30 -0
  84. data/spec/dummy/config/boot.rb +5 -0
  85. data/spec/dummy/config/database.yml +25 -0
  86. data/spec/dummy/config/environment.rb +5 -0
  87. data/spec/dummy/config/environments/development.rb +37 -0
  88. data/spec/dummy/config/environments/production.rb +82 -0
  89. data/spec/dummy/config/environments/test.rb +39 -0
  90. data/spec/dummy/config/initializers/assets.rb +8 -0
  91. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  92. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  93. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  94. data/spec/dummy/config/initializers/inflections.rb +16 -0
  95. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  96. data/spec/dummy/config/initializers/session_store.rb +3 -0
  97. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  98. data/spec/dummy/config/locales/en.yml +23 -0
  99. data/spec/dummy/config/routes.rb +3 -0
  100. data/spec/dummy/config/secrets.yml +22 -0
  101. data/spec/dummy/db/migrate/20140822065900_create_books.rb +11 -0
  102. data/spec/dummy/db/migrate/20140822065916_create_authors.rb +9 -0
  103. data/spec/dummy/db/migrate/20140824215902_create_users.rb +10 -0
  104. data/spec/dummy/db/migrate/20140826193259_create_libraries.rb +10 -0
  105. data/spec/dummy/db/schema.rb +37 -0
  106. data/spec/dummy/db/test.sqlite3 +0 -0
  107. data/spec/dummy/lib/assets/.keep +0 -0
  108. data/spec/dummy/log/.keep +0 -0
  109. data/spec/dummy/public/404.html +67 -0
  110. data/spec/dummy/public/422.html +67 -0
  111. data/spec/dummy/public/500.html +66 -0
  112. data/spec/dummy/public/favicon.ico +0 -0
  113. data/spec/fixtures/config.json +3 -0
  114. data/spec/fixtures/test-theme/components/footers/footer-01.json +5 -0
  115. data/spec/fixtures/test-theme/components/footers/footer-02.json +5 -0
  116. data/spec/fixtures/test-theme/components/headers/header-01.json +5 -0
  117. data/spec/fixtures/test-theme/components/headers/header-02.json +5 -0
  118. data/spec/fixtures/test-theme/components/landing-page-blocks/landing-page-01.json +5 -0
  119. data/spec/fixtures/test-theme/components/landing-page-blocks/landing-page-02.json +5 -0
  120. data/spec/fixtures/test-theme/manifest.json +8 -0
  121. data/spec/fixtures/test-theme/manifest.yml +6 -0
  122. data/spec/fixtures/test-theme/pages/page-01.json +11 -0
  123. data/spec/fixtures/test-theme/templates/footers/footer-01.html +3 -0
  124. data/spec/fixtures/test-theme/templates/footers/footer-02.html +3 -0
  125. data/spec/fixtures/test-theme/templates/headers/header-01.html +3 -0
  126. data/spec/fixtures/test-theme/templates/headers/header-02.html +3 -0
  127. data/spec/fixtures/test-theme/templates/landing-page-blocks/landing-page-block-01.html +3 -0
  128. data/spec/fixtures/test-theme/templates/landing-page-blocks/landing-page-block-02.html +3 -0
  129. data/spec/fixtures/test-theme/templates/layouts/standard-01.html +9 -0
  130. data/spec/lib/stylish/configuration_spec.rb +8 -0
  131. data/spec/lib/stylish/developer/path_spec.rb +36 -0
  132. data/spec/lib/stylish/developer/route_spec.rb +5 -0
  133. data/spec/lib/stylish/manifest_spec.rb +48 -0
  134. data/spec/lib/stylish/models/library_spec.rb +38 -0
  135. data/spec/lib/stylish/models/package_spec.rb +35 -0
  136. data/spec/lib/stylish/models_spec.rb +12 -0
  137. data/spec/spec_helper.rb +38 -0
  138. data/spec/support/json_helper.rb +7 -0
  139. data/spec/test.css.scss +6 -0
  140. data/stylish.gemspec +17 -2
  141. data/support/editor-app/.gitignore +2 -0
  142. data/support/editor-app/development/bower.json +9 -0
  143. data/support/editor-app/development/package.json +28 -0
  144. data/support/editor-app/development/semantic/components/accordion.css +257 -0
  145. data/support/editor-app/development/semantic/components/accordion.js +558 -0
  146. data/support/editor-app/development/semantic/components/accordion.min.css +11 -0
  147. data/support/editor-app/development/semantic/components/accordion.min.js +11 -0
  148. data/support/editor-app/development/semantic/components/ad.css +277 -0
  149. data/support/editor-app/development/semantic/components/ad.min.css +11 -0
  150. data/support/editor-app/development/semantic/components/api.js +851 -0
  151. data/support/editor-app/development/semantic/components/api.min.js +11 -0
  152. data/support/editor-app/development/semantic/components/breadcrumb.css +125 -0
  153. data/support/editor-app/development/semantic/components/breadcrumb.min.css +11 -0
  154. data/support/editor-app/development/semantic/components/button.css +2391 -0
  155. data/support/editor-app/development/semantic/components/button.min.css +11 -0
  156. data/support/editor-app/development/semantic/components/card.css +758 -0
  157. data/support/editor-app/development/semantic/components/card.min.css +11 -0
  158. data/support/editor-app/development/semantic/components/checkbox.css +514 -0
  159. data/support/editor-app/development/semantic/components/checkbox.js +507 -0
  160. data/support/editor-app/development/semantic/components/checkbox.min.css +11 -0
  161. data/support/editor-app/development/semantic/components/checkbox.min.js +11 -0
  162. data/support/editor-app/development/semantic/components/comment.css +260 -0
  163. data/support/editor-app/development/semantic/components/comment.min.css +11 -0
  164. data/support/editor-app/development/semantic/components/dimmer.css +187 -0
  165. data/support/editor-app/development/semantic/components/dimmer.js +627 -0
  166. data/support/editor-app/development/semantic/components/dimmer.min.css +11 -0
  167. data/support/editor-app/development/semantic/components/dimmer.min.js +11 -0
  168. data/support/editor-app/development/semantic/components/divider.css +244 -0
  169. data/support/editor-app/development/semantic/components/divider.min.css +11 -0
  170. data/support/editor-app/development/semantic/components/dropdown.css +1085 -0
  171. data/support/editor-app/development/semantic/components/dropdown.js +1757 -0
  172. data/support/editor-app/development/semantic/components/dropdown.min.css +11 -0
  173. data/support/editor-app/development/semantic/components/dropdown.min.js +11 -0
  174. data/support/editor-app/development/semantic/components/feed.css +277 -0
  175. data/support/editor-app/development/semantic/components/feed.min.css +11 -0
  176. data/support/editor-app/development/semantic/components/flag.css +1017 -0
  177. data/support/editor-app/development/semantic/components/flag.min.css +11 -0
  178. data/support/editor-app/development/semantic/components/form.css +875 -0
  179. data/support/editor-app/development/semantic/components/form.js +1039 -0
  180. data/support/editor-app/development/semantic/components/form.min.css +11 -0
  181. data/support/editor-app/development/semantic/components/form.min.js +11 -0
  182. data/support/editor-app/development/semantic/components/grid.css +1816 -0
  183. data/support/editor-app/development/semantic/components/grid.min.css +11 -0
  184. data/support/editor-app/development/semantic/components/header.css +572 -0
  185. data/support/editor-app/development/semantic/components/header.min.css +11 -0
  186. data/support/editor-app/development/semantic/components/icon.css +2127 -0
  187. data/support/editor-app/development/semantic/components/icon.min.css +11 -0
  188. data/support/editor-app/development/semantic/components/image.css +275 -0
  189. data/support/editor-app/development/semantic/components/image.min.css +11 -0
  190. data/support/editor-app/development/semantic/components/input.css +455 -0
  191. data/support/editor-app/development/semantic/components/input.min.css +11 -0
  192. data/support/editor-app/development/semantic/components/item.css +458 -0
  193. data/support/editor-app/development/semantic/components/item.min.css +11 -0
  194. data/support/editor-app/development/semantic/components/label.css +930 -0
  195. data/support/editor-app/development/semantic/components/label.min.css +11 -0
  196. data/support/editor-app/development/semantic/components/list.css +879 -0
  197. data/support/editor-app/development/semantic/components/list.min.css +11 -0
  198. data/support/editor-app/development/semantic/components/loader.css +279 -0
  199. data/support/editor-app/development/semantic/components/loader.min.css +11 -0
  200. data/support/editor-app/development/semantic/components/menu.css +1596 -0
  201. data/support/editor-app/development/semantic/components/menu.min.css +11 -0
  202. data/support/editor-app/development/semantic/components/message.css +422 -0
  203. data/support/editor-app/development/semantic/components/message.min.css +11 -0
  204. data/support/editor-app/development/semantic/components/modal.css +431 -0
  205. data/support/editor-app/development/semantic/components/modal.js +860 -0
  206. data/support/editor-app/development/semantic/components/modal.min.css +11 -0
  207. data/support/editor-app/development/semantic/components/modal.min.js +11 -0
  208. data/support/editor-app/development/semantic/components/nag.css +149 -0
  209. data/support/editor-app/development/semantic/components/nag.js +477 -0
  210. data/support/editor-app/development/semantic/components/nag.min.css +11 -0
  211. data/support/editor-app/development/semantic/components/nag.min.js +11 -0
  212. data/support/editor-app/development/semantic/components/popup.css +294 -0
  213. data/support/editor-app/development/semantic/components/popup.js +1187 -0
  214. data/support/editor-app/development/semantic/components/popup.min.css +11 -0
  215. data/support/editor-app/development/semantic/components/popup.min.js +11 -0
  216. data/support/editor-app/development/semantic/components/progress.css +449 -0
  217. data/support/editor-app/development/semantic/components/progress.js +785 -0
  218. data/support/editor-app/development/semantic/components/progress.min.css +11 -0
  219. data/support/editor-app/development/semantic/components/progress.min.js +11 -0
  220. data/support/editor-app/development/semantic/components/rail.css +125 -0
  221. data/support/editor-app/development/semantic/components/rail.min.css +11 -0
  222. data/support/editor-app/development/semantic/components/rating.css +262 -0
  223. data/support/editor-app/development/semantic/components/rating.js +451 -0
  224. data/support/editor-app/development/semantic/components/rating.min.css +11 -0
  225. data/support/editor-app/development/semantic/components/rating.min.js +11 -0
  226. data/support/editor-app/development/semantic/components/reset.css +430 -0
  227. data/support/editor-app/development/semantic/components/reset.min.css +11 -0
  228. data/support/editor-app/development/semantic/components/reveal.css +294 -0
  229. data/support/editor-app/development/semantic/components/reveal.min.css +11 -0
  230. data/support/editor-app/development/semantic/components/search.css +330 -0
  231. data/support/editor-app/development/semantic/components/search.js +1055 -0
  232. data/support/editor-app/development/semantic/components/search.min.css +11 -0
  233. data/support/editor-app/development/semantic/components/search.min.js +11 -0
  234. data/support/editor-app/development/semantic/components/segment.css +590 -0
  235. data/support/editor-app/development/semantic/components/segment.min.css +11 -0
  236. data/support/editor-app/development/semantic/components/shape.css +155 -0
  237. data/support/editor-app/development/semantic/components/shape.js +830 -0
  238. data/support/editor-app/development/semantic/components/shape.min.css +11 -0
  239. data/support/editor-app/development/semantic/components/shape.min.js +11 -0
  240. data/support/editor-app/development/semantic/components/sidebar.css +621 -0
  241. data/support/editor-app/development/semantic/components/sidebar.js +1084 -0
  242. data/support/editor-app/development/semantic/components/sidebar.min.css +11 -0
  243. data/support/editor-app/development/semantic/components/sidebar.min.js +11 -0
  244. data/support/editor-app/development/semantic/components/site.css +147 -0
  245. data/support/editor-app/development/semantic/components/site.js +487 -0
  246. data/support/editor-app/development/semantic/components/site.min.css +11 -0
  247. data/support/editor-app/development/semantic/components/site.min.js +11 -0
  248. data/support/editor-app/development/semantic/components/state.js +690 -0
  249. data/support/editor-app/development/semantic/components/state.min.js +11 -0
  250. data/support/editor-app/development/semantic/components/statistic.css +410 -0
  251. data/support/editor-app/development/semantic/components/statistic.min.css +11 -0
  252. data/support/editor-app/development/semantic/components/step.css +433 -0
  253. data/support/editor-app/development/semantic/components/step.min.css +11 -0
  254. data/support/editor-app/development/semantic/components/sticky.css +80 -0
  255. data/support/editor-app/development/semantic/components/sticky.js +775 -0
  256. data/support/editor-app/development/semantic/components/sticky.min.css +11 -0
  257. data/support/editor-app/development/semantic/components/sticky.min.js +11 -0
  258. data/support/editor-app/development/semantic/components/tab.css +93 -0
  259. data/support/editor-app/development/semantic/components/tab.js +787 -0
  260. data/support/editor-app/development/semantic/components/tab.min.css +11 -0
  261. data/support/editor-app/development/semantic/components/tab.min.js +11 -0
  262. data/support/editor-app/development/semantic/components/table.css +999 -0
  263. data/support/editor-app/development/semantic/components/table.min.css +11 -0
  264. data/support/editor-app/development/semantic/components/transition.css +2152 -0
  265. data/support/editor-app/development/semantic/components/transition.js +936 -0
  266. data/support/editor-app/development/semantic/components/transition.min.css +11 -0
  267. data/support/editor-app/development/semantic/components/transition.min.js +11 -0
  268. data/support/editor-app/development/semantic/components/video.css +126 -0
  269. data/support/editor-app/development/semantic/components/video.js +540 -0
  270. data/support/editor-app/development/semantic/components/video.min.css +11 -0
  271. data/support/editor-app/development/semantic/components/video.min.js +11 -0
  272. data/support/editor-app/development/semantic/components/visibility.js +970 -0
  273. data/support/editor-app/development/semantic/components/visibility.min.js +11 -0
  274. data/support/editor-app/development/semantic/semantic.css +31768 -0
  275. data/support/editor-app/development/semantic/semantic.js +18317 -0
  276. data/support/editor-app/development/semantic/semantic.min.css +11 -0
  277. data/support/editor-app/development/semantic/semantic.min.js +17 -0
  278. data/support/editor-app/development/semantic/themes/basic/assets/fonts/icons.eot +0 -0
  279. data/support/editor-app/development/semantic/themes/basic/assets/fonts/icons.svg +450 -0
  280. data/support/editor-app/development/semantic/themes/basic/assets/fonts/icons.ttf +0 -0
  281. data/support/editor-app/development/semantic/themes/basic/assets/fonts/icons.woff +0 -0
  282. data/support/editor-app/development/semantic/themes/default/assets/fonts/icons.eot +0 -0
  283. data/support/editor-app/development/semantic/themes/default/assets/fonts/icons.otf +0 -0
  284. data/support/editor-app/development/semantic/themes/default/assets/fonts/icons.svg +504 -0
  285. data/support/editor-app/development/semantic/themes/default/assets/fonts/icons.ttf +0 -0
  286. data/support/editor-app/development/semantic/themes/default/assets/fonts/icons.woff +0 -0
  287. data/support/editor-app/development/semantic/themes/default/assets/images/flags.png +0 -0
  288. data/support/editor-app/development/src/apis/index.coffee +35 -0
  289. data/support/editor-app/development/src/components/editor.cjsx +58 -0
  290. data/support/editor-app/development/src/components/editor_drawer.cjsx +7 -0
  291. data/support/editor-app/development/src/components/header.cjsx +12 -0
  292. data/support/editor-app/development/src/components/index.coffee +9 -0
  293. data/support/editor-app/development/src/components/menus/icon_grid.cjsx +0 -0
  294. data/support/editor-app/development/src/components/sidebar.cjsx +24 -0
  295. data/support/editor-app/development/src/components/tiled_grid.cjsx +35 -0
  296. data/support/editor-app/development/src/index.cjsx +82 -0
  297. data/support/editor-app/development/src/lib/util.coffee +48 -0
  298. data/support/editor-app/development/src/pages/home.cjsx +46 -0
  299. data/support/editor-app/development/src/pages/index.coffee +6 -0
  300. data/support/editor-app/development/src/pages/package_details.cjsx +55 -0
  301. data/support/editor-app/development/src/registry.coffee +35 -0
  302. data/support/editor-app/development/src/styles/components/tiled_grid.css.scss +5 -0
  303. data/support/editor-app/development/src/styles/index.css.scss +240 -0
  304. data/support/editor-app/development/src/sugar.cjsx +126 -0
  305. data/support/editor-app/development/webpack.config.js +53 -0
  306. data/support/editor-app/dist/base.css +0 -0
  307. data/support/editor-app/dist/toolit.js +62 -0
  308. data/support/editor-app/dist/toolkit.js +44573 -0
  309. data/support/editor-app/index.html +50 -0
  310. data/support/editor-app/package.json +15 -0
  311. data/support/editor-app/semantic/components/accordion.css +257 -0
  312. data/support/editor-app/semantic/components/accordion.js +558 -0
  313. data/support/editor-app/semantic/components/accordion.min.css +11 -0
  314. data/support/editor-app/semantic/components/accordion.min.js +11 -0
  315. data/support/editor-app/semantic/components/ad.css +277 -0
  316. data/support/editor-app/semantic/components/ad.min.css +11 -0
  317. data/support/editor-app/semantic/components/api.js +851 -0
  318. data/support/editor-app/semantic/components/api.min.js +11 -0
  319. data/support/editor-app/semantic/components/breadcrumb.css +125 -0
  320. data/support/editor-app/semantic/components/breadcrumb.min.css +11 -0
  321. data/support/editor-app/semantic/components/button.css +2391 -0
  322. data/support/editor-app/semantic/components/button.min.css +11 -0
  323. data/support/editor-app/semantic/components/card.css +758 -0
  324. data/support/editor-app/semantic/components/card.min.css +11 -0
  325. data/support/editor-app/semantic/components/checkbox.css +514 -0
  326. data/support/editor-app/semantic/components/checkbox.js +507 -0
  327. data/support/editor-app/semantic/components/checkbox.min.css +11 -0
  328. data/support/editor-app/semantic/components/checkbox.min.js +11 -0
  329. data/support/editor-app/semantic/components/comment.css +260 -0
  330. data/support/editor-app/semantic/components/comment.min.css +11 -0
  331. data/support/editor-app/semantic/components/dimmer.css +187 -0
  332. data/support/editor-app/semantic/components/dimmer.js +627 -0
  333. data/support/editor-app/semantic/components/dimmer.min.css +11 -0
  334. data/support/editor-app/semantic/components/dimmer.min.js +11 -0
  335. data/support/editor-app/semantic/components/divider.css +244 -0
  336. data/support/editor-app/semantic/components/divider.min.css +11 -0
  337. data/support/editor-app/semantic/components/dropdown.css +1085 -0
  338. data/support/editor-app/semantic/components/dropdown.js +1757 -0
  339. data/support/editor-app/semantic/components/dropdown.min.css +11 -0
  340. data/support/editor-app/semantic/components/dropdown.min.js +11 -0
  341. data/support/editor-app/semantic/components/feed.css +277 -0
  342. data/support/editor-app/semantic/components/feed.min.css +11 -0
  343. data/support/editor-app/semantic/components/flag.css +1017 -0
  344. data/support/editor-app/semantic/components/flag.min.css +11 -0
  345. data/support/editor-app/semantic/components/form.css +875 -0
  346. data/support/editor-app/semantic/components/form.js +1039 -0
  347. data/support/editor-app/semantic/components/form.min.css +11 -0
  348. data/support/editor-app/semantic/components/form.min.js +11 -0
  349. data/support/editor-app/semantic/components/grid.css +1816 -0
  350. data/support/editor-app/semantic/components/grid.min.css +11 -0
  351. data/support/editor-app/semantic/components/header.css +572 -0
  352. data/support/editor-app/semantic/components/header.min.css +11 -0
  353. data/support/editor-app/semantic/components/icon.css +2127 -0
  354. data/support/editor-app/semantic/components/icon.min.css +11 -0
  355. data/support/editor-app/semantic/components/image.css +275 -0
  356. data/support/editor-app/semantic/components/image.min.css +11 -0
  357. data/support/editor-app/semantic/components/input.css +455 -0
  358. data/support/editor-app/semantic/components/input.min.css +11 -0
  359. data/support/editor-app/semantic/components/item.css +458 -0
  360. data/support/editor-app/semantic/components/item.min.css +11 -0
  361. data/support/editor-app/semantic/components/label.css +930 -0
  362. data/support/editor-app/semantic/components/label.min.css +11 -0
  363. data/support/editor-app/semantic/components/list.css +879 -0
  364. data/support/editor-app/semantic/components/list.min.css +11 -0
  365. data/support/editor-app/semantic/components/loader.css +279 -0
  366. data/support/editor-app/semantic/components/loader.min.css +11 -0
  367. data/support/editor-app/semantic/components/menu.css +1596 -0
  368. data/support/editor-app/semantic/components/menu.min.css +11 -0
  369. data/support/editor-app/semantic/components/message.css +422 -0
  370. data/support/editor-app/semantic/components/message.min.css +11 -0
  371. data/support/editor-app/semantic/components/modal.css +431 -0
  372. data/support/editor-app/semantic/components/modal.js +860 -0
  373. data/support/editor-app/semantic/components/modal.min.css +11 -0
  374. data/support/editor-app/semantic/components/modal.min.js +11 -0
  375. data/support/editor-app/semantic/components/nag.css +149 -0
  376. data/support/editor-app/semantic/components/nag.js +477 -0
  377. data/support/editor-app/semantic/components/nag.min.css +11 -0
  378. data/support/editor-app/semantic/components/nag.min.js +11 -0
  379. data/support/editor-app/semantic/components/popup.css +294 -0
  380. data/support/editor-app/semantic/components/popup.js +1187 -0
  381. data/support/editor-app/semantic/components/popup.min.css +11 -0
  382. data/support/editor-app/semantic/components/popup.min.js +11 -0
  383. data/support/editor-app/semantic/components/progress.css +449 -0
  384. data/support/editor-app/semantic/components/progress.js +785 -0
  385. data/support/editor-app/semantic/components/progress.min.css +11 -0
  386. data/support/editor-app/semantic/components/progress.min.js +11 -0
  387. data/support/editor-app/semantic/components/rail.css +125 -0
  388. data/support/editor-app/semantic/components/rail.min.css +11 -0
  389. data/support/editor-app/semantic/components/rating.css +262 -0
  390. data/support/editor-app/semantic/components/rating.js +451 -0
  391. data/support/editor-app/semantic/components/rating.min.css +11 -0
  392. data/support/editor-app/semantic/components/rating.min.js +11 -0
  393. data/support/editor-app/semantic/components/reset.css +430 -0
  394. data/support/editor-app/semantic/components/reset.min.css +11 -0
  395. data/support/editor-app/semantic/components/reveal.css +294 -0
  396. data/support/editor-app/semantic/components/reveal.min.css +11 -0
  397. data/support/editor-app/semantic/components/search.css +330 -0
  398. data/support/editor-app/semantic/components/search.js +1055 -0
  399. data/support/editor-app/semantic/components/search.min.css +11 -0
  400. data/support/editor-app/semantic/components/search.min.js +11 -0
  401. data/support/editor-app/semantic/components/segment.css +590 -0
  402. data/support/editor-app/semantic/components/segment.min.css +11 -0
  403. data/support/editor-app/semantic/components/shape.css +155 -0
  404. data/support/editor-app/semantic/components/shape.js +830 -0
  405. data/support/editor-app/semantic/components/shape.min.css +11 -0
  406. data/support/editor-app/semantic/components/shape.min.js +11 -0
  407. data/support/editor-app/semantic/components/sidebar.css +621 -0
  408. data/support/editor-app/semantic/components/sidebar.js +1084 -0
  409. data/support/editor-app/semantic/components/sidebar.min.css +11 -0
  410. data/support/editor-app/semantic/components/sidebar.min.js +11 -0
  411. data/support/editor-app/semantic/components/site.css +147 -0
  412. data/support/editor-app/semantic/components/site.js +487 -0
  413. data/support/editor-app/semantic/components/site.min.css +11 -0
  414. data/support/editor-app/semantic/components/site.min.js +11 -0
  415. data/support/editor-app/semantic/components/state.js +690 -0
  416. data/support/editor-app/semantic/components/state.min.js +11 -0
  417. data/support/editor-app/semantic/components/statistic.css +410 -0
  418. data/support/editor-app/semantic/components/statistic.min.css +11 -0
  419. data/support/editor-app/semantic/components/step.css +433 -0
  420. data/support/editor-app/semantic/components/step.min.css +11 -0
  421. data/support/editor-app/semantic/components/sticky.css +80 -0
  422. data/support/editor-app/semantic/components/sticky.js +775 -0
  423. data/support/editor-app/semantic/components/sticky.min.css +11 -0
  424. data/support/editor-app/semantic/components/sticky.min.js +11 -0
  425. data/support/editor-app/semantic/components/tab.css +93 -0
  426. data/support/editor-app/semantic/components/tab.js +787 -0
  427. data/support/editor-app/semantic/components/tab.min.css +11 -0
  428. data/support/editor-app/semantic/components/tab.min.js +11 -0
  429. data/support/editor-app/semantic/components/table.css +999 -0
  430. data/support/editor-app/semantic/components/table.min.css +11 -0
  431. data/support/editor-app/semantic/components/transition.css +2152 -0
  432. data/support/editor-app/semantic/components/transition.js +936 -0
  433. data/support/editor-app/semantic/components/transition.min.css +11 -0
  434. data/support/editor-app/semantic/components/transition.min.js +11 -0
  435. data/support/editor-app/semantic/components/video.css +126 -0
  436. data/support/editor-app/semantic/components/video.js +540 -0
  437. data/support/editor-app/semantic/components/video.min.css +11 -0
  438. data/support/editor-app/semantic/components/video.min.js +11 -0
  439. data/support/editor-app/semantic/components/visibility.js +970 -0
  440. data/support/editor-app/semantic/components/visibility.min.js +11 -0
  441. data/support/editor-app/semantic/semantic.css +31768 -0
  442. data/support/editor-app/semantic/semantic.js +18317 -0
  443. data/support/editor-app/semantic/semantic.min.css +11 -0
  444. data/support/editor-app/semantic/semantic.min.js +17 -0
  445. data/support/editor-app/semantic/themes/basic/assets/fonts/icons.eot +0 -0
  446. data/support/editor-app/semantic/themes/basic/assets/fonts/icons.svg +450 -0
  447. data/support/editor-app/semantic/themes/basic/assets/fonts/icons.ttf +0 -0
  448. data/support/editor-app/semantic/themes/basic/assets/fonts/icons.woff +0 -0
  449. data/support/editor-app/semantic/themes/default/assets/fonts/icons.eot +0 -0
  450. data/support/editor-app/semantic/themes/default/assets/fonts/icons.otf +0 -0
  451. data/support/editor-app/semantic/themes/default/assets/fonts/icons.svg +504 -0
  452. data/support/editor-app/semantic/themes/default/assets/fonts/icons.ttf +0 -0
  453. data/support/editor-app/semantic/themes/default/assets/fonts/icons.woff +0 -0
  454. data/support/editor-app/semantic/themes/default/assets/images/flags.png +0 -0
  455. data/support/editor-app/vendor/jquery.js +8829 -0
  456. data/support/library-server/Gemfile +0 -0
  457. data/support/library-server/config.ru +4 -0
  458. metadata +740 -7
@@ -0,0 +1,785 @@
1
+ /*
2
+ * # Semantic - Progress
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Copyright 2014 Contributor
7
+ * Released under the MIT license
8
+ * http://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+
12
+ ;(function ( $, window, document, undefined ) {
13
+
14
+ "use strict";
15
+
16
+ $.fn.progress = function(parameters) {
17
+ var
18
+ $allModules = $(this),
19
+
20
+ moduleSelector = $allModules.selector || '',
21
+
22
+ time = new Date().getTime(),
23
+ performance = [],
24
+
25
+ query = arguments[0],
26
+ methodInvoked = (typeof query == 'string'),
27
+ queryArguments = [].slice.call(arguments, 1),
28
+
29
+ returnedValue
30
+ ;
31
+
32
+ $allModules
33
+ .each(function() {
34
+ var
35
+ settings = ( $.isPlainObject(parameters) )
36
+ ? $.extend(true, {}, $.fn.progress.settings, parameters)
37
+ : $.extend({}, $.fn.progress.settings),
38
+
39
+ className = settings.className,
40
+ metadata = settings.metadata,
41
+ namespace = settings.namespace,
42
+ selector = settings.selector,
43
+ error = settings.error,
44
+
45
+ eventNamespace = '.' + namespace,
46
+ moduleNamespace = 'module-' + namespace,
47
+
48
+ $module = $(this),
49
+ $bar = $(this).find(selector.bar),
50
+ $progress = $(this).find(selector.progress),
51
+ $label = $(this).find(selector.label),
52
+
53
+ element = this,
54
+ instance = $module.data(moduleNamespace),
55
+
56
+ animating = false,
57
+ transitionEnd,
58
+ module
59
+ ;
60
+
61
+ module = {
62
+
63
+ initialize: function() {
64
+ module.debug('Initializing progress bar', settings);
65
+
66
+ transitionEnd = module.get.transitionEnd();
67
+
68
+ module.read.metadata();
69
+ module.set.duration();
70
+ module.set.initials();
71
+ module.instantiate();
72
+ },
73
+
74
+ instantiate: function() {
75
+ module.verbose('Storing instance of progress', module);
76
+ instance = module;
77
+ $module
78
+ .data(moduleNamespace, module)
79
+ ;
80
+ },
81
+ destroy: function() {
82
+ module.verbose('Destroying previous progress for', $module);
83
+ clearInterval(instance.interval);
84
+ module.remove.state();
85
+ $module.removeData(moduleNamespace);
86
+ instance = undefined;
87
+ },
88
+
89
+ reset: function() {
90
+ module.set.percent(0);
91
+ },
92
+
93
+ complete: function() {
94
+ if(module.percent === undefined || module.percent < 100) {
95
+ module.set.percent(100);
96
+ }
97
+ },
98
+
99
+ read: {
100
+ metadata: function() {
101
+ if( $module.data(metadata.percent) ) {
102
+ module.verbose('Current percent value set from metadata');
103
+ module.percent = $module.data(metadata.percent);
104
+ }
105
+ if( $module.data(metadata.total) ) {
106
+ module.verbose('Total value set from metadata');
107
+ module.total = $module.data(metadata.total);
108
+ }
109
+ if( $module.data(metadata.value) ) {
110
+ module.verbose('Current value set from metadata');
111
+ module.value = $module.data(metadata.value);
112
+ }
113
+ },
114
+ currentValue: function() {
115
+ return (module.value !== undefined)
116
+ ? module.value
117
+ : false
118
+ ;
119
+ }
120
+ },
121
+
122
+ increment: function(incrementValue) {
123
+ var
124
+ total = module.total || false,
125
+ edgeValue,
126
+ startValue,
127
+ newValue
128
+ ;
129
+ if(total) {
130
+ startValue = module.value || 0;
131
+ incrementValue = incrementValue || 1;
132
+ newValue = startValue + incrementValue;
133
+ edgeValue = module.total;
134
+ module.debug('Incrementing value by', incrementValue, startValue, edgeValue);
135
+ if(newValue > edgeValue ) {
136
+ module.debug('Value cannot increment above total', edgeValue);
137
+ newValue = edgeValue;
138
+ }
139
+ module.set.progress(newValue);
140
+ }
141
+ else {
142
+ startValue = module.percent || 0;
143
+ incrementValue = incrementValue || module.get.randomValue();
144
+ newValue = startValue + incrementValue;
145
+ edgeValue = 100;
146
+ module.debug('Incrementing percentage by', incrementValue, startValue);
147
+ if(newValue > edgeValue ) {
148
+ module.debug('Value cannot increment above 100 percent');
149
+ newValue = edgeValue;
150
+ }
151
+ module.set.progress(newValue);
152
+ }
153
+ },
154
+ decrement: function(decrementValue) {
155
+ var
156
+ total = module.total || false,
157
+ edgeValue = 0,
158
+ startValue,
159
+ newValue
160
+ ;
161
+ if(total) {
162
+ startValue = module.value || 0;
163
+ decrementValue = decrementValue || 1;
164
+ newValue = startValue - decrementValue;
165
+ module.debug('Decrementing value by', decrementValue, startValue);
166
+ }
167
+ else {
168
+ startValue = module.percent || 0;
169
+ decrementValue = decrementValue || module.get.randomValue();
170
+ newValue = startValue - decrementValue;
171
+ module.debug('Decrementing percentage by', decrementValue, startValue);
172
+ }
173
+
174
+ if(newValue < edgeValue) {
175
+ module.debug('Value cannot decrement below 0');
176
+ newValue = 0;
177
+ }
178
+ module.set.progress(newValue);
179
+ },
180
+
181
+ get: {
182
+ text: function(templateText) {
183
+ var
184
+ value = module.value || 0,
185
+ total = module.total || 0,
186
+ percent = (module.is.visible() && animating)
187
+ ? module.get.displayPercent()
188
+ : module.percent || 0,
189
+ left = (module.total > 0)
190
+ ? (total - value)
191
+ : (100 - percent)
192
+ ;
193
+ templateText = templateText || '';
194
+ templateText = templateText
195
+ .replace('{value}', value)
196
+ .replace('{total}', total)
197
+ .replace('{left}', left)
198
+ .replace('{percent}', percent)
199
+ ;
200
+ module.debug('Adding variables to progress bar text', templateText);
201
+ return templateText;
202
+ },
203
+ randomValue: function() {
204
+ module.debug('Generating random increment percentage');
205
+ return Math.floor((Math.random() * settings.random.max) + settings.random.min);
206
+ },
207
+
208
+ transitionEnd: function() {
209
+ var
210
+ element = document.createElement('element'),
211
+ transitions = {
212
+ 'transition' :'transitionend',
213
+ 'OTransition' :'oTransitionEnd',
214
+ 'MozTransition' :'transitionend',
215
+ 'WebkitTransition' :'webkitTransitionEnd'
216
+ },
217
+ transition
218
+ ;
219
+ for(transition in transitions){
220
+ if( element.style[transition] !== undefined ){
221
+ return transitions[transition];
222
+ }
223
+ }
224
+ },
225
+
226
+ // gets current displayed percentage (if animating values this is the intermediary value)
227
+ displayPercent: function() {
228
+ var
229
+ barWidth = $bar.width(),
230
+ totalWidth = $module.width(),
231
+ minDisplay = parseInt($bar.css('min-width'), 10),
232
+ displayPercent = (barWidth > minDisplay)
233
+ ? (barWidth / totalWidth * 100)
234
+ : module.percent
235
+ ;
236
+ if(settings.precision === 0) {
237
+ return Math.round(displayPercent);
238
+ }
239
+ return Math.round(displayPercent * (10 * settings.precision) / (10 * settings.precision) );
240
+ },
241
+
242
+ percent: function() {
243
+ return module.percent || 0;
244
+ },
245
+ value: function() {
246
+ return module.value || false;
247
+ },
248
+ total: function() {
249
+ return module.total || false;
250
+ }
251
+ },
252
+
253
+ is: {
254
+ success: function() {
255
+ return $module.hasClass(className.success);
256
+ },
257
+ warning: function() {
258
+ return $module.hasClass(className.warning);
259
+ },
260
+ error: function() {
261
+ return $module.hasClass(className.error);
262
+ },
263
+ active: function() {
264
+ return $module.hasClass(className.active);
265
+ },
266
+ visible: function() {
267
+ return $module.is(':visible');
268
+ }
269
+ },
270
+
271
+ remove: {
272
+ state: function() {
273
+ module.verbose('Removing stored state');
274
+ delete module.total;
275
+ delete module.percent;
276
+ delete module.value;
277
+ },
278
+ active: function() {
279
+ module.verbose('Removing active state');
280
+ $module.removeClass(className.active);
281
+ },
282
+ success: function() {
283
+ module.verbose('Removing success state');
284
+ $module.removeClass(className.success);
285
+ },
286
+ warning: function() {
287
+ module.verbose('Removing warning state');
288
+ $module.removeClass(className.warning);
289
+ },
290
+ error: function() {
291
+ module.verbose('Removing error state');
292
+ $module.removeClass(className.error);
293
+ }
294
+ },
295
+
296
+ set: {
297
+ barWidth: function(value) {
298
+ if(value > 100) {
299
+ module.error(error.tooHigh, value);
300
+ }
301
+ else if (value < 0) {
302
+ module.error(error.tooLow, value);
303
+ }
304
+ else {
305
+ $bar
306
+ .css('width', value + '%')
307
+ ;
308
+ $module
309
+ .attr('data-percent', parseInt(value, 10))
310
+ ;
311
+ }
312
+ },
313
+ duration: function(duration) {
314
+ duration = duration || settings.duration;
315
+ duration = (typeof duration == 'number')
316
+ ? duration + 'ms'
317
+ : duration
318
+ ;
319
+ module.verbose('Setting progress bar transition duration', duration);
320
+ $bar
321
+ .css({
322
+ '-webkit-transition-duration': duration,
323
+ '-moz-transition-duration': duration,
324
+ '-ms-transition-duration': duration,
325
+ '-o-transition-duration': duration,
326
+ 'transition-duration': duration
327
+ })
328
+ ;
329
+ },
330
+ initials: function() {
331
+ if(settings.total !== false) {
332
+ module.verbose('Current total set in settings', settings.total);
333
+ module.total = settings.total;
334
+ }
335
+ if(settings.value !== false) {
336
+ module.verbose('Current value set in settings', settings.value);
337
+ module.value = settings.value;
338
+ }
339
+ if(settings.percent !== false) {
340
+ module.verbose('Current percent set in settings', settings.percent);
341
+ module.percent = settings.percent;
342
+ }
343
+ if(module.percent !== undefined) {
344
+ module.set.percent(module.percent);
345
+ }
346
+ else if(module.value !== undefined) {
347
+ module.set.progress(module.value);
348
+ }
349
+ },
350
+ percent: function(percent) {
351
+ percent = (typeof percent == 'string')
352
+ ? +(percent.replace('%', ''))
353
+ : percent
354
+ ;
355
+ if(percent > 0 && percent < 1) {
356
+ module.verbose('Module percentage passed as decimal, converting');
357
+ percent = percent * 100;
358
+ }
359
+ // round percentage
360
+ if(settings.precision === 0) {
361
+ percent = Math.round(percent);
362
+ }
363
+ else {
364
+ percent = Math.round(percent * (10 * settings.precision) / (10 * settings.precision) );
365
+ }
366
+ module.percent = percent;
367
+ if(module.total) {
368
+ module.value = Math.round( (percent / 100) * module.total);
369
+ }
370
+ else if(settings.limitValues) {
371
+ module.value = (module.value > 100)
372
+ ? 100
373
+ : (module.value < 0)
374
+ ? 0
375
+ : module.value
376
+ ;
377
+ }
378
+ module.set.barWidth(percent);
379
+ if( module.is.visible() ) {
380
+ module.set.labelInterval();
381
+ }
382
+ module.set.labels();
383
+ settings.onChange.call(element, percent, module.value, module.total);
384
+ },
385
+ labelInterval: function() {
386
+ var
387
+ animationCallback = function() {
388
+ module.verbose('Bar finished animating, removing continuous label updates');
389
+ clearInterval(module.interval);
390
+ animating = false;
391
+ module.set.labels();
392
+ }
393
+ ;
394
+ clearInterval(module.interval);
395
+ $bar.one(transitionEnd + eventNamespace, animationCallback);
396
+ module.timer = setTimeout(animationCallback, settings.duration + 100);
397
+ animating = true;
398
+ module.interval = setInterval(module.set.labels, settings.framerate);
399
+ },
400
+ labels: function() {
401
+ module.verbose('Setting both bar progress and outer label text');
402
+ module.set.barLabel();
403
+ module.set.state();
404
+ },
405
+ label: function(text) {
406
+ text = text || '';
407
+ if(text) {
408
+ text = module.get.text(text);
409
+ module.debug('Setting label to text', text);
410
+ $label.text(text);
411
+ }
412
+ },
413
+ state: function(percent) {
414
+ percent = (percent !== undefined)
415
+ ? percent
416
+ : module.percent
417
+ ;
418
+ if(percent === 100) {
419
+ if(settings.autoSuccess && !(module.is.warning() || module.is.error())) {
420
+ module.set.success();
421
+ module.debug('Automatically triggering success at 100%');
422
+ }
423
+ else {
424
+ module.verbose('Reached 100% removing active state');
425
+ module.remove.active();
426
+ }
427
+ }
428
+ else if(percent > 0) {
429
+ module.verbose('Adjusting active progress bar label', percent);
430
+ module.set.active();
431
+ }
432
+ else {
433
+ module.remove.active();
434
+ module.set.label(settings.text.active);
435
+ }
436
+ },
437
+ barLabel: function(text) {
438
+ if(text !== undefined) {
439
+ $progress.text( module.get.text(text) );
440
+ }
441
+ else if(settings.label == 'ratio' && module.total) {
442
+ module.debug('Adding ratio to bar label');
443
+ $progress.text( module.get.text(settings.text.ratio) );
444
+ }
445
+ else if(settings.label == 'percent') {
446
+ module.debug('Adding percentage to bar label');
447
+ $progress.text( module.get.text(settings.text.percent) );
448
+ }
449
+ },
450
+ active: function(text) {
451
+ text = text || settings.text.active;
452
+ module.debug('Setting active state');
453
+ if(settings.showActivity && !module.is.active() ) {
454
+ $module.addClass(className.active);
455
+ }
456
+ module.remove.warning();
457
+ module.remove.error();
458
+ module.remove.success();
459
+ if(text) {
460
+ module.set.label(text);
461
+ }
462
+ settings.onActive.call(element, module.value, module.total);
463
+ },
464
+ success : function(text) {
465
+ text = text || settings.text.success;
466
+ module.debug('Setting success state');
467
+ $module.addClass(className.success);
468
+ module.remove.active();
469
+ module.remove.warning();
470
+ module.remove.error();
471
+ module.complete();
472
+ if(text) {
473
+ module.set.label(text);
474
+ }
475
+ settings.onSuccess.call(element, module.total);
476
+ },
477
+ warning : function(text) {
478
+ text = text || settings.text.warning;
479
+ module.debug('Setting warning state');
480
+ $module.addClass(className.warning);
481
+ module.remove.active();
482
+ module.remove.success();
483
+ module.remove.error();
484
+ module.complete();
485
+ if(text) {
486
+ module.set.label(text);
487
+ }
488
+ settings.onWarning.call(element, module.value, module.total);
489
+ },
490
+ error : function(text) {
491
+ text = text || settings.text.error;
492
+ module.debug('Setting error state');
493
+ $module.addClass(className.error);
494
+ module.remove.active();
495
+ module.remove.success();
496
+ module.remove.warning();
497
+ module.complete();
498
+ if(text) {
499
+ module.set.label(text);
500
+ }
501
+ settings.onError.call(element, module.value, module.total);
502
+ },
503
+ total: function(totalValue) {
504
+ module.total = totalValue;
505
+ },
506
+ progress: function(value) {
507
+ var
508
+ numericValue = (typeof value === 'string')
509
+ ? (value.replace(/[^\d.]/g, '') !== '')
510
+ ? +(value.replace(/[^\d.]/g, ''))
511
+ : false
512
+ : value,
513
+ percentComplete
514
+ ;
515
+ if(numericValue === false) {
516
+ module.error(error.nonNumeric, value);
517
+ }
518
+ if(module.total) {
519
+ module.value = numericValue;
520
+ percentComplete = (numericValue / module.total) * 100;
521
+ module.debug('Calculating percent complete from total', percentComplete);
522
+ module.set.percent( percentComplete );
523
+ }
524
+ else {
525
+ percentComplete = numericValue;
526
+ module.debug('Setting value to exact percentage value', percentComplete);
527
+ module.set.percent( percentComplete );
528
+ }
529
+ }
530
+ },
531
+
532
+ setting: function(name, value) {
533
+ module.debug('Changing setting', name, value);
534
+ if( $.isPlainObject(name) ) {
535
+ $.extend(true, settings, name);
536
+ }
537
+ else if(value !== undefined) {
538
+ settings[name] = value;
539
+ }
540
+ else {
541
+ return settings[name];
542
+ }
543
+ },
544
+ internal: function(name, value) {
545
+ if( $.isPlainObject(name) ) {
546
+ $.extend(true, module, name);
547
+ }
548
+ else if(value !== undefined) {
549
+ module[name] = value;
550
+ }
551
+ else {
552
+ return module[name];
553
+ }
554
+ },
555
+ debug: function() {
556
+ if(settings.debug) {
557
+ if(settings.performance) {
558
+ module.performance.log(arguments);
559
+ }
560
+ else {
561
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
562
+ module.debug.apply(console, arguments);
563
+ }
564
+ }
565
+ },
566
+ verbose: function() {
567
+ if(settings.verbose && settings.debug) {
568
+ if(settings.performance) {
569
+ module.performance.log(arguments);
570
+ }
571
+ else {
572
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
573
+ module.verbose.apply(console, arguments);
574
+ }
575
+ }
576
+ },
577
+ error: function() {
578
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
579
+ module.error.apply(console, arguments);
580
+ },
581
+ performance: {
582
+ log: function(message) {
583
+ var
584
+ currentTime,
585
+ executionTime,
586
+ previousTime
587
+ ;
588
+ if(settings.performance) {
589
+ currentTime = new Date().getTime();
590
+ previousTime = time || currentTime;
591
+ executionTime = currentTime - previousTime;
592
+ time = currentTime;
593
+ performance.push({
594
+ 'Name' : message[0],
595
+ 'Arguments' : [].slice.call(message, 1) || '',
596
+ 'Element' : element,
597
+ 'Execution Time' : executionTime
598
+ });
599
+ }
600
+ clearTimeout(module.performance.timer);
601
+ module.performance.timer = setTimeout(module.performance.display, 100);
602
+ },
603
+ display: function() {
604
+ var
605
+ title = settings.name + ':',
606
+ totalTime = 0
607
+ ;
608
+ time = false;
609
+ clearTimeout(module.performance.timer);
610
+ $.each(performance, function(index, data) {
611
+ totalTime += data['Execution Time'];
612
+ });
613
+ title += ' ' + totalTime + 'ms';
614
+ if(moduleSelector) {
615
+ title += ' \'' + moduleSelector + '\'';
616
+ }
617
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
618
+ console.groupCollapsed(title);
619
+ if(console.table) {
620
+ console.table(performance);
621
+ }
622
+ else {
623
+ $.each(performance, function(index, data) {
624
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
625
+ });
626
+ }
627
+ console.groupEnd();
628
+ }
629
+ performance = [];
630
+ }
631
+ },
632
+ invoke: function(query, passedArguments, context) {
633
+ var
634
+ object = instance,
635
+ maxDepth,
636
+ found,
637
+ response
638
+ ;
639
+ passedArguments = passedArguments || queryArguments;
640
+ context = element || context;
641
+ if(typeof query == 'string' && object !== undefined) {
642
+ query = query.split(/[\. ]/);
643
+ maxDepth = query.length - 1;
644
+ $.each(query, function(depth, value) {
645
+ var camelCaseValue = (depth != maxDepth)
646
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
647
+ : query
648
+ ;
649
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
650
+ object = object[camelCaseValue];
651
+ }
652
+ else if( object[camelCaseValue] !== undefined ) {
653
+ found = object[camelCaseValue];
654
+ return false;
655
+ }
656
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
657
+ object = object[value];
658
+ }
659
+ else if( object[value] !== undefined ) {
660
+ found = object[value];
661
+ return false;
662
+ }
663
+ else {
664
+ module.error(error.method, query);
665
+ return false;
666
+ }
667
+ });
668
+ }
669
+ if ( $.isFunction( found ) ) {
670
+ response = found.apply(context, passedArguments);
671
+ }
672
+ else if(found !== undefined) {
673
+ response = found;
674
+ }
675
+ if($.isArray(returnedValue)) {
676
+ returnedValue.push(response);
677
+ }
678
+ else if(returnedValue !== undefined) {
679
+ returnedValue = [returnedValue, response];
680
+ }
681
+ else if(response !== undefined) {
682
+ returnedValue = response;
683
+ }
684
+ return found;
685
+ }
686
+ };
687
+
688
+ if(methodInvoked) {
689
+ if(instance === undefined) {
690
+ module.initialize();
691
+ }
692
+ module.invoke(query);
693
+ }
694
+ else {
695
+ if(instance !== undefined) {
696
+ module.destroy();
697
+ }
698
+ module.initialize();
699
+ }
700
+ })
701
+ ;
702
+
703
+ return (returnedValue !== undefined)
704
+ ? returnedValue
705
+ : this
706
+ ;
707
+ };
708
+
709
+ $.fn.progress.settings = {
710
+
711
+ name : 'Progress',
712
+ namespace : 'progress',
713
+
714
+ debug : false,
715
+ verbose : true,
716
+ performance : true,
717
+
718
+ random : {
719
+ min : 2,
720
+ max : 5
721
+ },
722
+
723
+ duration : 300,
724
+
725
+ autoSuccess : true,
726
+ showActivity : true,
727
+ limitValues : true,
728
+
729
+ label : 'percent',
730
+ precision : 1,
731
+ framerate : (1000 / 30), /// 30 fps
732
+
733
+ percent : false,
734
+ total : false,
735
+ value : false,
736
+
737
+ onChange : function(percent, value, total){},
738
+ onSuccess : function(total){},
739
+ onActive : function(value, total){},
740
+ onError : function(value, total){},
741
+ onWarning : function(value, total){},
742
+
743
+ error : {
744
+ method : 'The method you called is not defined.',
745
+ nonNumeric : 'Progress value is non numeric',
746
+ tooHigh : 'Value specified is above 100%',
747
+ tooLow : 'Value specified is below 0%'
748
+ },
749
+
750
+ regExp: {
751
+ variable: /\{\$*[A-z0-9]+\}/g
752
+ },
753
+
754
+ metadata: {
755
+ percent : 'percent',
756
+ total : 'total',
757
+ value : 'value'
758
+ },
759
+
760
+ selector : {
761
+ bar : '> .bar',
762
+ label : '> .label',
763
+ progress : '.bar > .progress'
764
+ },
765
+
766
+ text : {
767
+ active : false,
768
+ error : false,
769
+ success : false,
770
+ warning : false,
771
+ percent : '{percent}%',
772
+ ratio : '{value} of {total}'
773
+ },
774
+
775
+ className : {
776
+ active : 'active',
777
+ error : 'error',
778
+ success : 'success',
779
+ warning : 'warning'
780
+ }
781
+
782
+ };
783
+
784
+
785
+ })( jQuery, window , document );