rails_script 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/include_rails_script.js.coffee +2 -33
- data/lib/generators/rails_script/class/templates/javascript.js.coffee +0 -1
- data/lib/generators/rails_script/element/templates/javascript.js.coffee +1 -1
- data/lib/generators/rails_script/install/templates/base.js.coffee +23 -1
- data/lib/generators/rails_script/utility/templates/javascript.js.coffee +0 -1
- data/lib/rails_script/loader_helper.rb +10 -2
- data/lib/rails_script/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d9958511d98ea471627dc977879e6d035c35898
|
4
|
+
data.tar.gz: 25902692ba8bb9c73879b978090a30cc26440668
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bae329972b4ade7e5f3ec70ec9a681b9b06f3c1d3a86c9d39bde356af002715e4a919f973a36c0f089aed29ed19ba1646cf3ec201b5078cec956f3186d483d9
|
7
|
+
data.tar.gz: 26a1d353e5466280a883128165935bd41f7baa25b322625d548a71531d171f70309ceb0faf77533359b357feec44846adfc02b2db52f9716f6237f23e8706159
|
data/README.md
CHANGED
@@ -280,6 +280,10 @@ class App.MyClassName
|
|
280
280
|
|
281
281
|
```
|
282
282
|
|
283
|
+
### Passing Rails Variables
|
284
|
+
|
285
|
+
To pass data from Rails to JavaScript, just define ```@to_javascript```. This is then converted to a JSON object with ```@to_javascript.to_json``` and can be accessed with ```Utility.RailsVars```.
|
286
|
+
|
283
287
|
|
284
288
|
### Events
|
285
289
|
|
@@ -1,40 +1,9 @@
|
|
1
1
|
window.Utility || (window.Utility = {});
|
2
2
|
Utility.RailsVars = #{@to_javascript.nil? ? '{}' : @to_javascript.to_json};
|
3
3
|
|
4
|
-
|
4
|
+
function() {
|
5
5
|
window.$this = new (App.#{ controller_path.split(/\/|_/).map(&:capitalize).join('') } || App.Base)();
|
6
6
|
if (typeof $this.#{ action_name } === 'function') {
|
7
7
|
return $this.#{ action_name }.call();
|
8
8
|
}
|
9
|
-
}
|
10
|
-
|
11
|
-
jQuery(document).on('page:before-change', function() {
|
12
|
-
var element, handler, handlers, type, _i, _len, _ref, _results;
|
13
|
-
_ref = [window, document];
|
14
|
-
_results = [];
|
15
|
-
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
16
|
-
element = _ref[_i];
|
17
|
-
_results.push((function() {
|
18
|
-
var _ref2, _results2;
|
19
|
-
_ref2 = jQuery._data(element, 'events');
|
20
|
-
_results2 = [];
|
21
|
-
for (type in _ref2) {
|
22
|
-
handlers = _ref2[type];
|
23
|
-
_results2.push((function() {
|
24
|
-
var _j, _len2, _results3;
|
25
|
-
_results3 = [];
|
26
|
-
for (_j = 0, _len2 = handlers.length; _j < _len2; _j++) {
|
27
|
-
handler = handlers[_j];
|
28
|
-
if (handler == null) {
|
29
|
-
continue;
|
30
|
-
}
|
31
|
-
_results3.push(handler.namespace === '' ? $(element).off(type, handler.handler) : void 0);
|
32
|
-
}
|
33
|
-
return _results3;
|
34
|
-
})());
|
35
|
-
}
|
36
|
-
return _results2;
|
37
|
-
})());
|
38
|
-
}
|
39
|
-
return _results;
|
40
|
-
});
|
9
|
+
};
|
@@ -2,14 +2,36 @@ window.App ||= {}
|
|
2
2
|
class App.Base
|
3
3
|
|
4
4
|
constructor: ->
|
5
|
+
if (window.jQuery) then @setClearEventHandlers() # clearing application event handlers only possible with jQuery
|
5
6
|
return this
|
6
7
|
|
7
8
|
|
9
|
+
###
|
10
|
+
Run the new action for the create action. Generally the create action will 'render :new' if there was a problem.
|
11
|
+
This prevents doubling the code for each action.
|
12
|
+
###
|
8
13
|
create: ->
|
9
14
|
if typeof $this.new == 'function'
|
10
15
|
return $this.new()
|
11
16
|
|
12
17
|
|
18
|
+
###
|
19
|
+
Run the edit action for the update action. Generally the update action will 'render :edit' if there was a problem.
|
20
|
+
This prevents doubling the code for each action.
|
21
|
+
###
|
13
22
|
update: ->
|
14
23
|
if typeof $this.edit == 'function'
|
15
|
-
return $this.edit()
|
24
|
+
return $this.edit()
|
25
|
+
|
26
|
+
|
27
|
+
###
|
28
|
+
Clear event handlers with a blank namespace. This will prevent window and document event handlers from stacking
|
29
|
+
when each new page is fetched. Adding a namespace to your events will prevent them from being removed between page
|
30
|
+
loads, i.e. "$(window).on 'scroll.app', myHandler"
|
31
|
+
###
|
32
|
+
clearEventHandlers: ->
|
33
|
+
jQuery(document).on 'page:before-change', ->
|
34
|
+
for element in [window, document]
|
35
|
+
for event, handlers in jQuery._data(element, 'events')
|
36
|
+
for handler in handlers
|
37
|
+
if handler.namespace == '' then $(element).off event, handler.handler
|
@@ -3,8 +3,16 @@ module RailsScript
|
|
3
3
|
|
4
4
|
def include_rails_script
|
5
5
|
javascript_tag <<-RUBY
|
6
|
-
|
7
|
-
|
6
|
+
window.Utility || (window.Utility = {});
|
7
|
+
Utility.RailsVars = #{@to_javascript.nil? ? '{}' : @to_javascript.to_json};
|
8
|
+
|
9
|
+
(function() {
|
10
|
+
window.$this = new (App.#{ controller_path.split(/\/|_/).map(&:capitalize).join('') } || App.Base)();
|
11
|
+
if (typeof $this.#{ action_name } === 'function') {
|
12
|
+
return $this.#{ action_name }.call();
|
13
|
+
}
|
14
|
+
})();
|
15
|
+
RUBY
|
8
16
|
end
|
9
17
|
|
10
18
|
end
|
data/lib/rails_script/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_script
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Pheasey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|