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 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.