javascripto-rails 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ Bundler::GemHelper.install_tasks
3
3
  module Bundler
4
4
  class GemHelper
5
5
  def version_tag
6
- "javascripto-rails v#{version}"
6
+ "javascripto-rails-v#{version}"
7
7
  end
8
8
  end
9
9
  end
data/doc/CHANGELOG ADDED
@@ -0,0 +1,2 @@
1
+ VERSION 0.0.3
2
+ * Add rails generator
@@ -0,0 +1,5 @@
1
+ Description:
2
+ Initialize Javascripto for your application.
3
+
4
+ Examples:
5
+ `script/rails generate javascripto:rails`
@@ -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,8 @@
1
+ // require jquery
2
+ // require rails
3
+
4
+ app = {
5
+ config: {
6
+ // You can put front-end configuration here.
7
+ }
8
+ };
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Javascripto
2
2
  module Rails
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
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: false
5
- segments:
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-01-20 00:00:00 -05:00
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.3.7
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.