blog_logic 0.7.6 → 0.7.7

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.
@@ -1,191 +1,22 @@
1
- (function() {
2
- // Technique from Juriy Zaytsev
3
- // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
4
- function isEventSupported(eventName) {
5
- var el = document.createElement('div');
6
- eventName = 'on' + eventName;
7
- var isSupported = (eventName in el);
8
- if (!isSupported) {
9
- el.setAttribute(eventName, 'return;');
10
- isSupported = typeof el[eventName] == 'function';
11
- }
12
- el = null;
13
- return isSupported;
14
- }
15
-
16
- function isForm(element) {
17
- return Object.isElement(element) && element.nodeName.toUpperCase() == 'FORM'
18
- }
19
-
20
- function isInput(element) {
21
- if (Object.isElement(element)) {
22
- var name = element.nodeName.toUpperCase()
23
- return name == 'INPUT' || name == 'SELECT' || name == 'TEXTAREA'
24
- }
25
- else return false
26
- }
27
-
28
- var submitBubbles = isEventSupported('submit'),
29
- changeBubbles = isEventSupported('change')
30
-
31
- if (!submitBubbles || !changeBubbles) {
32
- // augment the Event.Handler class to observe custom events when needed
33
- Event.Handler.prototype.initialize = Event.Handler.prototype.initialize.wrap(
34
- function(init, element, eventName, selector, callback) {
35
- init(element, eventName, selector, callback)
36
- // is the handler being attached to an element that doesn't support this event?
37
- if ( (!submitBubbles && this.eventName == 'submit' && !isForm(this.element)) ||
38
- (!changeBubbles && this.eventName == 'change' && !isInput(this.element)) ) {
39
- // "submit" => "emulated:submit"
40
- this.eventName = 'emulated:' + this.eventName
41
- }
42
- }
43
- )
44
- }
45
-
46
- if (!submitBubbles) {
47
- // discover forms on the page by observing focus events which always bubble
48
- document.on('focusin', 'form', function(focusEvent, form) {
49
- // special handler for the real "submit" event (one-time operation)
50
- if (!form.retrieve('emulated:submit')) {
51
- form.on('submit', function(submitEvent) {
52
- var emulated = form.fire('emulated:submit', submitEvent, true)
53
- // if custom event received preventDefault, cancel the real one too
54
- if (emulated.returnValue === false) submitEvent.preventDefault()
55
- })
56
- form.store('emulated:submit', true)
57
- }
58
- })
59
- }
60
-
61
- if (!changeBubbles) {
62
- // discover form inputs on the page
63
- document.on('focusin', 'input, select, texarea', function(focusEvent, input) {
64
- // special handler for real "change" events
65
- if (!input.retrieve('emulated:change')) {
66
- input.on('change', function(changeEvent) {
67
- input.fire('emulated:change', changeEvent, true)
68
- })
69
- input.store('emulated:change', true)
70
- }
71
- })
72
- }
73
-
74
- function handleRemote(element) {
75
- var method, url, params;
76
-
77
- var event = element.fire("ajax:before");
78
- if (event.stopped) return false;
79
-
80
- if (element.tagName.toLowerCase() === 'form') {
81
- method = element.readAttribute('method') || 'post';
82
- url = element.readAttribute('action');
83
- params = element.serialize();
84
- } else {
85
- method = element.readAttribute('data-method') || 'get';
86
- url = element.readAttribute('href');
87
- params = {};
88
- }
89
-
90
- new Ajax.Request(url, {
91
- method: method,
92
- parameters: params,
93
- evalScripts: true,
94
-
95
- onComplete: function(request) { element.fire("ajax:complete", request); },
96
- onSuccess: function(request) { element.fire("ajax:success", request); },
97
- onFailure: function(request) { element.fire("ajax:failure", request); }
98
- });
99
-
100
- element.fire("ajax:after");
101
- }
102
-
103
- function handleMethod(element) {
104
- var method = element.readAttribute('data-method'),
105
- url = element.readAttribute('href'),
106
- csrf_param = $$('meta[name=csrf-param]')[0],
107
- csrf_token = $$('meta[name=csrf-token]')[0];
108
-
109
- var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
110
- element.parentNode.insert(form);
111
-
112
- if (method !== 'post') {
113
- var field = new Element('input', { type: 'hidden', name: '_method', value: method });
114
- form.insert(field);
115
- }
116
-
117
- if (csrf_param) {
118
- var param = csrf_param.readAttribute('content'),
119
- token = csrf_token.readAttribute('content'),
120
- field = new Element('input', { type: 'hidden', name: param, value: token });
121
- form.insert(field);
122
- }
123
-
124
- form.submit();
125
- }
126
-
127
-
128
- document.on("click", "*[data-confirm]", function(event, element) {
129
- var message = element.readAttribute('data-confirm');
130
- if (!confirm(message)) event.stop();
131
- });
132
-
133
- document.on("click", "a[data-remote]", function(event, element) {
134
- if (event.stopped) return;
135
- handleRemote(element);
136
- event.stop();
137
- });
138
-
139
- document.on("click", "a[data-method]", function(event, element) {
140
- if (event.stopped) return;
141
- handleMethod(element);
142
- event.stop();
143
- });
144
-
145
- document.on("submit", function(event) {
146
- var element = event.findElement(),
147
- message = element.readAttribute('data-confirm');
148
- if (message && !confirm(message)) {
149
- event.stop();
150
- return false;
151
- }
152
-
153
- var inputs = element.select("input[type=submit][data-disable-with]");
154
- inputs.each(function(input) {
155
- input.disabled = true;
156
- input.writeAttribute('data-original-value', input.value);
157
- input.value = input.readAttribute('data-disable-with');
158
- });
159
-
160
- var element = event.findElement("form[data-remote]");
161
- if (element) {
162
- handleRemote(element);
163
- event.stop();
164
- }
165
- });
166
-
167
- document.on("ajax:after", "form", function(event, element) {
168
- var inputs = element.select("input[type=submit][disabled=true][data-disable-with]");
169
- inputs.each(function(input) {
170
- input.value = input.readAttribute('data-original-value');
171
- input.removeAttribute('data-original-value');
172
- input.disabled = false;
173
- });
174
- });
175
-
176
- Ajax.Responders.register({
177
- onCreate: function(request) {
178
- var csrf_meta_tag = $$('meta[name=csrf-token]')[0];
179
-
180
- if (csrf_meta_tag) {
181
- var header = 'X-CSRF-Token',
182
- token = csrf_meta_tag.readAttribute('content');
183
-
184
- if (!request.options.requestHeaders) {
185
- request.options.requestHeaders = {};
186
- }
187
- request.options.requestHeaders[header] = token;
188
- }
189
- }
190
- });
191
- })();
1
+ (function(){function isEventSupported(eventName){var el=document.createElement('div');eventName='on'+eventName;var isSupported=(eventName in el);if(!isSupported){el.setAttribute(eventName,'return;');isSupported=typeof el[eventName]=='function';}
2
+ el=null;return isSupported;}
3
+ function isForm(element){return Object.isElement(element)&&element.nodeName.toUpperCase()=='FORM'}
4
+ function isInput(element){if(Object.isElement(element)){var name=element.nodeName.toUpperCase()
5
+ return name=='INPUT'||name=='SELECT'||name=='TEXTAREA'}
6
+ else return false}
7
+ var submitBubbles=isEventSupported('submit'),changeBubbles=isEventSupported('change')
8
+ if(!submitBubbles||!changeBubbles){Event.Handler.prototype.initialize=Event.Handler.prototype.initialize.wrap(function(init,element,eventName,selector,callback){init(element,eventName,selector,callback)
9
+ if((!submitBubbles&&this.eventName=='submit'&&!isForm(this.element))||(!changeBubbles&&this.eventName=='change'&&!isInput(this.element))){this.eventName='emulated:'+this.eventName}})}
10
+ if(!submitBubbles){document.on('focusin','form',function(focusEvent,form){if(!form.retrieve('emulated:submit')){form.on('submit',function(submitEvent){var emulated=form.fire('emulated:submit',submitEvent,true)
11
+ if(emulated.returnValue===false)submitEvent.preventDefault()})
12
+ form.store('emulated:submit',true)}})}
13
+ if(!changeBubbles){document.on('focusin','input, select, texarea',function(focusEvent,input){if(!input.retrieve('emulated:change')){input.on('change',function(changeEvent){input.fire('emulated:change',changeEvent,true)})
14
+ input.store('emulated:change',true)}})}
15
+ function handleRemote(element){var method,url,params;var event=element.fire("ajax:before");if(event.stopped)return false;if(element.tagName.toLowerCase()==='form'){method=element.readAttribute('method')||'post';url=element.readAttribute('action');params=element.serialize();}else{method=element.readAttribute('data-method')||'get';url=element.readAttribute('href');params={};}
16
+ new Ajax.Request(url,{method:method,parameters:params,evalScripts:true,onComplete:function(request){element.fire("ajax:complete",request);},onSuccess:function(request){element.fire("ajax:success",request);},onFailure:function(request){element.fire("ajax:failure",request);}});element.fire("ajax:after");}
17
+ function handleMethod(element){var method=element.readAttribute('data-method'),url=element.readAttribute('href'),csrf_param=$$('meta[name=csrf-param]')[0],csrf_token=$$('meta[name=csrf-token]')[0];var form=new Element('form',{method:"POST",action:url,style:"display: none;"});element.parentNode.insert(form);if(method!=='post'){var field=new Element('input',{type:'hidden',name:'_method',value:method});form.insert(field);}
18
+ if(csrf_param){var param=csrf_param.readAttribute('content'),token=csrf_token.readAttribute('content'),field=new Element('input',{type:'hidden',name:param,value:token});form.insert(field);}
19
+ form.submit();}
20
+ document.on("click","*[data-confirm]",function(event,element){var message=element.readAttribute('data-confirm');if(!confirm(message))event.stop();});document.on("click","a[data-remote]",function(event,element){if(event.stopped)return;handleRemote(element);event.stop();});document.on("click","a[data-method]",function(event,element){if(event.stopped)return;handleMethod(element);event.stop();});document.on("submit",function(event){var element=event.findElement(),message=element.readAttribute('data-confirm');if(message&&!confirm(message)){event.stop();return false;}
21
+ var inputs=element.select("input[type=submit][data-disable-with]");inputs.each(function(input){input.disabled=true;input.writeAttribute('data-original-value',input.value);input.value=input.readAttribute('data-disable-with');});var element=event.findElement("form[data-remote]");if(element){handleRemote(element);event.stop();}});document.on("ajax:after","form",function(event,element){var inputs=element.select("input[type=submit][disabled=true][data-disable-with]");inputs.each(function(input){input.value=input.readAttribute('data-original-value');input.removeAttribute('data-original-value');input.disabled=false;});});Ajax.Responders.register({onCreate:function(request){var csrf_meta_tag=$$('meta[name=csrf-token]')[0];if(csrf_meta_tag){var header='X-CSRF-Token',token=csrf_meta_tag.readAttribute('content');if(!request.options.requestHeaders){request.options.requestHeaders={};}
22
+ request.options.requestHeaders[header]=token;}}});})();
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blog_logic
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 6
10
- version: 0.7.6
9
+ - 7
10
+ version: 0.7.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bantik
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-30 00:00:00 -05:00
18
+ date: 2011-08-31 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -33,19 +33,17 @@ dependencies:
33
33
  type: :runtime
