refinerycms-core 0.9.9.19 → 0.9.9.20

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,167 +9,289 @@
9
9
  *
10
10
  * Requires jQuery 1.4.3 or later.
11
11
  * https://github.com/rails/jquery-ujs
12
+
13
+ * Uploading file using rails.js
14
+ * =============================
15
+ *
16
+ * By default, browsers do not allow files to be uploaded via AJAX. As a result, if there are any non-blank file fields
17
+ * in the remote form, this adapter aborts the AJAX submission and allows the form to submit through standard means.
18
+ *
19
+ * The `ajax:aborted:file` event allows you to bind your own handler to process the form submission however you wish.
20
+ *
21
+ * Ex:
22
+ * $('form').live('ajax:aborted:file', function(event, elements){
23
+ * // Implement own remote file-transfer handler here for non-blank file inputs passed in `elements`.
24
+ * // Returning false in this handler tells rails.js to disallow standard form submission
25
+ * return false;
26
+ * });
27
+ *
28
+ * The `ajax:aborted:file` event is fired when a file-type input is detected with a non-blank value.
29
+ *
30
+ * Third-party tools can use this hook to detect when an AJAX file upload is attempted, and then use
31
+ * techniques like the iframe method to upload the file instead.
32
+ *
33
+ * Required fields in rails.js
34
+ * ===========================
35
+ *
36
+ * If any blank required inputs (required="required") are detected in the remote form, the whole form submission
37
+ * is canceled. Note that this is unlike file inputs, which still allow standard (non-AJAX) form submission.
38
+ *
39
+ * The `ajax:aborted:required` event allows you to bind your own handler to inform the user of blank required inputs.
40
+ *
41
+ * !! Note that Opera does not fire the form's submit event if there are blank required inputs, so this event may never
42
+ * get fired in Opera. This event is what causes other browsers to exhibit the same submit-aborting behavior.
43
+ *
44
+ * Ex:
45
+ * $('form').live('ajax:aborted:required', function(event, elements){
46
+ * // Returning false in this handler tells rails.js to submit the form anyway.
47
+ * // The blank required inputs are passed to this function in `elements`.
48
+ * return ! confirm("Would you like to submit the form with missing info?");
49
+ * });
12
50
  */
13
51
 
