codemirror-rails 2.32 → 2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. data/codemirror-rails.gemspec +1 -1
  2. data/lib/codemirror/rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/codemirror.js +355 -349
  4. data/vendor/assets/javascripts/codemirror/keymaps/vim.js +6 -5
  5. data/vendor/assets/javascripts/codemirror/modes/clike.js +6 -2
  6. data/vendor/assets/javascripts/codemirror/modes/clojure.js +1 -1
  7. data/vendor/assets/javascripts/codemirror/modes/coffeescript.js +3 -3
  8. data/vendor/assets/javascripts/codemirror/modes/css.js +52 -2
  9. data/vendor/assets/javascripts/codemirror/modes/ecl.js +1 -1
  10. data/vendor/assets/javascripts/codemirror/modes/gfm.js +4 -3
  11. data/vendor/assets/javascripts/codemirror/modes/go.js +2 -2
  12. data/vendor/assets/javascripts/codemirror/modes/groovy.js +1 -1
  13. data/vendor/assets/javascripts/codemirror/modes/haskell.js +2 -2
  14. data/vendor/assets/javascripts/codemirror/modes/haxe.js +4 -4
  15. data/vendor/assets/javascripts/codemirror/modes/htmlembedded.js +3 -3
  16. data/vendor/assets/javascripts/codemirror/modes/htmlmixed.js +1 -1
  17. data/vendor/assets/javascripts/codemirror/modes/javascript.js +2 -2
  18. data/vendor/assets/javascripts/codemirror/modes/less.js +94 -60
  19. data/vendor/assets/javascripts/codemirror/modes/markdown.js +4 -4
  20. data/vendor/assets/javascripts/codemirror/modes/ntriples.js +4 -4
  21. data/vendor/assets/javascripts/codemirror/modes/ocaml.js +1 -1
  22. data/vendor/assets/javascripts/codemirror/modes/pascal.js +1 -1
  23. data/vendor/assets/javascripts/codemirror/modes/perl.js +71 -71
  24. data/vendor/assets/javascripts/codemirror/modes/php.js +3 -3
  25. data/vendor/assets/javascripts/codemirror/modes/pig.js +3 -3
  26. data/vendor/assets/javascripts/codemirror/modes/python.js +1 -1
  27. data/vendor/assets/javascripts/codemirror/modes/scheme.js +1 -1
  28. data/vendor/assets/javascripts/codemirror/modes/shell.js +1 -1
  29. data/vendor/assets/javascripts/codemirror/modes/sieve.js +156 -0
  30. data/vendor/assets/javascripts/codemirror/modes/smalltalk.js +2 -2
  31. data/vendor/assets/javascripts/codemirror/modes/smarty.js +2 -2
  32. data/vendor/assets/javascripts/codemirror/modes/stex.js +1 -1
  33. data/vendor/assets/javascripts/codemirror/modes/tiki.js +4 -4
  34. data/vendor/assets/javascripts/codemirror/modes/velocity.js +1 -1
  35. data/vendor/assets/javascripts/codemirror/modes/verilog.js +1 -1
  36. data/vendor/assets/javascripts/codemirror/modes/xml.js +2 -2
  37. data/vendor/assets/javascripts/codemirror/modes/xquery.js +7 -4
  38. data/vendor/assets/javascripts/codemirror/utils/dialog.js +4 -1
  39. data/vendor/assets/javascripts/codemirror/utils/formatting.js +1 -1
  40. data/vendor/assets/javascripts/codemirror/utils/javascript-hint.js +3 -3
  41. data/vendor/assets/javascripts/codemirror/utils/loadmode.js +1 -1
  42. data/vendor/assets/javascripts/codemirror/utils/multiplex.js +1 -1
  43. data/vendor/assets/javascripts/codemirror/utils/pig-hint.js +1 -1
  44. data/vendor/assets/javascripts/codemirror/utils/runmode.js +8 -4
  45. data/vendor/assets/javascripts/codemirror/utils/search.js +4 -4
  46. data/vendor/assets/javascripts/codemirror/utils/searchcursor.js +13 -11
  47. data/vendor/assets/javascripts/codemirror/utils/simple-hint.js +89 -68
  48. data/vendor/assets/javascripts/codemirror/utils/xml-hint.js +8 -8
  49. data/vendor/assets/stylesheets/codemirror.css +15 -11
  50. metadata +13 -13
