javascripto-rails 0.0.2 → 0.0.3
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.
- data/Rakefile +1 -1
- data/doc/CHANGELOG +2 -0
- data/lib/generators/javascripto/install/USAGE +5 -0
- data/lib/generators/javascripto/install/install_generator.rb +14 -0
- data/lib/generators/javascripto/install/templates/config/javascripto.yml +1 -0
- data/lib/generators/javascripto/install/templates/public/javascripts/config.js +8 -0
- data/lib/generators/javascripto/install/templates/public/javascripts/rails.js +139 -0
- data/lib/generators/javascripto/install/templates/public/javascripts/vendor/jquery/jquery.js +1 -0
- data/lib/javascripto-rails/version.rb +1 -1
- metadata +11 -16
data/Rakefile
CHANGED
data/doc/CHANGELOG
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
module Javascripto
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < ::Rails::Generators::Base
|
4
|
+
source_root ::File.expand_path("../templates", __FILE__)
|
5
|
+
|
6
|
+
def generate
|
7
|
+
copy_file 'config/javascripto.yml', 'config/javascripto.yml'
|
8
|
+
directory 'public/javascripts'
|
9
|
+
empty_directory 'public/javascripts/app'
|
10
|
+
empty_directory 'public/javascripts/lib'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
packages: []
|
@@ -0,0 +1,139 @@
|
|
1
|
+
// require jquery
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Unobtrusive scripting adapter for jQuery
|
5
|
+
*
|
6
|
+
* Requires jQuery 1.4.3 or later.
|
7
|
+
* https://github.com/rails/jquery-ujs
|
8
|
+
*/
|
9
|
+
|
10
|
+
(function($) {
|
11
|
+
// Triggers an event on an element and returns the event result
|
12
|
+
function fire(obj, name, data) {
|
13
|
+
var event = new $.Event(name);
|
14
|
+
obj.trigger(event, data);
|
15
|
+
return event.result !== false;
|
16
|
+
}
|
17
|
+
|
18
|
+
// Submits "remote" forms and links with ajax
|
19
|
+
function handleRemote(element) {
|
20
|
+
var method, url, data,
|
21
|
+
dataType = element.attr('data-type') || ($.ajaxSettings && $.ajaxSettings.dataType);
|
22
|
+
|
23
|
+
if (element.is('form')) {
|
24
|
+
method = element.attr('method');
|
25
|
+
url = element.attr('action');
|
26
|
+
data = element.serializeArray();
|
27
|
+
// memoized value from clicked submit button
|
28
|
+
var button = element.data('ujs:submit-button');
|
29
|
+
if (button) {
|
30
|
+
data.push(button);
|
31
|
+
element.data('ujs:submit-button', null);
|
32
|
+
}
|
33
|
+
} else {
|
34
|
+
method = element.attr('data-method');
|
35
|
+
url = element.attr('href');
|
36
|
+
data = null;
|
37
|
+
}
|
38
|
+
|
39
|
+
$.ajax({
|
40
|
+
url: url, type: method || 'GET', data: data, dataType: dataType,
|
41
|
+
// stopping the "ajax:beforeSend" event will cancel the ajax request
|
42
|
+
beforeSend: function(xhr, settings) {
|
43
|
+
if (settings.dataType === undefined) {
|
44
|
+
xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
|
45
|
+
}
|
46
|
+
return fire(element, 'ajax:beforeSend', [xhr, settings]);
|
47
|
+
},
|
48
|
+
success: function(data, status, xhr) {
|
49
|
+
element.trigger('ajax:success', [data, status, xhr]);
|
50
|
+
},
|
51
|
+
complete: function(xhr, status) {
|
52
|
+
element.trigger('ajax:complete', [xhr, status]);
|
53
|
+
},
|
54
|
+
error: function(xhr, status, error) {
|
55
|
+
element.trigger('ajax:error', [xhr, status, error]);
|
56
|
+
}
|
57
|
+
});
|
58
|
+
}
|
59
|
+
|
60
|
+
// Handles "data-method" on links such as:
|
61
|
+
// <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
|
62
|
+
function handleMethod(link) {
|
63
|
+
var href = link.attr('href'),
|
64
|
+
method = link.attr('data-method'),
|
65
|
+
csrf_token = $('meta[name=csrf-token]').attr('content'),
|
66
|
+
csrf_param = $('meta[name=csrf-param]').attr('content'),
|
67
|
+
form = $('<form method="post" action="' + href + '"></form>'),
|
68
|
+
metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
|
69
|
+
|
70
|
+
if (csrf_param !== undefined && csrf_token !== undefined) {
|
71
|
+
metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
|
72
|
+
}
|
73
|
+
|
74
|
+
form.hide().append(metadata_input).appendTo('body');
|
75
|
+
form.submit();
|
76
|
+
}
|
77
|
+
|
78
|
+
function disableFormElements(form) {
|
79
|
+
form.find('input[data-disable-with]').each(function() {
|
80
|
+
var input = $(this);
|
81
|
+
input.data('ujs:enable-with', input.val())
|
82
|
+
.val(input.attr('data-disable-with'))
|
83
|
+
.attr('disabled', 'disabled');
|
84
|
+
});
|
85
|
+
}
|
86
|
+
|
87
|
+
function enableFormElements(form) {
|
88
|
+
form.find('input[data-disable-with]').each(function() {
|
89
|
+
var input = $(this);
|
90
|
+
input.val(input.data('ujs:enable-with')).removeAttr('disabled');
|
91
|
+
});
|
92
|
+
}
|
93
|
+
|
94
|
+
function allowAction(element) {
|
95
|
+
var message = element.attr('data-confirm');
|
96
|
+
return !message || (fire(element, 'confirm') && confirm(message));
|
97
|
+
}
|
98
|
+
|
99
|
+
$('a[data-confirm], a[data-method], a[data-remote]').live('click.rails', function(e) {
|
100
|
+
var link = $(this);
|
101
|
+
if (!allowAction(link)) return false;
|
102
|
+
|
103
|
+
if (link.attr('data-remote')) {
|
104
|
+
handleRemote(link);
|
105
|
+
return false;
|
106
|
+
} else if (link.attr('data-method')) {
|
107
|
+
handleMethod(link);
|
108
|
+
return false;
|
109
|
+
}
|
110
|
+
});
|
111
|
+
|
112
|
+
$('form').live('submit.rails', function(e) {
|
113
|
+
var form = $(this);
|
114
|
+
if (!allowAction(form)) return false;
|
115
|
+
|
116
|
+
if (form.attr('data-remote')) {
|
117
|
+
handleRemote(form);
|
118
|
+
return false;
|
119
|
+
} else {
|
120
|
+
disableFormElements(form);
|
121
|
+
}
|
122
|
+
});
|
123
|
+
|
124
|
+
$('form input[type=submit], form button[type=submit], form button:not([type])').live('click.rails', function() {
|
125
|
+
var button = $(this);
|
126
|
+
if (!allowAction(button)) return false;
|
127
|
+
// register the pressed submit button
|
128
|
+
var name = button.attr('name'), data = name ? {name:name, value:button.val()} : null;
|
129
|
+
button.closest('form').data('ujs:submit-button', data);
|
130
|
+
});
|
131
|
+
|
132
|
+
$('form').live('ajax:beforeSend.rails', function(event) {
|
133
|
+
if (this == event.target) disableFormElements($(this));
|
134
|
+
});
|
135
|
+
|
136
|
+
$('form').live('ajax:complete.rails', function(event) {
|
137
|
+
if (this == event.target) enableFormElements($(this));
|
138
|
+
});
|
139
|
+
})( jQuery );
|
@@ -0,0 +1 @@
|
|
1
|
+
// use_remote_package https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: javascripto-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
version: 0.0.2
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.3
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Blake Taylor
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
13
|
+
date: 2011-05-17 00:00:00 -04:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -25,10 +21,6 @@ dependencies:
|
|
25
21
|
requirements:
|
26
22
|
- - ">="
|
27
23
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 0
|
30
|
-
- 0
|
31
|
-
- 1
|
32
24
|
version: 0.0.1
|
33
25
|
type: :runtime
|
34
26
|
version_requirements: *id001
|
@@ -46,7 +38,14 @@ files:
|
|
46
38
|
- Gemfile
|
47
39
|
- README.md
|
48
40
|
- Rakefile
|
41
|
+
- doc/CHANGELOG
|
49
42
|
- javascripto-rails.gemspec
|
43
|
+
- lib/generators/javascripto/install/USAGE
|
44
|
+
- lib/generators/javascripto/install/install_generator.rb
|
45
|
+
- lib/generators/javascripto/install/templates/config/javascripto.yml
|
46
|
+
- lib/generators/javascripto/install/templates/public/javascripts/config.js
|
47
|
+
- lib/generators/javascripto/install/templates/public/javascripts/rails.js
|
48
|
+
- lib/generators/javascripto/install/templates/public/javascripts/vendor/jquery/jquery.js
|
50
49
|
- lib/javascripto-rails.rb
|
51
50
|
- lib/javascripto-rails/javascripto_helpers.rb
|
52
51
|
- lib/javascripto-rails/version.rb
|
@@ -64,21 +63,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
64
63
|
requirements:
|
65
64
|
- - ">="
|
66
65
|
- !ruby/object:Gem::Version
|
67
|
-
segments:
|
68
|
-
- 0
|
69
66
|
version: "0"
|
70
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
68
|
none: false
|
72
69
|
requirements:
|
73
70
|
- - ">="
|
74
71
|
- !ruby/object:Gem::Version
|
75
|
-
segments:
|
76
|
-
- 0
|
77
72
|
version: "0"
|
78
73
|
requirements: []
|
79
74
|
|
80
75
|
rubyforge_project: javascripto-rails
|
81
|
-
rubygems_version: 1.
|
76
|
+
rubygems_version: 1.5.2
|
82
77
|
signing_key:
|
83
78
|
specification_version: 3
|
84
79
|
summary: Rails plugin gem for Javascripto Client-side Application Framework.
|