34
34
  version_requirements: *id001
35
35
  - !ruby/object:Gem::Dependency
36
- name: carrierwave
36
+ name: carrierwave-mongoid
37
37
  prerelease: false
38
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
- - - <
41
+ - - ">="
42
42
  - !ruby/object:Gem::Version
43
- hash: 5
43
+ hash: 3
44
44
  segments:
45
45
  - 0
46
- - 5
47
- - 7
48
- version: 0.5.7
46
+ version: "0"
49
47
  type: :runtime
50
48
  version_requirements: *id002
51
49
  - !ruby/object:Gem::Dependency
@@ -242,7 +240,6 @@ files:
242
240
  - config/environments/development.rb
243
241
  - config/environments/production.rb
244
242
  - config/environments/test.rb
245
- - config/initializers/ckeditor.rb
246
243
  - config/initializers/formats.rb
247
244
  - config/initializers/metric_fu.rb
248
245
  - config/initializers/secret_token.rb
@@ -322,7 +319,6 @@ files:
322
319
  - public/images/menu_icons/blog_on.png
323
320
  - public/images/menu_icons/blog_posts.png
324
321
  - public/images/menu_icons/blog_posts_on.png
325
- - public/javascripts/application.js
326
322
  - public/javascripts/ckeditor/.htaccess