@@ -43,7 +43,7 @@
43
43
 
44
44
  CodeMirror.pigHint = function(editor) {
45
45
  return scriptHint(editor, pigKeywordsU, function (e, cur) {return e.getTokenAt(cur);});
46
- }
46
+ };
47
47
 
48
48
  function toTitleCase(str) {
49
49
  return str.replace(/(?:^|\s)\w/g, function(match) {
@@ -1,4 +1,8 @@
1
1
  CodeMirror.runMode = function(string, modespec, callback, options) {
2
+ function esc(str) {
3
+ return str.replace(/[<&]/, function(ch) { return ch == "<" ? "&lt;" : "&amp;"; });
4
+ }
5
+
2
6
  var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);
3
7
  var isNode = callback.nodeType == 1;
4
8
  var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;
@@ -15,12 +19,12 @@ CodeMirror.runMode = function(string, modespec, callback, options) {
15
19
  for (var pos = 0;;) {
16
20
  var idx = text.indexOf("\t", pos);
17
21
  if (idx == -1) {
18
- escaped += CodeMirror.htmlEscape(text.slice(pos));
22
+ escaped += esc(text.slice(pos));
19
23
  col += text.length - pos;
20
24
  break;
21
25
  } else {
22
26
  col += idx - pos;
23
- escaped += CodeMirror.htmlEscape(text.slice(pos, idx));
27
+ escaped += esc(text.slice(pos, idx));
24
28
  var size = tabSize - col % tabSize;
25
29
  col += size;
26
30
  for (var i = 0; i < size; ++i) escaped += " ";
@@ -29,10 +33,10 @@ CodeMirror.runMode = function(string, modespec, callback, options) {
29
33
  }
30
34
 
31
35
  if (style)
32
- accum.push("<span class=\"cm-" + CodeMirror.htmlEscape(style) + "\">" + escaped + "</span>");
36
+ accum.push("<span class=\"cm-" + esc(style) + "\">" + escaped + "</span>");
33
37
  else
34
38
  accum.push(escaped);
35
- }
39
+ };
36
40
  }
37
41
  var lines = CodeMirror.splitLines(string), state = CodeMirror.startState(mode);
38
42
  for (var i = 0, e = lines.length; i < e; ++i) {
@@ -40,7 +40,7 @@
40
40
  if (!query || state.query) return;
41
41
  state.query = parseQuery(query);
42
42
  if (cm.lineCount() < 2000) { // This is too expensive on big documents.
43
- for (var cursor = getSearchCursor(cm, query); cursor.findNext();)
43
+ for (var cursor = getSearchCursor(cm, state.query); cursor.findNext();)
44
44
  state.marked.push(cm.markText(cursor.from(), cursor.to(), "CodeMirror-searching"));
45
45
  }
46
46
  state.posFrom = state.posTo = cm.getCursor();
@@ -57,14 +57,14 @@
57
57
  }
58
58
  cm.setSelection(cursor.from(), cursor.to());
59
59
  state.posFrom = cursor.from(); state.posTo = cursor.to();
60
- })}
60
+ });}
61
61
  function clearSearch(cm) {cm.operation(function() {
62
62
  var state = getSearchState(cm);
63
63
  if (!state.query) return;
64
64
  state.query = null;
65
65
  for (var i = 0; i < state.marked.length; ++i) state.marked[i].clear();
66
66
  state.marked.length = 0;
67
- })}
67
+ });}
68
68
 
69
69
  var replaceQueryDialog =
70
70
  'Replace: <input type="text" style="width: 10em"/> <span style="color: #888">(Use /re/ syntax for regexp search)</span>';
@@ -83,7 +83,7 @@
83
83
  cursor.replace(text.replace(/\$(\d)/, function(w, i) {return match[i];}));
84
84
  } else cursor.replace(text);
85
85
  }
