fluentd-ui 0.3.13 → 0.3.14

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (287) hide show
  1. data/ChangeLog +9 -0
  2. data/Gemfile.lock +47 -44
  3. data/README.md +4 -4
  4. data/app/assets/javascripts/vue/in_tail_format.js +7 -2
  5. data/app/assets/stylesheets/common.css.scss +16 -0
  6. data/app/controllers/concerns/setting_history_concern.rb +6 -0
  7. data/app/controllers/fluentd/settings_controller.rb +37 -8
  8. data/app/models/fluent_gem.rb +6 -3
  9. data/app/models/fluentd/agent.rb +1 -0
  10. data/app/models/fluentd/agent/common.rb +4 -0
  11. data/app/models/fluentd/agent/fluentd_gem.rb +9 -13
  12. data/app/models/fluentd/agent/local_common.rb +23 -0
  13. data/app/models/fluentd/agent/td_agent.rb +4 -0
  14. data/app/models/fluentd/agent/td_agent/macosx.rb +0 -4
  15. data/app/models/fluentd/agent/td_agent/unix.rb +0 -4
  16. data/app/views/fluentd/settings/edit.html.haml +1 -3
  17. data/app/views/fluentd/settings/histories/show.html.haml +10 -0
  18. data/app/views/fluentd/settings/running_backup/show.html.haml +11 -0
  19. data/app/views/shared/settings/_diff.html.erb +21 -0
  20. data/circle.yml +5 -0
  21. data/config/application.rb +1 -0
  22. data/config/locales/translation_en.yml +7 -0
  23. data/config/locales/translation_ja.yml +7 -0
  24. data/fluentd-ui.gemspec +1 -0
  25. data/lib/fluentd-ui.rb +5 -1
  26. data/lib/fluentd-ui/version.rb +1 -1
  27. data/spec/features/fluentd/setting/histories_spec.rb +23 -1
  28. data/spec/features/fluentd/setting/running_backup_spec.rb +22 -1
  29. data/spec/models/fluentd/agent/local_common_spec.rb +4 -2
  30. data/spec/models/fluentd/agent_spec.rb +1 -48
  31. data/spec/models/plugin_spec.rb +2 -2
  32. data/spec/spec_helper.rb +10 -0
  33. data/spec/support/fluentd_agent_common_behavior.rb +53 -0
  34. data/vendor/assets/javascripts/bower/.gitignore +10 -0
  35. data/vendor/assets/javascripts/bower/vue/.bower.json +4 -4
  36. data/vendor/assets/javascripts/bower/vue/bower.json +17 -0
  37. data/vendor/assets/javascripts/bower/vue/dist/vue.js +329 -198
  38. data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +3 -3
  39. metadata +107 -291
  40. checksums.yaml +0 -7
  41. data/vendor/assets/javascripts/bower/codemirror/AUTHORS +0 -423
  42. data/vendor/assets/javascripts/bower/codemirror/CONTRIBUTING.md +0 -76
  43. data/vendor/assets/javascripts/bower/codemirror/LICENSE +0 -19
  44. data/vendor/assets/javascripts/bower/codemirror/README.md +0 -11
  45. data/vendor/assets/javascripts/bower/codemirror/addon/comment/comment.js +0 -183
  46. data/vendor/assets/javascripts/bower/codemirror/addon/comment/continuecomment.js +0 -85
  47. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.css +0 -32
  48. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.js +0 -155
  49. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.css +0 -6
  50. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.js +0 -41
  51. data/vendor/assets/javascripts/bower/codemirror/addon/display/panel.js +0 -94
  52. data/vendor/assets/javascripts/bower/codemirror/addon/display/placeholder.js +0 -58
  53. data/vendor/assets/javascripts/bower/codemirror/addon/display/rulers.js +0 -64
  54. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closebrackets.js +0 -159
  55. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closetag.js +0 -159
  56. data/vendor/assets/javascripts/bower/codemirror/addon/edit/continuelist.js +0 -51
  57. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchbrackets.js +0 -120
  58. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchtags.js +0 -66
  59. data/vendor/assets/javascripts/bower/codemirror/addon/edit/trailingspace.js +0 -27
  60. data/vendor/assets/javascripts/bower/codemirror/addon/fold/brace-fold.js +0 -105
  61. data/vendor/assets/javascripts/bower/codemirror/addon/fold/comment-fold.js +0 -57
  62. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldcode.js +0 -145
  63. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.css +0 -20
  64. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.js +0 -134
  65. data/vendor/assets/javascripts/bower/codemirror/addon/fold/indent-fold.js +0 -44
  66. data/vendor/assets/javascripts/bower/codemirror/addon/fold/markdown-fold.js +0 -49
  67. data/vendor/assets/javascripts/bower/codemirror/addon/fold/xml-fold.js +0 -182
  68. data/vendor/assets/javascripts/bower/codemirror/addon/hint/anyword-hint.js +0 -41
  69. data/vendor/assets/javascripts/bower/codemirror/addon/hint/css-hint.js +0 -56
  70. data/vendor/assets/javascripts/bower/codemirror/addon/hint/html-hint.js +0 -348
  71. data/vendor/assets/javascripts/bower/codemirror/addon/hint/javascript-hint.js +0 -146
  72. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.css +0 -38
  73. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.js +0 -389
  74. data/vendor/assets/javascripts/bower/codemirror/addon/hint/sql-hint.js +0 -197
  75. data/vendor/assets/javascripts/bower/codemirror/addon/hint/xml-hint.js +0 -110
  76. data/vendor/assets/javascripts/bower/codemirror/addon/lint/coffeescript-lint.js +0 -41
  77. data/vendor/assets/javascripts/bower/codemirror/addon/lint/css-lint.js +0 -35
  78. data/vendor/assets/javascripts/bower/codemirror/addon/lint/javascript-lint.js +0 -136
  79. data/vendor/assets/javascripts/bower/codemirror/addon/lint/json-lint.js +0 -31
  80. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.css +0 -73
  81. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.js +0 -204
  82. data/vendor/assets/javascripts/bower/codemirror/addon/lint/yaml-lint.js +0 -28
  83. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.css +0 -112
  84. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.js +0 -643
  85. data/vendor/assets/javascripts/bower/codemirror/addon/mode/loadmode.js +0 -64
  86. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex.js +0 -118
  87. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex_test.js +0 -33
  88. data/vendor/assets/javascripts/bower/codemirror/addon/mode/overlay.js +0 -85
  89. data/vendor/assets/javascripts/bower/codemirror/addon/mode/simple.js +0 -213
  90. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/colorize.js +0 -40
  91. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode-standalone.js +0 -157
  92. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.js +0 -72
  93. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.node.js +0 -120
  94. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/annotatescrollbar.js +0 -76
  95. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/scrollpastend.js +0 -46
  96. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.css +0 -66
  97. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.js +0 -139
  98. data/vendor/assets/javascripts/bower/codemirror/addon/search/match-highlighter.js +0 -128
  99. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.css +0 -8
  100. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.js +0 -90
  101. data/vendor/assets/javascripts/bower/codemirror/addon/search/search.js +0 -164
  102. data/vendor/assets/javascripts/bower/codemirror/addon/search/searchcursor.js +0 -189
  103. data/vendor/assets/javascripts/bower/codemirror/addon/selection/active-line.js +0 -71
  104. data/vendor/assets/javascripts/bower/codemirror/addon/selection/mark-selection.js +0 -118
  105. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.css +0 -86
  106. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.js +0 -670
  107. data/vendor/assets/javascripts/bower/codemirror/addon/tern/worker.js +0 -44
  108. data/vendor/assets/javascripts/bower/codemirror/addon/wrap/hardwrap.js +0 -139
  109. data/vendor/assets/javascripts/bower/codemirror/keymap/emacs.js +0 -411
  110. data/vendor/assets/javascripts/bower/codemirror/keymap/sublime.js +0 -540
  111. data/vendor/assets/javascripts/bower/codemirror/keymap/vim.js +0 -4901
  112. data/vendor/assets/javascripts/bower/codemirror/mode/apl/apl.js +0 -175
  113. data/vendor/assets/javascripts/bower/codemirror/mode/asterisk/asterisk.js +0 -198
  114. data/vendor/assets/javascripts/bower/codemirror/mode/clike/clike.js +0 -489
  115. data/vendor/assets/javascripts/bower/codemirror/mode/clike/scala.html +0 -767
  116. data/vendor/assets/javascripts/bower/codemirror/mode/clojure/clojure.js +0 -243
  117. data/vendor/assets/javascripts/bower/codemirror/mode/cobol/cobol.js +0 -255
  118. data/vendor/assets/javascripts/bower/codemirror/mode/coffeescript/coffeescript.js +0 -369
  119. data/vendor/assets/javascripts/bower/codemirror/mode/commonlisp/commonlisp.js +0 -122
  120. data/vendor/assets/javascripts/bower/codemirror/mode/css/css.js +0 -717
  121. data/vendor/assets/javascripts/bower/codemirror/mode/css/less.html +0 -152
  122. data/vendor/assets/javascripts/bower/codemirror/mode/css/less_test.js +0 -51
  123. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss.html +0 -157
  124. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss_test.js +0 -110
  125. data/vendor/assets/javascripts/bower/codemirror/mode/css/test.js +0 -135
  126. data/vendor/assets/javascripts/bower/codemirror/mode/cypher/cypher.js +0 -146
  127. data/vendor/assets/javascripts/bower/codemirror/mode/d/d.js +0 -218
  128. data/vendor/assets/javascripts/bower/codemirror/mode/dart/dart.js +0 -50
  129. data/vendor/assets/javascripts/bower/codemirror/mode/diff/diff.js +0 -47
  130. data/vendor/assets/javascripts/bower/codemirror/mode/django/django.js +0 -67
  131. data/vendor/assets/javascripts/bower/codemirror/mode/dockerfile/dockerfile.js +0 -76
  132. data/vendor/assets/javascripts/bower/codemirror/mode/dtd/dtd.js +0 -142
  133. data/vendor/assets/javascripts/bower/codemirror/mode/dylan/dylan.js +0 -299
  134. data/vendor/assets/javascripts/bower/codemirror/mode/ebnf/ebnf.js +0 -195
  135. data/vendor/assets/javascripts/bower/codemirror/mode/ecl/ecl.js +0 -207
  136. data/vendor/assets/javascripts/bower/codemirror/mode/eiffel/eiffel.js +0 -162
  137. data/vendor/assets/javascripts/bower/codemirror/mode/erlang/erlang.js +0 -622
  138. data/vendor/assets/javascripts/bower/codemirror/mode/fortran/fortran.js +0 -188
  139. data/vendor/assets/javascripts/bower/codemirror/mode/gas/gas.js +0 -345
  140. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/gfm.js +0 -123
  141. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/test.js +0 -213
  142. data/vendor/assets/javascripts/bower/codemirror/mode/gherkin/gherkin.js +0 -178
  143. data/vendor/assets/javascripts/bower/codemirror/mode/go/go.js +0 -184
  144. data/vendor/assets/javascripts/bower/codemirror/mode/groovy/groovy.js +0 -226
  145. data/vendor/assets/javascripts/bower/codemirror/mode/haml/haml.js +0 -159
  146. data/vendor/assets/javascripts/bower/codemirror/mode/haml/test.js +0 -97
  147. data/vendor/assets/javascripts/bower/codemirror/mode/haskell/haskell.js +0 -267
  148. data/vendor/assets/javascripts/bower/codemirror/mode/haxe/haxe.js +0 -518
  149. data/vendor/assets/javascripts/bower/codemirror/mode/htmlembedded/htmlembedded.js +0 -86
  150. data/vendor/assets/javascripts/bower/codemirror/mode/htmlmixed/htmlmixed.js +0 -121
  151. data/vendor/assets/javascripts/bower/codemirror/mode/http/http.js +0 -113
  152. data/vendor/assets/javascripts/bower/codemirror/mode/idl/idl.js +0 -290
  153. data/vendor/assets/javascripts/bower/codemirror/mode/jade/jade.js +0 -590
  154. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/javascript.js +0 -686
  155. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/json-ld.html +0 -72
  156. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/test.js +0 -200
  157. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/typescript.html +0 -61
  158. data/vendor/assets/javascripts/bower/codemirror/mode/jinja2/jinja2.js +0 -142
  159. data/vendor/assets/javascripts/bower/codemirror/mode/julia/julia.js +0 -301
  160. data/vendor/assets/javascripts/bower/codemirror/mode/kotlin/kotlin.js +0 -280
  161. data/vendor/assets/javascripts/bower/codemirror/mode/livescript/livescript.js +0 -280
  162. data/vendor/assets/javascripts/bower/codemirror/mode/lua/lua.js +0 -159
  163. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/markdown.js +0 -765
  164. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/test.js +0 -754
  165. data/vendor/assets/javascripts/bower/codemirror/mode/meta.js +0 -165
  166. data/vendor/assets/javascripts/bower/codemirror/mode/mirc/mirc.js +0 -193
  167. data/vendor/assets/javascripts/bower/codemirror/mode/mllike/mllike.js +0 -205
  168. data/vendor/assets/javascripts/bower/codemirror/mode/modelica/modelica.js +0 -245
  169. data/vendor/assets/javascripts/bower/codemirror/mode/nginx/nginx.js +0 -178
  170. data/vendor/assets/javascripts/bower/codemirror/mode/ntriples/ntriples.js +0 -186
  171. data/vendor/assets/javascripts/bower/codemirror/mode/octave/octave.js +0 -135
  172. data/vendor/assets/javascripts/bower/codemirror/mode/pascal/pascal.js +0 -109
  173. data/vendor/assets/javascripts/bower/codemirror/mode/pegjs/pegjs.js +0 -114
  174. data/vendor/assets/javascripts/bower/codemirror/mode/perl/perl.js +0 -832
  175. data/vendor/assets/javascripts/bower/codemirror/mode/php/php.js +0 -226
  176. data/vendor/assets/javascripts/bower/codemirror/mode/php/test.js +0 -154
  177. data/vendor/assets/javascripts/bower/codemirror/mode/pig/pig.js +0 -188
  178. data/vendor/assets/javascripts/bower/codemirror/mode/properties/properties.js +0 -78
  179. data/vendor/assets/javascripts/bower/codemirror/mode/puppet/puppet.js +0 -220
  180. data/vendor/assets/javascripts/bower/codemirror/mode/python/python.js +0 -359
  181. data/vendor/assets/javascripts/bower/codemirror/mode/q/q.js +0 -139
  182. data/vendor/assets/javascripts/bower/codemirror/mode/r/r.js +0 -162
  183. data/vendor/assets/javascripts/bower/codemirror/mode/rpm/rpm.js +0 -101
  184. data/vendor/assets/javascripts/bower/codemirror/mode/rst/rst.js +0 -557
  185. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/ruby.js +0 -285
  186. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/test.js +0 -14
  187. data/vendor/assets/javascripts/bower/codemirror/mode/rust/rust.js +0 -451
  188. data/vendor/assets/javascripts/bower/codemirror/mode/sass/sass.js +0 -327
  189. data/vendor/assets/javascripts/bower/codemirror/mode/scheme/scheme.js +0 -248
  190. data/vendor/assets/javascripts/bower/codemirror/mode/shell/shell.js +0 -139
  191. data/vendor/assets/javascripts/bower/codemirror/mode/shell/test.js +0 -58
  192. data/vendor/assets/javascripts/bower/codemirror/mode/sieve/sieve.js +0 -193
  193. data/vendor/assets/javascripts/bower/codemirror/mode/slim/slim.js +0 -575
  194. data/vendor/assets/javascripts/bower/codemirror/mode/slim/test.js +0 -96
  195. data/vendor/assets/javascripts/bower/codemirror/mode/smalltalk/smalltalk.js +0 -168
  196. data/vendor/assets/javascripts/bower/codemirror/mode/smarty/smarty.js +0 -221
  197. data/vendor/assets/javascripts/bower/codemirror/mode/smartymixed/smartymixed.js +0 -197
  198. data/vendor/assets/javascripts/bower/codemirror/mode/solr/solr.js +0 -104
  199. data/vendor/assets/javascripts/bower/codemirror/mode/soy/soy.js +0 -198
  200. data/vendor/assets/javascripts/bower/codemirror/mode/sparql/sparql.js +0 -174
  201. data/vendor/assets/javascripts/bower/codemirror/mode/spreadsheet/spreadsheet.js +0 -109
  202. data/vendor/assets/javascripts/bower/codemirror/mode/sql/sql.js +0 -391
  203. data/vendor/assets/javascripts/bower/codemirror/mode/stex/stex.js +0 -251
  204. data/vendor/assets/javascripts/bower/codemirror/mode/stex/test.js +0 -123
  205. data/vendor/assets/javascripts/bower/codemirror/mode/tcl/tcl.js +0 -147
  206. data/vendor/assets/javascripts/bower/codemirror/mode/textile/test.js +0 -417
  207. data/vendor/assets/javascripts/bower/codemirror/mode/textile/textile.js +0 -469
  208. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.css +0 -14
  209. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.js +0 -369
  210. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.css +0 -26
  211. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.js +0 -323
  212. data/vendor/assets/javascripts/bower/codemirror/mode/toml/toml.js +0 -88
  213. data/vendor/assets/javascripts/bower/codemirror/mode/tornado/tornado.js +0 -68
  214. data/vendor/assets/javascripts/bower/codemirror/mode/turtle/turtle.js +0 -162
  215. data/vendor/assets/javascripts/bower/codemirror/mode/vb/vb.js +0 -274
  216. data/vendor/assets/javascripts/bower/codemirror/mode/vbscript/vbscript.js +0 -350
  217. data/vendor/assets/javascripts/bower/codemirror/mode/velocity/velocity.js +0 -201
  218. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/test.js +0 -273
  219. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/verilog.js +0 -364
  220. data/vendor/assets/javascripts/bower/codemirror/mode/xml/test.js +0 -51
  221. data/vendor/assets/javascripts/bower/codemirror/mode/xml/xml.js +0 -384
  222. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/test.js +0 -67
  223. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/xquery.js +0 -447
  224. data/vendor/assets/javascripts/bower/codemirror/mode/yaml/yaml.js +0 -117
  225. data/vendor/assets/javascripts/bower/codemirror/mode/z80/z80.js +0 -100
  226. data/vendor/assets/javascripts/bower/vue/LICENSE +0 -21
  227. data/vendor/assets/javascripts/bower/vue/src/api/child.js +0 -53
  228. data/vendor/assets/javascripts/bower/vue/src/api/data.js +0 -161
  229. data/vendor/assets/javascripts/bower/vue/src/api/dom.js +0 -211
  230. data/vendor/assets/javascripts/bower/vue/src/api/events.js +0 -176
  231. data/vendor/assets/javascripts/bower/vue/src/api/global.js +0 -146
  232. data/vendor/assets/javascripts/bower/vue/src/api/lifecycle.js +0 -72
  233. data/vendor/assets/javascripts/bower/vue/src/batcher.js +0 -65
  234. data/vendor/assets/javascripts/bower/vue/src/cache.js +0 -112
  235. data/vendor/assets/javascripts/bower/vue/src/compiler/compile.js +0 -549
  236. data/vendor/assets/javascripts/bower/vue/src/compiler/transclude.js +0 -146
  237. data/vendor/assets/javascripts/bower/vue/src/config.js +0 -79
  238. data/vendor/assets/javascripts/bower/vue/src/directive.js +0 -219
  239. data/vendor/assets/javascripts/bower/vue/src/directives/attr.js +0 -32
  240. data/vendor/assets/javascripts/bower/vue/src/directives/class.js +0 -18
  241. data/vendor/assets/javascripts/bower/vue/src/directives/cloak.js +0 -12
  242. data/vendor/assets/javascripts/bower/vue/src/directives/component.js +0 -196
  243. data/vendor/assets/javascripts/bower/vue/src/directives/el.js +0 -13
  244. data/vendor/assets/javascripts/bower/vue/src/directives/html.js +0 -38
  245. data/vendor/assets/javascripts/bower/vue/src/directives/if.js +0 -87
  246. data/vendor/assets/javascripts/bower/vue/src/directives/index.js +0 -22
  247. data/vendor/assets/javascripts/bower/vue/src/directives/model/checkbox.js +0 -25
  248. data/vendor/assets/javascripts/bower/vue/src/directives/model/default.js +0 -123
  249. data/vendor/assets/javascripts/bower/vue/src/directives/model/index.js +0 -56
  250. data/vendor/assets/javascripts/bower/vue/src/directives/model/radio.js +0 -26
  251. data/vendor/assets/javascripts/bower/vue/src/directives/model/select.js +0 -166
  252. data/vendor/assets/javascripts/bower/vue/src/directives/on.js +0 -59
  253. data/vendor/assets/javascripts/bower/vue/src/directives/partial.js +0 -44
  254. data/vendor/assets/javascripts/bower/vue/src/directives/ref.js +0 -24
  255. data/vendor/assets/javascripts/bower/vue/src/directives/repeat.js +0 -503
  256. data/vendor/assets/javascripts/bower/vue/src/directives/show.js +0 -8
  257. data/vendor/assets/javascripts/bower/vue/src/directives/style.js +0 -58
  258. data/vendor/assets/javascripts/bower/vue/src/directives/text.js +0 -15
  259. data/vendor/assets/javascripts/bower/vue/src/directives/transition.js +0 -12
  260. data/vendor/assets/javascripts/bower/vue/src/directives/with.js +0 -47
  261. data/vendor/assets/javascripts/bower/vue/src/filters/array-filters.js +0 -87
  262. data/vendor/assets/javascripts/bower/vue/src/filters/index.js +0 -135
  263. data/vendor/assets/javascripts/bower/vue/src/instance/compile.js +0 -179
  264. data/vendor/assets/javascripts/bower/vue/src/instance/events.js +0 -122
  265. data/vendor/assets/javascripts/bower/vue/src/instance/init.js +0 -76
  266. data/vendor/assets/javascripts/bower/vue/src/instance/scope.js +0 -217
  267. data/vendor/assets/javascripts/bower/vue/src/observer/array.js +0 -90
  268. data/vendor/assets/javascripts/bower/vue/src/observer/dep.js +0 -50
  269. data/vendor/assets/javascripts/bower/vue/src/observer/index.js +0 -235
  270. data/vendor/assets/javascripts/bower/vue/src/observer/object.js +0 -66
  271. data/vendor/assets/javascripts/bower/vue/src/parsers/directive.js +0 -159
  272. data/vendor/assets/javascripts/bower/vue/src/parsers/expression.js +0 -226
  273. data/vendor/assets/javascripts/bower/vue/src/parsers/path.js +0 -300
  274. data/vendor/assets/javascripts/bower/vue/src/parsers/template.js +0 -248
  275. data/vendor/assets/javascripts/bower/vue/src/parsers/text.js +0 -178
  276. data/vendor/assets/javascripts/bower/vue/src/transition/css.js +0 -189
  277. data/vendor/assets/javascripts/bower/vue/src/transition/index.js +0 -151
  278. data/vendor/assets/javascripts/bower/vue/src/transition/js.js +0 -43
  279. data/vendor/assets/javascripts/bower/vue/src/util/debug.js +0 -50
  280. data/vendor/assets/javascripts/bower/vue/src/util/dom.js +0 -197
  281. data/vendor/assets/javascripts/bower/vue/src/util/env.js +0 -74
  282. data/vendor/assets/javascripts/bower/vue/src/util/filter.js +0 -72
  283. data/vendor/assets/javascripts/bower/vue/src/util/index.js +0 -8
  284. data/vendor/assets/javascripts/bower/vue/src/util/lang.js +0 -175
  285. data/vendor/assets/javascripts/bower/vue/src/util/merge-option.js +0 -255
  286. data/vendor/assets/javascripts/bower/vue/src/vue.js +0 -84
  287. data/vendor/assets/javascripts/bower/vue/src/watcher.js +0 -240