14
52
  (function($) {
15
- // Make sure that every Ajax request sends the CSRF token
16
- function CSRFProtection(fn) {
17
- var token = $('meta[name="csrf-token"]').attr('content');
18
- if (token) fn(function(xhr) { xhr.setRequestHeader('X-CSRF-Token', token) });
19
- }
20
- if ($().jquery == '1.5') { // gruesome hack
21
- var factory = $.ajaxSettings.xhr;
22
- $.ajaxSettings.xhr = function() {
23
- var xhr = factory();
24
- CSRFProtection(function(setHeader) {
25
- var open = xhr.open;
26
- xhr.open = function() { open.apply(this, arguments); setHeader(this) };
27
- });
28
- return xhr;
29
- };
30
- }
31
- else $(document).ajaxSend(function(e, xhr) {
32
- CSRFProtection(function(setHeader) { setHeader(xhr) });
33
- });
34
53
 
35
- // Triggers an event on an element and returns the event result
36
- function fire(obj, name, data) {
37
- var event = new $.Event(name);
38
- obj.trigger(event, data);
39
- return event.result !== false;
40
- }
54
+ // Shorthand to make it a little easier to call public rails functions from within rails.js
55
+ var rails;
41
56
 
42
- // Submits "remote" forms and links with ajax
43
- function handleRemote(element) {
44
- var method, url, data,
45
- dataType = element.attr('data-type') || ($.ajaxSettings && $.ajaxSettings.dataType);
46
-
47
- if (element.is('form')) {
48
- method = element.attr('method');
49
- url = element.attr('action');
50
- data = element.serializeArray();
51
- // memoized value from clicked submit button
52
- var button = element.data('ujs:submit-button');
53
- if (button) {
54
- data.push(button);
55
- element.data('ujs:submit-button', null);
56
- }
57
- } else {
58
- method = element.attr('data-method');
59
- url = element.attr('href');
60
- data = null;
61
- }
57
+ $.rails = rails = {
58
+
59
+ // Link elements bound by jquery-ujs
60
+ linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]',
61
+
62
+ // Form elements bound by jquery-ujs
63
+ formSubmitSelector: 'form',
64
+
65
+ // Form input elements bound by jquery-ujs
66
+ formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])',
67
+
68
+ // Form input elements disabled during form submission
69
+ disableSelector: 'input[data-disable-with], button[data-disable-with], textarea[data-disable-with]',
70
+
71
+ // Form input elements re-enabled after form submission
72
+ enableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled',
73
+
74
+ // Form required input elements
75
+ requiredInputSelector: 'input[name][required],textarea[name][required]',
76
+
77
+ // Form file input elements
78
+ fileInputSelector: 'input:file',
79
+
80
+ // Make sure that every Ajax request sends the CSRF token
81
+ CSRFProtection: function(xhr) {
82
+ var token = $('meta[name="csrf-token"]').attr('content');
83
+ if (token) xhr.setRequestHeader('X-CSRF-Token', token);
84
+ },
85
+
86
+ // Triggers an event on an element and returns false if the event result is false
87
+ fire: function(obj, name, data) {
88
+ var event = $.Event(name);
89
+ obj.trigger(event, data);
90
+ return event.result !== false;
91
+ },
92
+
93
+ // Submits "remote" forms and links with ajax
94
+ handleRemote: function(element) {
95
+ var method, url, data,
96
+ dataType = element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType);
97
+
98
+ if (rails.fire(element, 'ajax:before')) {
62
99
 
63
- $.ajax({
64
- url: url, type: method || 'GET', data: data, dataType: dataType,
65
- // stopping the "ajax:beforeSend" event will cancel the ajax request
66
- beforeSend: function(xhr, settings) {
67
- if (settings.dataType === undefined) {
68
- xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
100
+ if (element.is('form')) {
101
+ method = element.attr('method');
102
+ url = element.attr('action');
103
+ data = element.serializeArray();
104
+ // memoized value from clicked submit button
105
+ var button = element.data('ujs:submit-button');
106
+ if (button) {
107
+ data.push(button);
108
+ element.data('ujs:submit-button', null);
109
+ }
110
+ } else {
111
+ method = element.data('method');
112
+ url = element.attr('href');
113
+ data = null;
69
114
  }
70
- return fire(element, 'ajax:beforeSend', [xhr, settings]);
71
- },
72
- success: function(data, status, xhr) {
73
- element.trigger('ajax:success', [data, status, xhr]);
74
- },
75
- complete: function(xhr, status) {
76
- element.trigger('ajax:complete', [xhr, status]);
77
- },
78
- error: function(xhr, status, error) {
79
- element.trigger('ajax:error', [xhr, status, error]);
115
+
116
+ $.ajax({
117
+ url: url, type: method || 'GET', data: data, dataType: dataType,
118
+ // stopping the "ajax:beforeSend" event will cancel the ajax request
119
+ beforeSend: function(xhr, settings) {
120
+ if (settings.dataType === undefined) {
121
+ xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
122
+ }
123
+ return rails.fire(element, 'ajax:beforeSend', [xhr, settings]);
124
+ },
125
+ success: function(data, status, xhr) {
126
+ element.trigger('ajax:success', [data, status, xhr]);
127
+ },
128
+ complete: function(xhr, status) {
129
+ element.trigger('ajax:complete', [xhr, status]);
130
+ },
131
+ error: function(xhr, status, error) {
132
+ element.trigger('ajax:error', [xhr, status, error]);
133
+ }
134
+ });
80
135
  }
81
- });
82
- }
136
+ },
83
137
 
84
- // Handles "data-method" on links such as:
85
- // <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
86
- function handleMethod(link) {
87
- var href = link.attr('href'),
88
- method = link.attr('data-method'),
89
- csrf_token = $('meta[name=csrf-token]').attr('content'),
90
- csrf_param = $('meta[name=csrf-param]').attr('content'),
91
- form = $('<form method="post" action="' + href + '"></form>'),
92
- metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
93
-
94
- if (csrf_param !== undefined && csrf_token !== undefined) {
95
- metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
96
- }
138
+ // Handles "data-method" on links such as:
139
+ // <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
140
+ handleMethod: function(link) {
141
+ var href = link.attr('href'),
142
+ method = link.data('method'),
143
+ csrf_token = $('meta[name=csrf-token]').attr('content'),
144
+ csrf_param = $('meta[name=csrf-param]').attr('content'),
145
+ form = $('<form method="post" action="' + href + '"></form>'),
146
+ metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
97
147
 
98
- form.hide().append(metadata_input).appendTo('body');
99
- form.submit();
100
- }
148
+ if (csrf_param !== undefined && csrf_token !== undefined) {
149
+ metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
150
+ }
101
151
 
102
- function disableFormElements(form) {
103
- form.find('input[data-disable-with]').each(function() {
104
- var input = $(this);
105
- input.data('ujs:enable-with', input.val())
106
- .val(input.attr('data-disable-with'))
107
- .attr('disabled', 'disabled');
108
- });
109
- }
152
+ form.hide().append(metadata_input).appendTo('body');
153
+ form.submit();
154
+ },
110
155
 
111
- function enableFormElements(form) {
112
- form.find('input[data-disable-with]').each(function() {
113
- var input = $(this);
114
- input.val(input.data('ujs:enable-with')).removeAttr('disabled');
115
- });
116
- }
156
+ /* Disables form elements:
157
+ - Caches element value in 'ujs:enable-with' data store
158
+ - Replaces element text with value of 'data-disable-with' attribute
159
+ - Adds disabled=disabled attribute
160
+ */
161
+ disableFormElements: function(form) {
162
+ form.find(rails.disableSelector).each(function() {
163
+ var element = $(this), method = element.is('button') ? 'html' : 'val';
164
+ element.data('ujs:enable-with', element[method]());
165
+ element[method](element.data('disable-with'));
166
+ element.attr('disabled', 'disabled');
167
+ });
168
+ },
117
169
 
118
- function allowAction(element) {
119
- var message = element.attr('data-confirm');
120
- return !message || (fire(element, 'confirm') && confirm(message));
121
- }
170
+ /* Re-enables disabled form elements:
171
+ - Replaces element text with cached value from 'ujs:enable-with' data store (created in `disableFormElements`)
172
+ - Removes disabled attribute
173
+ */
174
+ enableFormElements: function(form) {
175
+ form.find(rails.enableSelector).each(function() {
176
+ var element = $(this), method = element.is('button') ? 'html' : 'val';
177
+ if (element.data('ujs:enable-with')) element[method](element.data('ujs:enable-with'));
178
+ element.removeAttr('disabled');
179
+ });
180
+ },
181
+
182
+ // If message provided in 'data-confirm' attribute, fires `confirm` event and returns result of confirm dialog.
183
+ // Attaching a handler to the element's `confirm` event that returns false cancels the confirm dialog.
184
+ allowAction: function(element) {
185
+ var message = element.data('confirm');
186
+ return !message || (rails.fire(element, 'confirm') && confirm(message));
187
+ },
188
+
189
+ // Helper function which checks for blank inputs in a form that match the specified CSS selector
190
+ blankInputs: function(form, specifiedSelector, nonBlank) {
191
+ var inputs = $(), input,
192
+ selector = specifiedSelector || 'input,textarea';
193
+ form.find(selector).each(function() {
194
+ input = $(this);
195
+ // Collect non-blank inputs if nonBlank option is true, otherwise, collect blank inputs
196
+ if (nonBlank ? input.val() : !input.val()) {
197
+ inputs = inputs.add(input);
198
+ }
199
+ });
200
+ return inputs.length ? inputs : false;
201
+ },
202
+
203
+ // Helper function which checks for non-blank inputs in a form that match the specified CSS selector
204
+ nonBlankInputs: function(form, specifiedSelector) {
205
+ return rails.blankInputs(form, specifiedSelector, true); // true specifies nonBlank
206
+ },
122
207
 
123
- function requiredValuesMissing(form) {
124
- var missing = false;
125
- form.find('input[name][required]').each(function() {
126
- if (!$(this).val()) missing = true;
127
- });
128
- return missing;
208
+ // Helper function, needed to provide consistent behavior in IE
209
+ stopEverything: function(e) {
210
+ e.stopImmediatePropagation();
211
+ return false;
212
+ },
213
+
214
+ // find all the submit events directly bound to the form and
215
+ // manually invoke them. If anyone returns false then stop the loop
216
+ callFormSubmitBindings: function(form) {
217
+ var events = form.data('events'), continuePropagation = true;
218
+ if (events !== undefined && events['submit'] !== undefined) {
219
+ $.each(events['submit'], function(i, obj){
220
+ if (typeof obj.handler === 'function') return continuePropagation = obj.handler(obj.data);
221
+ });
222
+ }
223
+ return continuePropagation;
224
+ }
225
+ };
226
+
227
+ // ajaxPrefilter is a jQuery 1.5 feature
228
+ if ('ajaxPrefilter' in $) {
229
+ $.ajaxPrefilter(function(options, originalOptions, xhr){ rails.CSRFProtection(xhr); });
230
+ } else {
231
+ $(document).ajaxSend(function(e, xhr){ rails.CSRFProtection(xhr); });
129
232
  }
130
233
 
131
- $('a[data-confirm], a[data-method], a[data-remote]').live('click.rails', function(e) {
234
+ $(rails.linkClickSelector).live('click.rails', function(e) {
132
235
  var link = $(this);
133
- if (!allowAction(link)) return false;
236
+ if (!rails.allowAction(link)) return rails.stopEverything(e);
134
237
 
135
- if (link.attr('data-remote') != undefined) {
136
- handleRemote(link);
238
+ if (link.data('remote') !== undefined) {
239
+ rails.handleRemote(link);
137
240
  return false;
138
- } else if (link.attr('data-method')) {
139
- handleMethod(link);
241
+ } else if (link.data('method')) {
242
+ rails.handleMethod(link);
140
243
  return false;
141
244
  }
142
245
  });
143
246
 
144
- $('form').live('submit.rails', function(e) {
145
- var form = $(this), remote = form.attr('data-remote') != undefined;
146
- if (!allowAction(form)) return false;
247
+ $(rails.formSubmitSelector).live('submit.rails', function(e) {
248
+ var form = $(this),
249
+ remote = form.data('remote') !== undefined,
250
+ blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector),
251
+ nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector);
252
+
253
+ if (!rails.allowAction(form)) return rails.stopEverything(e);
147
254
 
148
- // skip other logic when required values are missing
149
- if (requiredValuesMissing(form)) return !remote;
255
+ // skip other logic when required values are missing or file upload is present
256
+ if (blankRequiredInputs && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) {
257
+ return !remote;
258
+ }
150
259
 
151
260
  if (remote) {
152
- handleRemote(form);
261
+ if (nonBlankFileInputs) {
262
+ return rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]);
263
+ }
264
+
265
+ // If browser does not support submit bubbling, then this live-binding will be called before direct
266
+ // bindings. Therefore, we should directly call any direct bindings before remotely submitting form.
267
+ if (!$.support.submitBubbles && rails.callFormSubmitBindings(form) === false) return rails.stopEverything(e);
268
+
269
+ rails.handleRemote(form);
153
270
  return false;
154
271
  } else {
155
272
  // slight timeout so that the submit button gets properly serialized
156
- setTimeout(function(){ disableFormElements(form) }, 13);
273
+ setTimeout(function(){ rails.disableFormElements(form); }, 13);
157
274
  }
158
275
  });
159
276
 
160
- $('form input[type=submit], form button[type=submit], form button:not([type])').live('click.rails', function() {
277
+ $(rails.formInputClickSelector).live('click.rails', function(event) {
161
278
  var button = $(this);
162
- if (!allowAction(button)) return false;
279
+
280
+ if (!rails.allowAction(button)) return rails.stopEverything(event);
281
+
163
282
  // register the pressed submit button
164
- var name = button.attr('name'), data = name ? {name:name, value:button.val()} : null;
283
+ var name = button.attr('name'),
284
+ data = name ? {name:name, value:button.val()} : null;
285
+
165
286
  button.closest('form').data('ujs:submit-button', data);
166
287
  });
167
288
 
168
- $('form').live('ajax:beforeSend.rails', function(event) {
169
- if (this == event.target) disableFormElements($(this));
289
+ $(rails.formSubmitSelector).live('ajax:beforeSend.rails', function(event) {
290
+ if (this == event.target) rails.disableFormElements($(this));
170
291
  });
171
292
 
172
- $('form').live('ajax:complete.rails', function(event) {
173
- if (this == event.target) enableFormElements($(this));
293
+ $(rails.formSubmitSelector).live('ajax:complete.rails', function(event) {
294
+ if (this == event.target) rails.enableFormElements($(this));
174
295
  });
296
+
175
297
  })( jQuery );
@@ -569,7 +569,7 @@ var link_dialog = {
569
569
  ($('#web_address_target_blank').get(0).checked ? "_blank" : "")
570
570
  );
571
571
  });
572
-
572
+
573
573
  $('#web_address_target_blank').click(function(){
574
574
  parent.document.getElementById('wym_target').value = this.checked ? "_blank" : "";
575
575
  });
@@ -25,3 +25,5 @@ init_flash_messages = function(){
25
25
  });
26
26
  $('#flash.flash_message').prependTo('#records');
27
27
  };
28
+
29
+
@@ -1,19 +1,20 @@
1
1
  WYMeditor.STRINGS['de'] = {
2
+ Apply_Style: 'Style',
2
3
  Strong: 'Fett',
3
4
  Emphasis: 'Kursiv',
4
- Superscript: 'Text hochstellen',
5
- Subscript: 'Text tiefstellen',
6
- Ordered_List: 'Geordnete Liste einfügen',
7
- Unordered_List: 'Ungeordnete Liste einfügen',
5
+ Superscript: 'Hochstellen',
6
+ Subscript: 'Tiefstellen',
7
+ Ordered_List: 'Geordnete Liste',
8
+ Unordered_List: 'Ungeordnete Liste',
8
9
  Indent: 'Einzug erhöhen',
9
10
  Outdent: 'Einzug vermindern',
10
- Undo: 'Befehle rückgängig machen',
11
- Redo: 'Befehle wiederherstellen',
12
- Link: 'Hyperlink einfügen',
11
+ Undo: 'Rückgängig',
12
+ Redo: 'Wiederherstellen',
13
+ Link: 'Hyperlink',
13
14
  Unlink: 'Hyperlink entfernen',
14
- Image: 'Bild einfügen',
15
- Table: 'Tabelle einfügen',
16
- HTML: 'HTML anzeigen/verstecken',
15
+ Image: 'Bild',
16
+ Table: 'Tabelle',
17
+ HTML: 'HTML',
17
18
  Paragraph: 'Absatz',
18
19
  Heading_1: 'Überschrift 1',
19
20
  Heading_2: 'Überschrift 2',
@@ -41,5 +42,4 @@ WYMeditor.STRINGS['de'] = {
41
42
  Classes: 'Klassen',
42
43
  Status: 'Status',
43
44
  Source_Code: 'Quellcode'
44
- };
45
-
45
+ };
@@ -0,0 +1,45 @@
1
+ WYMeditor.STRINGS['sk'] = {
2
+ Strong: 'Tučné',
3
+ Emphasis: 'Kurzíva',
4
+ Superscript: 'Horný index',
5
+ Subscript: 'Dolný index',
6
+ Ordered_List: 'Číslovaný zoznam',
7
+ Unordered_List: 'Nečíslovaný zoznam',
8
+ Indent: 'Zväčšiť odsadenie',
9
+ Outdent: 'Zmeňšiť odsadenie',
10
+ Undo: 'Späť',
11
+ Redo: 'Znovu',
12
+ Link: 'Vytvoriť odkaz',
13
+ Unlink: 'Zrušiť odkaz',
14
+ Image: 'Obrázok',
15
+ Table: 'Tabuľka',
16
+ HTML: 'HTML',
17
+ Paragraph: 'Odstavec',
18
+ Heading_1: 'Nadpis 1. úrovne',
19
+ Heading_2: 'Nadpis 2. úrovne',
20
+ Heading_3: 'Nadpis 3. úrovne',
21
+ Heading_4: 'Nadpis 4. úrovne',
22
+ Heading_5: 'Nadpis 5. úrovne',
23
+ Heading_6: 'Nadpis 6. úrovne',
24
+ Preformatted: 'Predformátovaný text',
25
+ Blockquote: 'Citácia',
26
+ Table_Header: 'Hlavičková bunka tabulky',
27
+ URL: 'Adresa',
28
+ Title: 'Text po nabehnutí myšou',
29
+ Alternative_Text: 'Text pre prípad nezobrazenia obrázku',
30
+ Caption: 'Titulok tabuľky',
31
+ Summary: 'Zhrnutie obsahu',
32
+ Number_Of_Rows: 'Počet riadkov',
33
+ Number_Of_Cols: 'Počet stĺpcov',
34
+ Submit: 'Vytvoriť',
35
+ Cancel: 'Zrušiť',
36
+ Choose: 'Vybrať',
37
+ Preview: 'Náhľad',
38
+ Paste_From_Word: 'Vložiť z Wordu',
39
+ Tools: 'Nástroje',
40
+ Containers: 'Typy obsahu',
41
+ Classes: 'Triedy',
42
+ Status: 'Stav',
43
+ Source_Code: 'Zdrojový kód'
44
+ };
45
+
@@ -213,7 +213,7 @@ a#site_bar_refinery_cms_logo {
213
213
  #content, #page_container {
214
214
  background-color: white;
215
215
  }
216
- body.login #site_bar_content, body.login header {
216
+ body.login #site_bar_content {
217
217
  width: 650px;
218
218
  }