327
323
  - public/javascripts/ckeditor/CHANGES.html
328
324
  - public/javascripts/ckeditor/INSTALL.html
@@ -1,54 +0,0 @@
1
- # Use this hook to configure ckeditor
2
- if Object.const_defined?("Ckeditor")
3
- Ckeditor.setup do |config|
4
- # The file_post_name allows you to set the value name used to post the file.
5
- # This is not related to the file name. The default value is 'data'.
6
- # For maximum compatibility it is recommended that the default value is used.
7
- #config.swf_file_post_name = "data"
8
-
9
- # A text description that is displayed to the user in the File Browser dialog.
10
- #config.swf_file_types_description = "Files"
11
-
12
- # The file_types setting accepts a semi-colon separated list of file extensions
13
- # that are allowed to be selected by the user. Use '*.*' to allow all file types.
14
- #config.swf_file_types = "*.doc;*.wpd;*.pdf;*.swf;*.xls"
15
-
16
- # The file_size_limit setting defines the maximum allowed size of a file to be uploaded.
17
- # This setting accepts a value and unit. Valid units are B, KB, MB and GB.
18
- # If the unit is omitted default is KB. A value of 0 (zero) is interpreted as unlimited.
19
- # Note: This setting only applies to the user's browser. It does not affect any settings or limits on the web server.
20
- #config.swf_file_size_limit = "10 MB"
21
-
22
- # Defines the number of files allowed to be uploaded by SWFUpload.
23
- # This setting also sets the upper bound of the file_queue_limit setting.
24
- # Once the user has uploaded or queued the maximum number of files she will
25
- # no longer be able to queue additional files. The value of 0 (zero) is interpreted as unlimited.
26
- # Only successful uploads (uploads the trigger the uploadSuccess event) are counted toward the upload limit.
27
- # The setStats function can be used to modify the number of successful uploads.
28
- # Note: This value is not tracked across pages and is reset when a page is refreshed.
29
- # File quotas should be managed by the web server.
30
- #config.swf_file_upload_limit = 5
31
-
32
- # The same as for downloads files, only to upload images
33
- #config.swf_image_file_types_description = "Images"
34
- #config.swf_image_file_types = "*.jpg;*.jpeg;*.png;*.gif"
35
- #config.swf_image_file_size_limit = "5 MB"
36
- #config.swf_image_file_upload_limit = 10
37
-
38
- # Path for view all uploaded files
39
- #config.file_manager_uri = "/ckeditor/files"
40
-
41
- # Path for upload files process
42
- #config.file_manager_upload_uri = "/ckeditor/create/file"
43
-
44
- # Path for view all uploaded images
45
- #config.file_manager_image_uri = "/ckeditor/images"
46
-
47
- # Path for upload images process
48
- #config.file_manager_image_upload_uri = "/ckeditor/create/image"
49
-
50
- # Model's names witch processing in ckeditor_controller
51
- #config.file_manager_image_model = "Ckeditor::Picture"
52
- #config.file_manager_file_model = "Ckeditor::AttachmentFile"
53
- end
54
- end
@@ -1,2 +0,0 @@
1
- // Place your application-specific JavaScript functions and classes here
2
- // This file is automatically included by javascript_include_tag :defaults