86
- })});
86
+ });});
87
87
  } else {
88
88
  clearSearch(cm);
89
89
  var cursor = getSearchCursor(cm, query, cm.getCursor());
@@ -10,30 +10,32 @@
10
10
  // It takes a position and a direction, and returns an object
11
11
  // describing the next occurrence of the query, or null if no
12
12
  // more matches were found.
13
- if (typeof query != "string") // Regexp match
13
+ if (typeof query != "string") { // Regexp match
14
+ if (!query.global) query = new RegExp(query.source, query.ignoreCase ? "ig" : "g");
14
15
  this.matches = function(reverse, pos) {
15
16
  if (reverse) {
16
- var line = cm.getLine(pos.line).slice(0, pos.ch), match = line.match(query), start = 0;
17
+ query.lastIndex = 0;
18
+ var line = cm.getLine(pos.line).slice(0, pos.ch), match = query.exec(line), start = 0;
17
19
  while (match) {
18
- var ind = line.indexOf(match[0]);
19
- start += ind;
20
- line = line.slice(ind + 1);
21
- var newmatch = line.match(query);
20
+ start += match.index;
21
+ line = line.slice(match.index);
22
+ query.lastIndex = 0;
23
+ var newmatch = query.exec(line);
22
24
  if (newmatch) match = newmatch;
23
25
  else break;
24
26
  start++;
25
27
  }
26
- }
27
- else {
28
- var line = cm.getLine(pos.line).slice(pos.ch), match = line.match(query),
29
- start = match && pos.ch + line.indexOf(match[0]);
28
+ } else {
29
+ query.lastIndex = pos.ch;
30
+ var line = cm.getLine(pos.line), match = query.exec(line),
31
+ start = match && match.index;
30
32
  }
31
33
  if (match)
32
34
  return {from: {line: pos.line, ch: start},
33
35
  to: {line: pos.line, ch: start + match[0].length},
34
36
  match: match};
35
37
  };
36
- else { // String query
38
+ } else { // String query
37
39
  if (caseFold) query = query.toLowerCase();
38
40
  var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;};
39
41
  var target = query.split("\n");
@@ -1,76 +1,97 @@
1
1
  (function() {
2
- CodeMirror.simpleHint = function(editor, getHints) {
3
- // We want a single cursor position.
4
- if (editor.somethingSelected()) return;
5
- //don't show completion if the token is empty
6
- var tempToken = editor.getTokenAt(editor.getCursor());
7
- if(!(/[\S]/gi.test(tempToken.string))) return;
2
+ CodeMirror.simpleHint = function(editor, getHints, givenOptions) {
3
+ // Determine effective options based on given values and defaults.
4
+ var options = {}, defaults = CodeMirror.simpleHint.defaults;
5
+ for (var opt in defaults)
6
+ if (defaults.hasOwnProperty(opt))
7
+ options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt];
8
+
9
+ function collectHints(previousToken) {
10
+ // We want a single cursor position.
11
+ if (editor.somethingSelected()) return;
8
12
 
9
- var result = getHints(editor);
10
- if (!result || !result.list.length) return;
11
- var completions = result.list;
12
- function insert(str) {
13
- editor.replaceRange(str, result.from, result.to);
14
- }
15
- // When there is only one completion, use it directly.
16
- if (completions.length == 1) {insert(completions[0]); return true;}
13
+ var tempToken = editor.getTokenAt(editor.getCursor());
17
14
 
18
- // Build the select widget
19
- var complete = document.createElement("div");
20
- complete.className = "CodeMirror-completions";
21
- var sel = complete.appendChild(document.createElement("select"));
22
- // Opera doesn't move the selection when pressing up/down in a
23
- // multi-select, but it does properly support the size property on
24
- // single-selects, so no multi-select is necessary.
25
- if (!window.opera) sel.multiple = true;
26
- for (var i = 0; i < completions.length; ++i) {
27
- var opt = sel.appendChild(document.createElement("option"));
28
- opt.appendChild(document.createTextNode(completions[i]));
29
- }
30
- sel.firstChild.selected = true;
31
- sel.size = Math.min(10, completions.length);
32
- var pos = editor.cursorCoords();
33
- complete.style.left = pos.x + "px";
34
- complete.style.top = pos.yBot + "px";
35
- document.body.appendChild(complete);
36
- // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.
37
- var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth);
38
- if(winW - pos.x < sel.clientWidth)
39
- complete.style.left = (pos.x - sel.clientWidth) + "px";
40
- // Hack to hide the scrollbar.
41
- if (completions.length <= 10)
42
- complete.style.width = (sel.clientWidth - 1) + "px";
15
+ // Don't show completions if token has changed and the option is set.
16
+ if (options.closeOnTokenChange && previousToken != null &&
17
+ (tempToken.start != previousToken.start || tempToken.className != previousToken.className)) {
18
+ return;
19
+ }
43
20
 
44
- var done = false;
45
- function close() {
46
- if (done) return;
47
- done = true;
48
- complete.parentNode.removeChild(complete);
49
- }
50
- function pick() {
51
- insert(completions[sel.selectedIndex]);
52
- close();
53
- setTimeout(function(){editor.focus();}, 50);
54
- }
55
- CodeMirror.connect(sel, "blur", close);
56
- CodeMirror.connect(sel, "keydown", function(event) {
57
- var code = event.keyCode;
58
- // Enter
59
- if (code == 13) {CodeMirror.e_stop(event); pick();}
60
- // Escape
61
- else if (code == 27) {CodeMirror.e_stop(event); close(); editor.focus();}
62
- else if (code != 38 && code != 40) {
63
- close(); editor.focus();
64
- // Pass the event to the CodeMirror instance so that it can handle things like backspace properly.
65
- editor.triggerOnKeyDown(event);
66
- setTimeout(function(){CodeMirror.simpleHint(editor, getHints);}, 50);
21
+ var result = getHints(editor);
22
+ if (!result || !result.list.length) return;
23
+ var completions = result.list;
24
+ function insert(str) {
25
+ editor.replaceRange(str, result.from, result.to);
26
+ }
27
+ // When there is only one completion, use it directly.
28
+ if (completions.length == 1) {insert(completions[0]); return true;}
29
+
30
+ // Build the select widget
31
+ var complete = document.createElement("div");
32
+ complete.className = "CodeMirror-completions";
33
+ var sel = complete.appendChild(document.createElement("select"));
34
+ // Opera doesn't move the selection when pressing up/down in a
35
+ // multi-select, but it does properly support the size property on
36
+ // single-selects, so no multi-select is necessary.
37
+ if (!window.opera) sel.multiple = true;
38
+ for (var i = 0; i < completions.length; ++i) {
39
+ var opt = sel.appendChild(document.createElement("option"));
40
+ opt.appendChild(document.createTextNode(completions[i]));
41
+ }
42
+ sel.firstChild.selected = true;
43
+ sel.size = Math.min(10, completions.length);
44
+ var pos = editor.cursorCoords();
45
+ complete.style.left = pos.x + "px";
46
+ complete.style.top = pos.yBot + "px";
47
+ document.body.appendChild(complete);
48
+ // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.
49
+ var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth);
50
+ if(winW - pos.x < sel.clientWidth)
51
+ complete.style.left = (pos.x - sel.clientWidth) + "px";
52
+ // Hack to hide the scrollbar.
53
+ if (completions.length <= 10)
54
+ complete.style.width = (sel.clientWidth - 1) + "px";
55
+
56
+ var done = false;
57
+ function close() {
58
+ if (done) return;
59
+ done = true;
60
+ complete.parentNode.removeChild(complete);
67
61
  }
68
- });
69
- CodeMirror.connect(sel, "dblclick", pick);
62
+ function pick() {
63
+ insert(completions[sel.selectedIndex]);
64
+ close();
65
+ setTimeout(function(){editor.focus();}, 50);
66
+ }
67
+ CodeMirror.connect(sel, "blur", close);
68
+ CodeMirror.connect(sel, "keydown", function(event) {
69
+ var code = event.keyCode;
70
+ // Enter
71
+ if (code == 13) {CodeMirror.e_stop(event); pick();}
72
+ // Escape
73
+ else if (code == 27) {CodeMirror.e_stop(event); close(); editor.focus();}
74
+ else if (code != 38 && code != 40) {
75
+ close(); editor.focus();
76
+ // Pass the event to the CodeMirror instance so that it can handle things like backspace properly.
77
+ editor.triggerOnKeyDown(event);
78
+ // Don't show completions if the code is backspace and the option is set.
79
+ if (!options.closeOnBackspace || code != 8) {
80
+ setTimeout(function(){collectHints(tempToken);}, 50);
81
+ }
82
+ }
83
+ });
84
+ CodeMirror.connect(sel, "dblclick", pick);
70
85
 
71
- sel.focus();
72
- // Opera sometimes ignores focusing a freshly created node
73
- if (window.opera) setTimeout(function(){if (!done) sel.focus();}, 100);
74
- return true;
86
+ sel.focus();
87
+ // Opera sometimes ignores focusing a freshly created node
88
+ if (window.opera) setTimeout(function(){if (!done) sel.focus();}, 100);
89
+ return true;
90
+ }
91
+ return collectHints();
92
+ };
93
+ CodeMirror.simpleHint.defaults = {
94
+ closeOnBackspace: true,
95
+ closeOnTokenChange: false
75
96
  };
76
97
  })();
@@ -1,4 +1,4 @@
1
- 
1
+
2
2
  (function() {
3
3
 
4
4
  CodeMirror.xmlHints = [];
@@ -15,7 +15,7 @@
15
15
  // dirty hack for simple-hint to receive getHint event on space
16
16
  var getTokenAt = editor.getTokenAt;
17
17
 
18
- editor.getTokenAt = function() { return 'disabled'; }
18
+ editor.getTokenAt = function() { return 'disabled'; };
19
19
  CodeMirror.simpleHint(cm, getHint);
20
20
 
21
21
  editor.getTokenAt = getTokenAt;
@@ -40,7 +40,7 @@
40
40
  }
41
41
  }
42
42
 
43
- text = text.substr(0, text.length - typed.length);
43
+ text = text.slice(0, text.length - typed.length);
44
44
 
45
45
  var path = getActiveElement(cm, text) + simbol;
46
46
  var hints = CodeMirror.xmlHints[path];
@@ -58,10 +58,10 @@
58
58
  return {
59
59
  list: hints,
60
60
  from: { line: cursor.line, ch: cursor.ch - typed.length },
61
- to: cursor,
61
+ to: cursor
62
62
  };
63
63
  };