219
219
  body.login #page_container {
@@ -221,6 +221,9 @@ body.login #page_container {
221
221
  }
222
222
  body.login header {
223
223
  background: #eaeaea;
224
+ width: 620px;
225
+ padding: 0px 15px 1em;
226
+ height: auto;
224
227
  }
225
228
  header, footer, nav {
226
229
  display: block;
@@ -305,7 +308,6 @@ body.login header h1 {
305
308
  padding-bottom: 0px;
306
309
  line-height: 30px;
307
310
  padding-top: 15px;
308
- min-height: 60px;
309
311
  }
310
312
  #menu, header .jcarousel-container {
311
313
  display: block;
@@ -2,10 +2,10 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{refinerycms-core}
5
- s.version = %q{0.9.9.19}
5
+ s.version = %q{0.9.9.20}
6
6
  s.summary = %q{Core engine for Refinery CMS}
7
7
  s.description = %q{The core of Refinery CMS. This handles the common functionality and is required by most engines}
8
- s.date = %q{2011-04-22}
8
+ s.date = %q{2011-04-28}
9
9
  s.email = %q{info@refinerycms.com}
10
10
  s.homepage = %q{http://refinerycms.com}
11
11
  s.rubyforge_project = %q{refinerycms}
@@ -14,8 +14,8 @@ Gem::Specification.new do |s|
14
14
  s.require_paths = %w(lib)
15
15
  s.executables = %w()
16
16
 
17
- s.add_dependency 'refinerycms-base', '= 0.9.9.19'
18
- s.add_dependency 'refinerycms-settings', '= 0.9.9.19'
17
+ s.add_dependency 'refinerycms-base', '= 0.9.9.20'
18
+ s.add_dependency 'refinerycms-settings', '= 0.9.9.20'
19
19
  s.add_dependency 'refinerycms-generators', '~> 1.0'
20
20
  s.add_dependency 'acts_as_indexed', '~> 0.7'
21
21
  s.add_dependency 'friendly_id_globalize3', '~> 3.2.1'
@@ -379,6 +379,7 @@ Gem::Specification.new do |s|
379
379
  'public/javascripts/wymeditor/lang/pt.js',
380
380
  'public/javascripts/wymeditor/lang/rs.js',
381
381
  'public/javascripts/wymeditor/lang/ru.js',
382
+ 'public/javascripts/wymeditor/lang/sk.js',
382
383
  'public/javascripts/wymeditor/lang/sl.js',
383
384
  'public/javascripts/wymeditor/lang/sv.js',
384
385
  'public/javascripts/wymeditor/lang/tr.js',
@@ -416,6 +417,7 @@ Gem::Specification.new do |s|
416
417
  'spec',
417
418
  'spec/lib',
418
419
  'spec/lib/refinery',
420
+ 'spec/lib/refinery/plugin_spec.rb',
419
421
  'spec/lib/refinery/plugins_spec.rb'
420
422
  ]
421
423
  end