@@ -1,139 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- (function(mod) {
5
- if (typeof exports == "object" && typeof module == "object") // CommonJS
6
- mod(require("../../lib/codemirror"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- "use strict";
13
-
14
- CodeMirror.defineMode('shell', function() {
15
-
16
- var words = {};
17
- function define(style, string) {
18
- var split = string.split(' ');
19
- for(var i = 0; i < split.length; i++) {
20
- words[split[i]] = style;
21
- }
22
- };
23
-
24
- // Atoms
25
- define('atom', 'true false');
26
-
27
- // Keywords
28
- define('keyword', 'if then do else elif while until for in esac fi fin ' +
29
- 'fil done exit set unset export function');
30
-
31
- // Commands
32
- define('builtin', 'ab awk bash beep cat cc cd chown chmod chroot clear cp ' +
33
- 'curl cut diff echo find gawk gcc get git grep kill killall ln ls make ' +
34
- 'mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh ' +
35
- 'shopt shred source sort sleep ssh start stop su sudo tee telnet top ' +
36
- 'touch vi vim wall wc wget who write yes zsh');
37
-
38
- function tokenBase(stream, state) {
39
- if (stream.eatSpace()) return null;
40
-
41
- var sol = stream.sol();
42
- var ch = stream.next();
43
-
44
- if (ch === '\\') {
45
- stream.next();
46
- return null;
47
- }
48
- if (ch === '\'' || ch === '"' || ch === '`') {
49
- state.tokens.unshift(tokenString(ch));
50
- return tokenize(stream, state);
51
- }
52
- if (ch === '#') {
53
- if (sol && stream.eat('!')) {
54
- stream.skipToEnd();
55
- return 'meta'; // 'comment'?
56
- }
57
- stream.skipToEnd();
58
- return 'comment';
59
- }
60
- if (ch === '$') {
61
- state.tokens.unshift(tokenDollar);
62
- return tokenize(stream, state);
63
- }
64
- if (ch === '+' || ch === '=') {
65
- return 'operator';
66
- }
67
- if (ch === '-') {
68
- stream.eat('-');
69
- stream.eatWhile(/\w/);
70
- return 'attribute';
71
- }
72
- if (/\d/.test(ch)) {
73
- stream.eatWhile(/\d/);
74
- if(stream.eol() || !/\w/.test(stream.peek())) {
75
- return 'number';
76
- }
77
- }
78
- stream.eatWhile(/[\w-]/);
79
- var cur = stream.current();
80
- if (stream.peek() === '=' && /\w+/.test(cur)) return 'def';
81
- return words.hasOwnProperty(cur) ? words[cur] : null;
82
- }
83
-
84
- function tokenString(quote) {
85
- return function(stream, state) {
86
- var next, end = false, escaped = false;
87
- while ((next = stream.next()) != null) {
88
- if (next === quote && !escaped) {
89
- end = true;
90
- break;
91
- }
92
- if (next === '$' && !escaped && quote !== '\'') {
93
- escaped = true;
94
- stream.backUp(1);
95
- state.tokens.unshift(tokenDollar);
96
- break;
97
- }
98
- escaped = !escaped && next === '\\';
99
- }
100
- if (end || !escaped) {
101
- state.tokens.shift();
102
- }
103
- return (quote === '`' || quote === ')' ? 'quote' : 'string');
104
- };
105
- };
106
-
107
- var tokenDollar = function(stream, state) {
108
- if (state.tokens.length > 1) stream.eat('$');
109
- var ch = stream.next(), hungry = /\w/;
110
- if (ch === '{') hungry = /[^}]/;
111
- if (ch === '(') {
112
- state.tokens[0] = tokenString(')');
113
- return tokenize(stream, state);
114
- }
115
- if (!/\d/.test(ch)) {
116
- stream.eatWhile(hungry);
117
- stream.eat('}');
118
- }
119
- state.tokens.shift();
120
- return 'def';
121
- };
122
-
123
- function tokenize(stream, state) {
124
- return (state.tokens[0] || tokenBase) (stream, state);
125
- };
126
-
127
- return {
128
- startState: function() {return {tokens:[]};},
129
- token: function(stream, state) {
130
- return tokenize(stream, state);
131
- },
132
- lineComment: '#',
133
- fold: "brace"
134
- };
135
- });
136
-
137
- CodeMirror.defineMIME('text/x-sh', 'shell');
138
-
139
- });
@@ -1,58 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- (function() {
5
- var mode = CodeMirror.getMode({}, "shell");
6
- function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
7
-
8
- MT("var",
9
- "text [def $var] text");
10
- MT("varBraces",
11
- "text[def ${var}]text");
12
- MT("varVar",
13
- "text [def $a$b] text");
14
- MT("varBracesVarBraces",
15
- "text[def ${a}${b}]text");
16
-
17
- MT("singleQuotedVar",
18
- "[string 'text $var text']");
19
- MT("singleQuotedVarBraces",
20
- "[string 'text ${var} text']");
21
-
22
- MT("doubleQuotedVar",
23
- '[string "text ][def $var][string text"]');
24
- MT("doubleQuotedVarBraces",
25
- '[string "text][def ${var}][string text"]');
26
- MT("doubleQuotedVarPunct",
27
- '[string "text ][def $@][string text"]');
28
- MT("doubleQuotedVarVar",
29
- '[string "][def $a$b][string "]');
30
- MT("doubleQuotedVarBracesVarBraces",
31
- '[string "][def ${a}${b}][string "]');
32
-
33
- MT("notAString",
34
- "text\\'text");
35
- MT("escapes",
36
- "outside\\'\\\"\\`\\\\[string \"inside\\`\\'\\\"\\\\`\\$notAVar\"]outside\\$\\(notASubShell\\)");
37
-
38
- MT("subshell",
39
- "[builtin echo] [quote $(whoami)] s log, stardate [quote `date`].");
40
- MT("doubleQuotedSubshell",
41
- "[builtin echo] [string \"][quote $(whoami)][string 's log, stardate `date`.\"]");
42
-
43
- MT("hashbang",
44
- "[meta #!/bin/bash]");
45
- MT("comment",
46
- "text [comment # Blurb]");
47
-
48
- MT("numbers",
49
- "[number 0] [number 1] [number 2]");
50
- MT("keywords",
51
- "[keyword while] [atom true]; [keyword do]",
52
- " [builtin sleep] [number 3]",
53
- "[keyword done]");
54
- MT("options",
55
- "[builtin ls] [attribute -l] [attribute --human-readable]");
56
- MT("operator",
57
- "[def var][operator =]value");
58
- })();
@@ -1,193 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- (function(mod) {
5
- if (typeof exports == "object" && typeof module == "object") // CommonJS
6
- mod(require("../../lib/codemirror"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- "use strict";
13
-
14
- CodeMirror.defineMode("sieve", function(config) {
15
- function words(str) {
16
- var obj = {}, words = str.split(" ");
17
- for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
18
- return obj;
19
- }
20
-
21
- var keywords = words("if elsif else stop require");
22
- var atoms = words("true false not");
23
- var indentUnit = config.indentUnit;
24
-
25
- function tokenBase(stream, state) {
26
-
27
- var ch = stream.next();
28
- if (ch == "/" && stream.eat("*")) {
29
- state.tokenize = tokenCComment;
30
- return tokenCComment(stream, state);
31
- }
32
-
33
- if (ch === '#') {
34
- stream.skipToEnd();
35
- return "comment";
36
- }
37
-
38
- if (ch == "\"") {
39
- state.tokenize = tokenString(ch);
40
- return state.tokenize(stream, state);
41
- }
42
-
43
- if (ch == "(") {
44
- state._indent.push("(");
45
- // add virtual angel wings so that editor behaves...
46
- // ...more sane incase of broken brackets
47
- state._indent.push("{");
48
- return null;
49
- }
50
-
51
- if (ch === "{") {
52
- state._indent.push("{");
53
- return null;
54
- }
55
-
56
- if (ch == ")") {
57
- state._indent.pop();
58
- state._indent.pop();
59
- }
60
-
61
- if (ch === "}") {
62
- state._indent.pop();
63
- return null;
64
- }
65
-
66
- if (ch == ",")
67
- return null;
68
-
69
- if (ch == ";")
70
- return null;
71
-
72
-
73
- if (/[{}\(\),;]/.test(ch))
74
- return null;
75
-
76
- // 1*DIGIT "K" / "M" / "G"
77
- if (/\d/.test(ch)) {
78
- stream.eatWhile(/[\d]/);
79
- stream.eat(/[KkMmGg]/);
80
- return "number";
81
- }
82
-
83
- // ":" (ALPHA / "_") *(ALPHA / DIGIT / "_")
84
- if (ch == ":") {
85
- stream.eatWhile(/[a-zA-Z_]/);
86
- stream.eatWhile(/[a-zA-Z0-9_]/);
87
-
88
- return "operator";
89
- }
90
-
91
- stream.eatWhile(/\w/);
92
- var cur = stream.current();
93
-
94
- // "text:" *(SP / HTAB) (hash-comment / CRLF)
95
- // *(multiline-literal / multiline-dotstart)
96
- // "." CRLF
97
- if ((cur == "text") && stream.eat(":"))
98
- {
99
- state.tokenize = tokenMultiLineString;
100
- return "string";
101
- }
102
-
103
- if (keywords.propertyIsEnumerable(cur))
104
- return "keyword";
105
-
106
- if (atoms.propertyIsEnumerable(cur))
107
- return "atom";
108
-
109
- return null;
110
- }
111
-
112
- function tokenMultiLineString(stream, state)
113
- {
114
- state._multiLineString = true;
115
- // the first line is special it may contain a comment
116
- if (!stream.sol()) {
117
- stream.eatSpace();
118
-
119
- if (stream.peek() == "#") {
120
- stream.skipToEnd();
121
- return "comment";
122
- }
123
-
124
- stream.skipToEnd();
125
- return "string";
126
- }
127
-
128
- if ((stream.next() == ".") && (stream.eol()))
129
- {
130
- state._multiLineString = false;
131
- state.tokenize = tokenBase;
132
- }
133
-
134
- return "string";
135
- }
136
-
137
- function tokenCComment(stream, state) {
138
- var maybeEnd = false, ch;
139
- while ((ch = stream.next()) != null) {
140
- if (maybeEnd && ch == "/") {
141
- state.tokenize = tokenBase;
142
- break;
143
- }
144
- maybeEnd = (ch == "*");
145
- }
146
- return "comment";
147
- }
148
-
149
- function tokenString(quote) {
150
- return function(stream, state) {
151
- var escaped = false, ch;
152
- while ((ch = stream.next()) != null) {
153
- if (ch == quote && !escaped)
154
- break;
155
- escaped = !escaped && ch == "\\";
156
- }
157
- if (!escaped) state.tokenize = tokenBase;
158
- return "string";
159
- };
160
- }
161
-
162
- return {
163
- startState: function(base) {
164
- return {tokenize: tokenBase,
165
- baseIndent: base || 0,
166
- _indent: []};
167
- },
168
-
169
- token: function(stream, state) {
170
- if (stream.eatSpace())
171
- return null;
172
-
173
- return (state.tokenize || tokenBase)(stream, state);;
174
- },
175
-
176
- indent: function(state, _textAfter) {
177
- var length = state._indent.length;
178
- if (_textAfter && (_textAfter[0] == "}"))
179
- length--;
180
-
181
- if (length <0)
182
- length = 0;
183
-
184
- return length * indentUnit;
185
- },
186
-
187
- electricChars: "}"
188
- };
189
- });
190
-
191
- CodeMirror.defineMIME("application/sieve", "sieve");
192
-
193
- });
@@ -1,575 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- // Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh
5
-
6
- (function(mod) {
7
- if (typeof exports == "object" && typeof module == "object") // CommonJS
8
- mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../ruby/ruby"));
9
- else if (typeof define == "function" && define.amd) // AMD
10
- define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../ruby/ruby"], mod);
11
- else // Plain browser env
12
- mod(CodeMirror);
13
- })(function(CodeMirror) {
14
- "use strict";
15
-
16
- CodeMirror.defineMode("slim", function(config) {
17
- var htmlMode = CodeMirror.getMode(config, {name: "htmlmixed"});
18
- var rubyMode = CodeMirror.getMode(config, "ruby");
19
- var modes = { html: htmlMode, ruby: rubyMode };
20
- var embedded = {
21
- ruby: "ruby",
22
- javascript: "javascript",
23
- css: "text/css",
24
- sass: "text/x-sass",
25
- scss: "text/x-scss",
26
- less: "text/x-less",
27
- styl: "text/x-styl", // no highlighting so far
28
- coffee: "coffeescript",
29
- asciidoc: "text/x-asciidoc",
30
- markdown: "text/x-markdown",
31
- textile: "text/x-textile", // no highlighting so far
32
- creole: "text/x-creole", // no highlighting so far
33
- wiki: "text/x-wiki", // no highlighting so far
34
- mediawiki: "text/x-mediawiki", // no highlighting so far
35
- rdoc: "text/x-rdoc", // no highlighting so far
36
- builder: "text/x-builder", // no highlighting so far
37
- nokogiri: "text/x-nokogiri", // no highlighting so far
38
- erb: "application/x-erb"
39
- };
40
- var embeddedRegexp = function(map){
41
- var arr = [];
42
- for(var key in map) arr.push(key);
43
- return new RegExp("^("+arr.join('|')+"):");
44
- }(embedded);
45
-
46
- var styleMap = {
47
- "commentLine": "comment",
48
- "slimSwitch": "operator special",
49
- "slimTag": "tag",
50
- "slimId": "attribute def",
51
- "slimClass": "attribute qualifier",
52
- "slimAttribute": "attribute",
53
- "slimSubmode": "keyword special",
54
- "closeAttributeTag": null,
55
- "slimDoctype": null,
56
- "lineContinuation": null
57
- };
58
- var closing = {
59
- "{": "}",
60
- "[": "]",
61
- "(": ")"
62
- };
63
-
64
- var nameStartChar = "_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD";
65
- var nameChar = nameStartChar + "\\-0-9\xB7\u0300-\u036F\u203F-\u2040";
66
- var nameRegexp = new RegExp("^[:"+nameStartChar+"](?::["+nameChar+"]|["+nameChar+"]*)");
67
- var attributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*(?=\\s*=)");
68
- var wrappedAttributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*");
69
- var classNameRegexp = /^\.-?[_a-zA-Z]+[\w\-]*/;
70
- var classIdRegexp = /^#[_a-zA-Z]+[\w\-]*/;
71
-
72
- function backup(pos, tokenize, style) {
73
- var restore = function(stream, state) {
74
- state.tokenize = tokenize;
75
- if (stream.pos < pos) {
76
- stream.pos = pos;
77
- return style;
78
- }
79
- return state.tokenize(stream, state);
80
- };
81
- return function(stream, state) {
82
- state.tokenize = restore;
83
- return tokenize(stream, state);
84
- };
85
- }
86
-
87
- function maybeBackup(stream, state, pat, offset, style) {
88
- var cur = stream.current();
89
- var idx = cur.search(pat);
90
- if (idx > -1) {
91
- state.tokenize = backup(stream.pos, state.tokenize, style);
92
- stream.backUp(cur.length - idx - offset);
93
- }
94
- return style;
95
- }
96
-
97
- function continueLine(state, column) {
98
- state.stack = {
99
- parent: state.stack,
100
- style: "continuation",
101
- indented: column,
102
- tokenize: state.line
103
- };
104
- state.line = state.tokenize;
105
- }
106
- function finishContinue(state) {
107
- if (state.line == state.tokenize) {
108
- state.line = state.stack.tokenize;
109
- state.stack = state.stack.parent;
110
- }
111
- }
112
-
113
- function lineContinuable(column, tokenize) {
114
- return function(stream, state) {
115
- finishContinue(state);
116
- if (stream.match(/^\\$/)) {
117
- continueLine(state, column);
118
- return "lineContinuation";
119
- }
120
- var style = tokenize(stream, state);
121
- if (stream.eol() && stream.current().match(/(?:^|[^\\])(?:\\\\)*\\$/)) {
122
- stream.backUp(1);
123
- }
124
- return style;
125
- };
126
- }
127
- function commaContinuable(column, tokenize) {
128
- return function(stream, state) {
129
- finishContinue(state);
130
- var style = tokenize(stream, state);
131
- if (stream.eol() && stream.current().match(/,$/)) {
132
- continueLine(state, column);
133
- }
134
- return style;
135
- };
136
- }
137
-
138
- function rubyInQuote(endQuote, tokenize) {
139
- // TODO: add multi line support
140
- return function(stream, state) {
141
- var ch = stream.peek();
142
- if (ch == endQuote && state.rubyState.tokenize.length == 1) {
143
- // step out of ruby context as it seems to complete processing all the braces
144
- stream.next();
145
- state.tokenize = tokenize;
146
- return "closeAttributeTag";
147
- } else {
148
- return ruby(stream, state);
149
- }
150
- };
151
- }
152
- function startRubySplat(tokenize) {
153
- var rubyState;
154
- var runSplat = function(stream, state) {
155
- if (state.rubyState.tokenize.length == 1 && !state.rubyState.context.prev) {
156
- stream.backUp(1);
157
- if (stream.eatSpace()) {
158
- state.rubyState = rubyState;
159
- state.tokenize = tokenize;
160
- return tokenize(stream, state);
161
- }
162
- stream.next();
163
- }
164
- return ruby(stream, state);
165
- };
166
- return function(stream, state) {
167
- rubyState = state.rubyState;
168
- state.rubyState = rubyMode.startState();
169
- state.tokenize = runSplat;
170
- return ruby(stream, state);
171
- };
172
- }
173
-
174
- function ruby(stream, state) {
175
- return rubyMode.token(stream, state.rubyState);
176
- }
177
-
178
- function htmlLine(stream, state) {
179
- if (stream.match(/^\\$/)) {
180
- return "lineContinuation";
181
- }
182
- return html(stream, state);
183
- }
184
- function html(stream, state) {
185
- if (stream.match(/^#\{/)) {
186
- state.tokenize = rubyInQuote("}", state.tokenize);
187
- return null;
188
- }
189
- return maybeBackup(stream, state, /[^\\]#\{/, 1, htmlMode.token(stream, state.htmlState));
190
- }
191
-
192
- function startHtmlLine(lastTokenize) {
193
- return function(stream, state) {
194
- var style = htmlLine(stream, state);
195
- if (stream.eol()) state.tokenize = lastTokenize;
196
- return style;
197
- };
198
- }
199
-
200
- function startHtmlMode(stream, state, offset) {
201
- state.stack = {
202
- parent: state.stack,
203
- style: "html",
204
- indented: stream.column() + offset, // pipe + space
205
- tokenize: state.line
206
- };
207
- state.line = state.tokenize = html;
208
- return null;
209
- }
210
-
211
- function comment(stream, state) {
212
- stream.skipToEnd();
213
- return state.stack.style;
214
- }
215
-
216
- function commentMode(stream, state) {
217
- state.stack = {
218
- parent: state.stack,
219
- style: "comment",
220
- indented: state.indented + 1,
221
- tokenize: state.line
222
- };
223
- state.line = comment;
224
- return comment(stream, state);
225
- }
226
-
227
- function attributeWrapper(stream, state) {
228
- if (stream.eat(state.stack.endQuote)) {
229
- state.line = state.stack.line;
230
- state.tokenize = state.stack.tokenize;
231
- state.stack = state.stack.parent;
232
- return null;
233
- }
234
- if (stream.match(wrappedAttributeNameRegexp)) {
235
- state.tokenize = attributeWrapperAssign;
236
- return "slimAttribute";
237
- }
238
- stream.next();
239
- return null;
240
- }
241
- function attributeWrapperAssign(stream, state) {
242
- if (stream.match(/^==?/)) {
243
- state.tokenize = attributeWrapperValue;
244
- return null;
245
- }
246
- return attributeWrapper(stream, state);
247
- }
248
- function attributeWrapperValue(stream, state) {
249
- var ch = stream.peek();
250
- if (ch == '"' || ch == "\'") {
251
- state.tokenize = readQuoted(ch, "string", true, false, attributeWrapper);
252
- stream.next();
253
- return state.tokenize(stream, state);
254
- }
255
- if (ch == '[') {
256
- return startRubySplat(attributeWrapper)(stream, state);
257
- }
258
- if (stream.match(/^(true|false|nil)\b/)) {
259
- state.tokenize = attributeWrapper;
260
- return "keyword";
261
- }
262
- return startRubySplat(attributeWrapper)(stream, state);
263
- }
264
-
265
- function startAttributeWrapperMode(state, endQuote, tokenize) {
266
- state.stack = {
267
- parent: state.stack,
268
- style: "wrapper",
269
- indented: state.indented + 1,
270
- tokenize: tokenize,
271
- line: state.line,
272
- endQuote: endQuote
273
- };
274
- state.line = state.tokenize = attributeWrapper;
275
- return null;
276
- }
277
-
278
- function sub(stream, state) {
279
- if (stream.match(/^#\{/)) {
280
- state.tokenize = rubyInQuote("}", state.tokenize);
281
- return null;
282
- }
283
- var subStream = new CodeMirror.StringStream(stream.string.slice(state.stack.indented), stream.tabSize);
284
- subStream.pos = stream.pos - state.stack.indented;
285
- subStream.start = stream.start - state.stack.indented;
286
- subStream.lastColumnPos = stream.lastColumnPos - state.stack.indented;
287
- subStream.lastColumnValue = stream.lastColumnValue - state.stack.indented;
288
- var style = state.subMode.token(subStream, state.subState);
289
- stream.pos = subStream.pos + state.stack.indented;
290
- return style;
291
- }
292
- function firstSub(stream, state) {
293
- state.stack.indented = stream.column();
294
- state.line = state.tokenize = sub;
295
- return state.tokenize(stream, state);
296
- }
297
-
298
- function createMode(mode) {
299
- var query = embedded[mode];
300
- var spec = CodeMirror.mimeModes[query];
301
- if (spec) {
302
- return CodeMirror.getMode(config, spec);
303
- }
304
- var factory = CodeMirror.modes[query];
305
- if (factory) {
306
- return factory(config, {name: query});
307
- }
308
- return CodeMirror.getMode(config, "null");
309
- }
310
-
311
- function getMode(mode) {
312
- if (!modes.hasOwnProperty(mode)) {
313
- return modes[mode] = createMode(mode);
314
- }
315
- return modes[mode];
316
- }
317
-
318
- function startSubMode(mode, state) {
319
- var subMode = getMode(mode);
320
- var subState = subMode.startState && subMode.startState();
321
-
322
- state.subMode = subMode;
323
- state.subState = subState;
324
-
325
- state.stack = {
326
- parent: state.stack,
327
- style: "sub",
328
- indented: state.indented + 1,
329
- tokenize: state.line
330
- };
331
- state.line = state.tokenize = firstSub;
332
- return "slimSubmode";
333
- }
334
-
335
- function doctypeLine(stream, _state) {
336
- stream.skipToEnd();
337
- return "slimDoctype";
338
- }
339
-
340
- function startLine(stream, state) {
341
- var ch = stream.peek();
342
- if (ch == '<') {
343
- return (state.tokenize = startHtmlLine(state.tokenize))(stream, state);
344
- }
345
- if (stream.match(/^[|']/)) {
346
- return startHtmlMode(stream, state, 1);
347
- }
348
- if (stream.match(/^\/(!|\[\w+])?/)) {
349
- return commentMode(stream, state);
350
- }
351
- if (stream.match(/^(-|==?[<>]?)/)) {
352
- state.tokenize = lineContinuable(stream.column(), commaContinuable(stream.column(), ruby));
353
- return "slimSwitch";
354
- }
355
- if (stream.match(/^doctype\b/)) {
356
- state.tokenize = doctypeLine;
357
- return "keyword";
358
- }
359
-
360
- var m = stream.match(embeddedRegexp);
361
- if (m) {
362
- return startSubMode(m[1], state);
363
- }
364
-
365
- return slimTag(stream, state);
366
- }
367
-
368
- function slim(stream, state) {
369
- if (state.startOfLine) {
370
- return startLine(stream, state);
371
- }
372
- return slimTag(stream, state);
373
- }
374
-
375
- function slimTag(stream, state) {
376
- if (stream.eat('*')) {
377
- state.tokenize = startRubySplat(slimTagExtras);
378
- return null;
379
- }
380
- if (stream.match(nameRegexp)) {
381
- state.tokenize = slimTagExtras;
382
- return "slimTag";
383
- }
384
- return slimClass(stream, state);
385
- }
386
- function slimTagExtras(stream, state) {
387
- if (stream.match(/^(<>?|><?)/)) {
388
- state.tokenize = slimClass;
389
- return null;
390
- }
391
- return slimClass(stream, state);
392
- }
393
- function slimClass(stream, state) {
394
- if (stream.match(classIdRegexp)) {
395
- state.tokenize = slimClass;
396
- return "slimId";
397
- }
398
- if (stream.match(classNameRegexp)) {
399
- state.tokenize = slimClass;
400
- return "slimClass";
401
- }
402
- return slimAttribute(stream, state);
403
- }
404
- function slimAttribute(stream, state) {
405
- if (stream.match(/^([\[\{\(])/)) {
406
- return startAttributeWrapperMode(state, closing[RegExp.$1], slimAttribute);
407
- }
408
- if (stream.match(attributeNameRegexp)) {
409
- state.tokenize = slimAttributeAssign;
410
- return "slimAttribute";
411
- }
412
- if (stream.peek() == '*') {
413
- stream.next();
414
- state.tokenize = startRubySplat(slimContent);
415
- return null;
416
- }
417
- return slimContent(stream, state);
418
- }
419
- function slimAttributeAssign(stream, state) {
420
- if (stream.match(/^==?/)) {
421
- state.tokenize = slimAttributeValue;
422
- return null;
423
- }
424
- // should never happen, because of forward lookup
425
- return slimAttribute(stream, state);
426
- }
427
-
428
- function slimAttributeValue(stream, state) {
429
- var ch = stream.peek();
430
- if (ch == '"' || ch == "\'") {
431
- state.tokenize = readQuoted(ch, "string", true, false, slimAttribute);
432
- stream.next();
433
- return state.tokenize(stream, state);
434
- }
435
- if (ch == '[') {
436
- return startRubySplat(slimAttribute)(stream, state);
437
- }
438
- if (ch == ':') {
439
- return startRubySplat(slimAttributeSymbols)(stream, state);
440
- }
441
- if (stream.match(/^(true|false|nil)\b/)) {
442
- state.tokenize = slimAttribute;
443
- return "keyword";
444
- }
445
- return startRubySplat(slimAttribute)(stream, state);
446
- }
447
- function slimAttributeSymbols(stream, state) {
448
- stream.backUp(1);
449
- if (stream.match(/^[^\s],(?=:)/)) {
450
- state.tokenize = startRubySplat(slimAttributeSymbols);
451
- return null;
452
- }
453
- stream.next();
454
- return slimAttribute(stream, state);
455
- }
456
- function readQuoted(quote, style, embed, unescaped, nextTokenize) {
457
- return function(stream, state) {
458
- finishContinue(state);
459
- var fresh = stream.current().length == 0;
460
- if (stream.match(/^\\$/, fresh)) {
461
- if (!fresh) return style;
462
- continueLine(state, state.indented);
463
- return "lineContinuation";
464
- }
465
- if (stream.match(/^#\{/, fresh)) {
466
- if (!fresh) return style;
467
- state.tokenize = rubyInQuote("}", state.tokenize);
468
- return null;
469
- }
470
- var escaped = false, ch;
471
- while ((ch = stream.next()) != null) {
472
- if (ch == quote && (unescaped || !escaped)) {
473
- state.tokenize = nextTokenize;
474
- break;
475
- }
476
- if (embed && ch == "#" && !escaped) {
477
- if (stream.eat("{")) {
478
- stream.backUp(2);
479
- break;
480
- }
481
- }
482
- escaped = !escaped && ch == "\\";
483
- }
484
- if (stream.eol() && escaped) {
485
- stream.backUp(1);
486
- }
487
- return style;
488
- };
489
- }
490
- function slimContent(stream, state) {
491
- if (stream.match(/^==?/)) {
492
- state.tokenize = ruby;
493
- return "slimSwitch";
494
- }
495
- if (stream.match(/^\/$/)) { // tag close hint
496
- state.tokenize = slim;
497
- return null;
498
- }
499
- if (stream.match(/^:/)) { // inline tag
500
- state.tokenize = slimTag;
501
- return "slimSwitch";
502
- }
503
- startHtmlMode(stream, state, 0);
504
- return state.tokenize(stream, state);
505
- }
506
-
507
- var mode = {
508
- // default to html mode
509
- startState: function() {
510
- var htmlState = htmlMode.startState();
511
- var rubyState = rubyMode.startState();
512
- return {
513
- htmlState: htmlState,
514
- rubyState: rubyState,
515
- stack: null,
516
- last: null,
517
- tokenize: slim,
518
- line: slim,
519
- indented: 0
520
- };
521
- },
522
-
523
- copyState: function(state) {
524
- return {
525
- htmlState : CodeMirror.copyState(htmlMode, state.htmlState),
526
- rubyState: CodeMirror.copyState(rubyMode, state.rubyState),
527
- subMode: state.subMode,
528
- subState: state.subMode && CodeMirror.copyState(state.subMode, state.subState),
529
- stack: state.stack,
530
- last: state.last,
531
- tokenize: state.tokenize,
532
- line: state.line
533
- };
534
- },
535
-
536
- token: function(stream, state) {
537
- if (stream.sol()) {
538
- state.indented = stream.indentation();
539
- state.startOfLine = true;
540
- state.tokenize = state.line;
541
- while (state.stack && state.stack.indented > state.indented && state.last != "slimSubmode") {
542
- state.line = state.tokenize = state.stack.tokenize;
543
- state.stack = state.stack.parent;
544
- state.subMode = null;
545
- state.subState = null;
546
- }
547
- }
548
- if (stream.eatSpace()) return null;
549
- var style = state.tokenize(stream, state);
550
- state.startOfLine = false;
551
- if (style) state.last = style;
552
- return styleMap.hasOwnProperty(style) ? styleMap[style] : style;
553
- },
554
-
555
- blankLine: function(state) {
556
- if (state.subMode && state.subMode.blankLine) {
557
- return state.subMode.blankLine(state.subState);
558
- }
559
- },
560
-
561
- innerMode: function(state) {
562
- if (state.subMode) return {state: state.subState, mode: state.subMode};
563
- return {state: state, mode: mode};
564
- }
565
-
566
- //indent: function(state) {
567
- // return state.indented;
568
- //}
569
- };
570
- return mode;
571
- }, "htmlmixed", "ruby");
572
-
573
- CodeMirror.defineMIME("text/x-slim", "slim");
574
- CodeMirror.defineMIME("application/x-slim", "slim");
575
- });