64
- }
64
+ };
65
65
 
66
66
  var getActiveElement = function(codeMirror, text) {
67
67
 
@@ -76,7 +76,7 @@
76
76
  while ((match = regex.exec(text)) != null) {
77
77
  matches.push({
78
78
  tag: match[1],
79
- selfclose: (match[0].substr(-1) === '/>')
79
+ selfclose: (match[0].slice(match[0].length - 2) === '/>')
80
80
  });
81
81
  }
82
82
 
@@ -114,7 +114,7 @@
114
114
 
115
115
  if (close < open)
116
116
  {
117
- text = text.substr(open);
117
+ text = text.slice(open);
118
118
 
119
119
  if(text != '<') {
120
120
 
@@ -127,7 +127,7 @@
127
127
  if (space < 0)
128
128
  space = text.length;
129
129
 
130
- return text.substr(0, space);
130
+ return text.slice(0, space);
131
131
  }
132
132
  }
133
133
 
@@ -9,8 +9,7 @@
9
9
  }
10
10
 
11
11
  .CodeMirror-scroll {
12
- overflow-x: auto;
13
- overflow-y: hidden;
12
+ overflow: auto;
14
13
  height: 300px;
15
14
  /* This is needed to prevent an IE[67] bug where the scrolled content
16
15
  is visible outside of the scrolling box. */
@@ -20,13 +19,11 @@
20
19
 
21
20
  /* Vertical scrollbar */
22
21
  .CodeMirror-scrollbar {
23
- float: right;
22
+ position: absolute;
23
+ right: 0; top: 0;
24
24
  overflow-x: hidden;
25
25
  overflow-y: scroll;
26
-
27
- /* This corrects for the 1px gap introduced to the left of the scrollbar
28
- by the rule for .CodeMirror-scrollbar-inner. */
29
- margin-left: -1px;
26
+ z-index: 5;
30
27
  }
31
28
  .CodeMirror-scrollbar-inner {
32
29
  /* This needs to have a nonzero width in order for the scrollbar to appear
@@ -69,10 +66,6 @@
69
66
  white-space: pre;
70
67
  cursor: text;
71
68
  }
72
- .CodeMirror-lines * {
73
- /* Necessary for throw-scrolling to decelerate properly on Safari. */
74
- pointer-events: none;
75
- }
76
69
 
77
70
  .CodeMirror pre {
78
71
  -moz-border-radius: 0;
@@ -165,5 +158,16 @@ span.cm-em {font-style: italic;}
165
158
  span.cm-emstrong {font-style: italic; font-weight: bold;}
166
159
  span.cm-link {text-decoration: underline;}
167
160
 
161
+ span.cm-invalidchar {color: #f00;}
162
+
168
163
  div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
169
164
  div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
165
+
166
+ @media print {
167
+
168
+ /* Hide the cursor when printing */
169
+ .CodeMirror pre.CodeMirror-cursor {
170
+ visibility: hidden;
171
+ }
172
+
173
+ }
metadata CHANGED
@@ -1,20 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codemirror-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: '2.32'
4
+ version: '2.33'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Nathan Fixler
9
- - Robin Bühler
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2012-07-24 00:00:00.000000000Z
12
+ date: 2012-08-25 00:00:00.000000000Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: railties
17
- requirement: &2156136620 !ruby/object:Gem::Requirement
16
+ requirement: &2165662860 !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ~>
@@ -22,10 +21,10 @@ dependencies:
22
21
  version: '3.0'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *2156136620
24
+ version_requirements: *2165662860
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: rails
28
- requirement: &2156135060 !ruby/object:Gem::Requirement
27
+ requirement: &2165662340 !ruby/object:Gem::Requirement
29
28
  none: false
30
29
  requirements:
31
30
  - - ~>
@@ -33,10 +32,10 @@ dependencies:
33
32
  version: '3.0'
34
33
  type: :development
35
34
  prerelease: false
36
- version_requirements: *2156135060
35
+ version_requirements: *2165662340
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: sqlite3
39
- requirement: &2156118340 !ruby/object:Gem::Requirement
38
+ requirement: &2165661960 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
42
41
  - - ! '>='
@@ -44,10 +43,10 @@ dependencies:
44
43
  version: '0'
45
44
  type: :development
46
45
  prerelease: false
47
- version_requirements: *2156118340
46
+ version_requirements: *2165661960
48
47
  - !ruby/object:Gem::Dependency
49
48
  name: minitest
50
- requirement: &2156117080 !ruby/object:Gem::Requirement
49
+ requirement: &2165661320 !ruby/object:Gem::Requirement
51
50
  none: false
52
51
  requirements:
53
52
  - - ! '>='
@@ -55,10 +54,10 @@ dependencies:
55
54
  version: '0'
56
55
  type: :development
57
56
  prerelease: false
58
- version_requirements: *2156117080
57
+ version_requirements: *2165661320
59
58
  - !ruby/object:Gem::Dependency
60
59
  name: capybara
61
- requirement: &2156116060 !ruby/object:Gem::Requirement
60
+ requirement: &2165645620 !ruby/object:Gem::Requirement
62
61
  none: false
63
62
  requirements:
64
63
  - - ! '>='
@@ -66,7 +65,7 @@ dependencies:
66
65
  version: '0'
67
66
  type: :development
68
67
  prerelease: false
69
- version_requirements: *2156116060
68
+ version_requirements: *2165645620
70
69
  description: This gem provides CodeMirror assets for your Rails 3 application.
71
70
  email: nathan@fixler.org
72
71
  executables: []
@@ -165,6 +164,7 @@ files:
165
164
  - vendor/assets/javascripts/codemirror/modes/rust.js
166
165
  - vendor/assets/javascripts/codemirror/modes/scheme.js
167
166
  - vendor/assets/javascripts/codemirror/modes/shell.js
167
+ - vendor/assets/javascripts/codemirror/modes/sieve.js
168
168
  - vendor/assets/javascripts/codemirror/modes/smalltalk.js
169
169
  - vendor/assets/javascripts/codemirror/modes/smarty.js
170
170
  - vendor/assets/javascripts/codemirror/modes/sparql.js