markitup_rails 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Markitup_rails is a Rails 3.1 engine that allows you to integrate the {MarkItUp}[http://markitup.jaysalvat.com/home/] text editor into the asset pipeline.
4
4
 
5
- This uses the 1.1.12 release of Markitup, by {Jay Salvat}[http://jaysalvat.com]
5
+ This uses the 1.1.14 release of Markitup, by {Jay Salvat}[http://jaysalvat.com]
6
6
 
7
7
  This engine allows you to add in the CSS and Javascript as written in the MarkItUp plugin. I would strongly recommend that you read the documentation tha comes with MarkItUp.
8
8
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.2
@@ -1,9 +1,9 @@
1
1
  // ----------------------------------------------------------------------------
2
2
  // markItUp! Universal MarkUp Engine, JQuery plugin
3
- // v 1.1.x
3
+ // v 1.1.14
4
4
  // Dual licensed under the MIT and GPL licenses.
5
5
  // ----------------------------------------------------------------------------
6
- // Copyright (C) 2007-2011 Jay Salvat
6
+ // Copyright (C) 2007-2012 Jay Salvat
7
7
  // http://markitup.jaysalvat.com/
8
8
  // ----------------------------------------------------------------------------
9
9
  // Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -26,13 +26,19 @@
26
26
  // ----------------------------------------------------------------------------
27
27
  (function($) {
28
28
  $.fn.markItUp = function(settings, extraSettings) {
29
- var options, ctrlKey, shiftKey, altKey;
30
- ctrlKey = shiftKey = altKey = false;
31
-
29
+ var method, params, options, ctrlKey, shiftKey, altKey; ctrlKey = shiftKey = altKey = false;
30
+
31
+ if (typeof settings == 'string') {
32
+ method = settings;
33
+ params = extraSettings;
34
+ }
35
+
32
36
  options = { id: '',
33
37
  nameSpace: '',
34
38
  root: '',
39
+ previewHandler: false,
35
40
  previewInWindow: '', // 'width=800, height=600, resizable=yes, scrollbars=yes'
41
+ previewInElement: '',
36
42
  previewAutoRefresh: true,
37
43
  previewPosition: 'after',
38
44
  previewTemplatePath: '~/templates/preview.html',
@@ -60,6 +66,35 @@
60
66
  });
61
67
  }
62
68
 
69
+ // Quick patch to keep compatibility with jQuery 1.9
70
+ var uaMatch = function(ua) {
71
+ ua = ua.toLowerCase();
72
+
73
+ var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
74
+ /(webkit)[ \/]([\w.]+)/.exec(ua) ||
75
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
76
+ /(msie) ([\w.]+)/.exec(ua) ||
77
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
78
+ [];
79
+
80
+ return {
81
+ browser: match[ 1 ] || "",
82
+ version: match[ 2 ] || "0"
83
+ };
84
+ };
85
+ var matched = uaMatch( navigator.userAgent );
86
+ var browser = {};
87
+
88
+ if (matched.browser) {
89
+ browser[matched.browser] = true;
90
+ browser.version = matched.version;
91
+ }
92
+ if (browser.chrome) {
93
+ browser.webkit = true;
94
+ } else if (browser.webkit) {
95
+ browser.safari = true;
96
+ }
97
+
63
98
  return this.each(function() {
64
99
  var $$, textarea, levels, scrollPosition, caretPosition, caretOffset,
65
100
  clicked, hash, header, footer, previewWindow, template, iFrame, abort;
@@ -73,6 +108,20 @@
73
108
  options.previewParserPath = localize(options.previewParserPath);
74
109
  options.previewTemplatePath = localize(options.previewTemplatePath);
75
110
 
111
+ if (method) {
112
+ switch(method) {
113
+ case 'remove':
114
+ remove();
115
+ break;
116
+ case 'insert':
117
+ markup(params);
118
+ break;
119
+ default:
120
+ $.error('Method ' + method + ' does not exist on jQuery.markItUp');
121
+ }
122
+ return;
123
+ }
124
+
76
125
  // apply the computed path to ~/
77
126
  function localize(data, inText) {
78
127
  if (inText) {
@@ -106,29 +155,29 @@
106
155
  footer = $('<div class="markItUpFooter"></div>').insertAfter($$);
107
156
 
108
157
  // add the resize handle after textarea
109
- if (options.resizeHandle === true && $.browser.safari !== true) {
158
+ if (options.resizeHandle === true && browser.safari !== true) {
110
159
  resizeHandle = $('<div class="markItUpResizeHandle"></div>')
111
160
  .insertAfter($$)
112
- .bind("mousedown", function(e) {
161
+ .bind("mousedown.markItUp", function(e) {
113
162
  var h = $$.height(), y = e.clientY, mouseMove, mouseUp;
114
163
  mouseMove = function(e) {
115
164
  $$.css("height", Math.max(20, e.clientY+h-y)+"px");
116
165
  return false;
117
166
  };
118
167
  mouseUp = function(e) {
119
- $("html").unbind("mousemove", mouseMove).unbind("mouseup", mouseUp);
168
+ $("html").unbind("mousemove.markItUp", mouseMove).unbind("mouseup.markItUp", mouseUp);
120
169
  return false;
121
170
  };
122
- $("html").bind("mousemove", mouseMove).bind("mouseup", mouseUp);
171
+ $("html").bind("mousemove.markItUp", mouseMove).bind("mouseup.markItUp", mouseUp);
123
172
  });
124
173
  footer.append(resizeHandle);
125
174
  }
126
175
 
127
176
  // listen key events
128
- $$.keydown(keyPressed).keyup(keyPressed);
177
+ $$.bind('keydown.markItUp', keyPressed).bind('keyup', keyPressed);
129
178
 
130
179
  // bind an event to catch external calls
131
- $$.bind("insertion", function(e, settings) {
180
+ $$.bind("insertion.markItUp", function(e, settings) {
132
181
  if (settings.target !== false) {
133
182
  get();
134
183
  }
@@ -138,9 +187,13 @@
138
187
  });
139
188
 
140
189
  // remember the last focus
141
- $$.focus(function() {
190
+ $$.bind('focus.markItUp', function() {
142
191
  $.markItUp.focused = this;
143
192
  });
193
+
194
+ if (options.previewInElement) {
195
+ refreshPreview();
196
+ }
144
197
  }
145
198
 
146
199
  // recursively build header with dropMenus from markupset
@@ -159,28 +212,27 @@
159
212
  t += levels[j]+"-";
160
213
  }
161
214
  li = $('<li class="markItUpButton markItUpButton'+t+(i)+' '+(button.className||'')+'"><a href="" '+key+' title="'+title+'">'+(button.name||'')+'</a></li>')
162
- .bind("contextmenu", function() { // prevent contextmenu on mac and allow ctrl+click
163
- return false;
164
- }).click(function() {
215
+ .bind("contextmenu.markItUp", function() { // prevent contextmenu on mac and allow ctrl+click
165
216
  return false;
166
- }).bind("focusin", function(){
217
+ }).bind('click.markItUp', function(e) {
218
+ e.preventDefault();
219
+ }).bind("focusin.markItUp", function(){
167
220
  $$.focus();
168
- }).mouseup(function() {
221
+ }).bind('mouseup', function() {
169
222
  if (button.call) {
170
223
  eval(button.call)();
171
224
  }
172
225
  setTimeout(function() { markup(button) },1);
173
226
  return false;
174
- }).hover(function() {
227
+ }).bind('mouseenter.markItUp', function() {
175
228
  $('> ul', this).show();
176
229
  $(document).one('click', function() { // close dropmenu if click outside
177
230
  $('ul ul', header).hide();
178
231
  }
179
232
  );
180
- }, function() {
233
+ }).bind('mouseleave.markItUp', function() {
181
234
  $('> ul', this).hide();
182
- }
183
- ).appendTo(ul);
235
+ }).appendTo(ul);
184
236
  if (button.dropMenu) {
185
237
  levels.push(i);
186
238
  $(li).addClass('markItUpDropMenu').append(dropMenus(button.dropMenu));
@@ -249,9 +301,13 @@
249
301
  } else {
250
302
  string = string || selection;
251
303
 
252
- var lines = selection.split(/\r?\n/), blocks = [];
304
+ var lines = [string], blocks = [];
305
+
306
+ if (multiline === true) {
307
+ lines = string.split(/\r?\n/);
308
+ }
253
309
 
254
- for (var l=0; l < lines.length; l++) {
310
+ for (var l = 0; l < lines.length; l++) {
255
311
  line = lines[l];
256
312
  var trailingSpaces;
257
313
  if (trailingSpaces = line.match(/ *$/)) {
@@ -267,10 +323,12 @@
267
323
  block = openBlockWith + block + closeBlockWith;
268
324
 
269
325
  return { block:block,
326
+ openBlockWith:openBlockWith,
270
327
  openWith:openWith,
271
328
  replaceWith:replaceWith,
272
329
  placeHolder:placeHolder,
273
- closeWith:closeWith
330
+ closeWith:closeWith,
331
+ closeBlockWith:closeBlockWith
274
332
  };
275
333
  }
276
334
 
@@ -307,9 +365,10 @@
307
365
  lines[i] = "";
308
366
  }
309
367
  }
368
+
310
369
  string = { block:lines.join('\n')};
311
370
  start = caretPosition;
312
- len = string.block.length + (($.browser.opera) ? n-1 : 0);
371
+ len = string.block.length + ((browser.opera) ? n-1 : 0);
313
372
  } else if (ctrlKey === true) {
314
373
  string = build(selection);
315
374
  start = caretPosition + string.openWith.length;
@@ -330,8 +389,8 @@
330
389
  if ((selection === '' && string.replaceWith === '')) {
331
390
  caretOffset += fixOperaBug(string.block);
332
391
 
333
- start = caretPosition + string.openWith.length;
334
- len = string.block.length - string.openWith.length - string.closeWith.length;
392
+ start = caretPosition + string.openBlockWith.length + string.openWith.length;
393
+ len = string.block.length - string.openBlockWith.length - string.openWith.length - string.closeWith.length - string.closeBlockWith.length;
335
394
 
336
395
  caretOffset = $$.val().substring(caretPosition, $$.val().length).length;
337
396
  caretOffset -= fixOperaBug($$.val().substring(0, caretPosition));
@@ -366,14 +425,14 @@
366
425
 
367
426
  // Substract linefeed in Opera
368
427
  function fixOperaBug(string) {
369
- if ($.browser.opera) {
428
+ if (browser.opera) {
370
429
  return string.length - string.replace(/\n*/g, '').length;
371
430
  }
372
431
  return 0;
373
432
  }
374
433
  // Substract linefeed in IE
375
434
  function fixIeBug(string) {
376
- if ($.browser.msie) {
435
+ if (browser.msie) {
377
436
  return string.length - string.replace(/\r*/g, '').length;
378
437
  }
379
438
  return 0;
@@ -393,7 +452,7 @@
393
452
  function set(start, len) {
394
453
  if (textarea.createTextRange){
395
454
  // quick fix to make it work on Opera 9.5
396
- if ($.browser.opera && $.browser.version >= 9.5 && len == 0) {
455
+ if (browser.opera && browser.version >= 9.5 && len == 0) {
397
456
  return false;
398
457
  }
399
458
  range = textarea.createTextRange();
@@ -415,7 +474,7 @@
415
474
  scrollPosition = textarea.scrollTop;
416
475
  if (document.selection) {
417
476
  selection = document.selection.createRange().text;
418
- if ($.browser.msie) { // ie
477
+ if (browser.msie) { // ie
419
478
  var range = document.selection.createRange(), rangeCopy = range.duplicate();
420
479
  rangeCopy.moveToElementText(textarea);
421
480
  caretPosition = -1;
@@ -436,7 +495,11 @@
436
495
 
437
496
  // open preview window
438
497
  function preview() {
439
- if (!previewWindow || previewWindow.closed) {
498
+ if (typeof options.previewHandler === 'function') {
499
+ previewWindow = true;
500
+ } else if (options.previewInElement) {
501
+ previewWindow = $(options.previewInElement);
502
+ } else if (!previewWindow || previewWindow.closed) {
440
503
  if (options.previewInWindow) {
441
504
  previewWindow = window.open('', 'preview', options.previewInWindow);
442
505
  $(window).unload(function() {
@@ -472,11 +535,13 @@
472
535
  renderPreview();
473
536
  }
474
537
 
475
- function renderPreview() {
538
+ function renderPreview() {
476
539
  var phtml;
477
- if (options.previewParser && typeof options.previewParser === 'function') {
540
+ if (options.previewHandler && typeof options.previewHandler === 'function') {
541
+ options.previewHandler( $$.val() );
542
+ } else if (options.previewParser && typeof options.previewParser === 'function') {
478
543
  var data = options.previewParser( $$.val() );
479
- writeInPreview( localize(data, 1) );
544
+ writeInPreview(localize(data, 1) );
480
545
  } else if (options.previewParserPath !== '') {
481
546
  $.ajax({
482
547
  type: 'POST',
@@ -504,7 +569,9 @@
504
569
  }
505
570
 
506
571
  function writeInPreview(data) {
507
- if (previewWindow.document) {
572
+ if (options.previewInElement) {
573
+ $(options.previewInElement).html(data);
574
+ } else if (previewWindow && previewWindow.document) {
508
575
  try {
509
576
  sp = previewWindow.document.documentElement.scrollTop
510
577
  } catch(e) {
@@ -525,7 +592,7 @@
525
592
 
526
593
  if (e.type === 'keydown') {
527
594
  if (ctrlKey === true) {
528
- li = $('a[accesskey="'+String.fromCharCode(e.keyCode)+'"]', header).parent('li');
595
+ li = $('a[accesskey="'+((e.keyCode == 13) ? '\\n' : String.fromCharCode(e.keyCode))+'"]', header).parent('li');
529
596
  if (li.length !== 0) {
530
597
  ctrlKey = false;
531
598
  setTimeout(function() {
@@ -566,14 +633,19 @@
566
633
  }
567
634
  }
568
635
 
636
+ function remove() {
637
+ $$.unbind(".markItUp").removeClass('markItUpEditor');
638
+ $$.parent('div').parent('div.markItUp').parent('div').replaceWith($$);
639
+ $$.data('markItUp', null);
640
+ }
641
+
569
642
  init();
570
643
  });
571
644
  };
572
645
 
573
646
  $.fn.markItUpRemove = function() {
574
647
  return this.each(function() {
575
- var $$ = $(this).unbind().removeClass('markItUpEditor');
576
- $$.parent('div').parent('div.markItUp').parent('div').replaceWith($$);
648
+ $(this).markItUp('remove');
577
649
  }
578
650
  );
579
651
  };
@@ -590,4 +662,4 @@
590
662
  $('textarea').trigger('insertion', [options]);
591
663
  }
592
664
  };
593
- })(jQuery);
665
+ })(jQuery);
@@ -5,10 +5,10 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "markitup_rails"
8
- s.version = "0.2.0"
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Jeff Wigal", "N4th4", "Ze Jin"]
11
+ s.authors = ["Jeff Wigal", "N4th4", "Ze Jin", "voltechs"]
12
12
  s.date = "2012-07-27"
13
13
  s.description = "Rails 3.1 engine that allows you to integrate the markItUp editor into the asset pipeline"
14
14
  s.email = "jeff@assignr.com"
metadata CHANGED
@@ -1,135 +1,140 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: markitup_rails
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 0
10
- version: 0.2.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jeff Wigal
14
9
  - N4th4
15
10
  - Ze Jin
11
+ - voltechs
16
12
  autorequire:
17
13
  bindir: bin
18
14
  cert_chain: []
19
-
20
- date: 2012-07-27 00:00:00 Z
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
23
- requirement: &id001 !ruby/object:Gem::Requirement
15
+ date: 2012-07-27 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: rails
19
+ requirement: !ruby/object:Gem::Requirement
24
20
  none: false
25
- requirements:
21
+ requirements:
26
22
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 5
29
- segments:
30
- - 3
31
- - 1
32
- version: "3.1"
33
- version_requirements: *id001
34
- name: rails
35
- prerelease: false
23
+ - !ruby/object:Gem::Version
24
+ version: '3.1'
36
25
  type: :runtime
37
- - !ruby/object:Gem::Dependency
38
- requirement: &id002 !ruby/object:Gem::Requirement
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
47
- version_requirements: *id002
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '3.1'
33
+ - !ruby/object:Gem::Dependency
48
34
  name: bluecloth
49
- prerelease: false
35
+ requirement: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
50
41
  type: :runtime
51
- - !ruby/object:Gem::Dependency
52
- requirement: &id003 !ruby/object:Gem::Requirement
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
53
44
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
61
- version_requirements: *id003
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ - !ruby/object:Gem::Dependency
62
50
  name: bb-ruby
63
- prerelease: false
51
+ requirement: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
64
57
  type: :runtime
65
- - !ruby/object:Gem::Dependency
66
- requirement: &id004 !ruby/object:Gem::Requirement
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
67
60
  none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
75
- version_requirements: *id004
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ - !ruby/object:Gem::Dependency
76
66
  name: shoulda
77
- prerelease: false
67
+ requirement: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
78
73
  type: :development
79
- - !ruby/object:Gem::Dependency
80
- requirement: &id005 !ruby/object:Gem::Requirement
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
81
76
  none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 0
88
- version: "0"
89
- version_requirements: *id005
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ - !ruby/object:Gem::Dependency
90
82
  name: bundler
91
- prerelease: false
83
+ requirement: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
92
89
  type: :development
93
- - !ruby/object:Gem::Dependency
94
- requirement: &id006 !ruby/object:Gem::Requirement
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
95
92
  none: false
96
- requirements:
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: jeweler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
97
102
  - - ~>
98
- - !ruby/object:Gem::Version
99
- hash: 7
100
- segments:
101
- - 1
102
- - 6
103
- - 4
103
+ - !ruby/object:Gem::Version
104
104
  version: 1.6.4
105
- version_requirements: *id006
106
- name: jeweler
107
- prerelease: false
108
105
  type: :development
109
- - !ruby/object:Gem::Dependency
110
- requirement: &id007 !ruby/object:Gem::Requirement
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
111
108
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- hash: 3
116
- segments:
117
- - 0
118
- version: "0"
119
- version_requirements: *id007
109
+ requirements:
110
+ - - ~>
111
+ - !ruby/object:Gem::Version
112
+ version: 1.6.4
113
+ - !ruby/object:Gem::Dependency
120
114
  name: rcov
121
- prerelease: false
115
+ requirement: !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
122
121
  type: :development
123
- description: Rails 3.1 engine that allows you to integrate the markItUp editor into the asset pipeline
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ description: Rails 3.1 engine that allows you to integrate the markItUp editor into
130
+ the asset pipeline
124
131
  email: jeff@assignr.com
125
132
  executables: []
126
-
127
133
  extensions: []
128
-
129
- extra_rdoc_files:
134
+ extra_rdoc_files:
130
135
  - LICENSE.txt
131
136
  - README.rdoc
132
- files:
137
+ files:
133
138
  - .document
134
139
  - Gemfile
135
140
  - Gemfile.lock
@@ -213,37 +218,29 @@ files:
213
218
  - test/helper.rb
214
219
  - test/test_markitup_rails.rb
215
220
  homepage: http://github.com/jwigal/markitup_rails
216
- licenses:
221
+ licenses:
217
222
  - MIT
218
223
  post_install_message:
219
224
  rdoc_options: []
220
-
221
- require_paths:
225
+ require_paths:
222
226
  - lib
223
- required_ruby_version: !ruby/object:Gem::Requirement
227
+ required_ruby_version: !ruby/object:Gem::Requirement
224
228
  none: false
225
- requirements:
226
- - - ">="
227
- - !ruby/object:Gem::Version
228
- hash: 3
229
- segments:
230
- - 0
231
- version: "0"
232
- required_rubygems_version: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ! '>='
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ required_rubygems_version: !ruby/object:Gem::Requirement
233
234
  none: false
234
- requirements:
235
- - - ">="
236
- - !ruby/object:Gem::Version
237
- hash: 3
238
- segments:
239
- - 0
240
- version: "0"
235
+ requirements:
236
+ - - ! '>='
237
+ - !ruby/object:Gem::Version
238
+ version: '0'
241
239
  requirements: []
242
-
243
240
  rubyforge_project:
244
241
  rubygems_version: 1.8.24
245
242
  signing_key:
246
243
  specification_version: 3
247
- summary: Rails 3.1 engine that allows you to integrate the markItUp editor into the asset pipeline
244
+ summary: Rails 3.1 engine that allows you to integrate the markItUp editor into the
245
+ asset pipeline
248
246
  test_files: []
249
-