jquerypp-rails 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/.document +5 -0
  2. data/.gitignore +7 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +24 -0
  6. data/Rakefile +2 -0
  7. data/jquerypp-rails.gemspec +20 -0
  8. data/lib/jquerypp/generators/jquerypp/install/install_generator.rb +49 -0
  9. data/lib/jquerypp/rails/engine.rb +8 -0
  10. data/lib/jquerypp/rails/version.rb +6 -0
  11. data/lib/jquerypp/rails.rb +8 -0
  12. data/lib/jquerypp-rails.rb +1 -0
  13. data/vendor/assets/javascripts/jquerypp.js +5419 -0
  14. data/vendor/assets/javascripts/lib/jquery.animate.js +326 -0
  15. data/vendor/assets/javascripts/lib/jquery.compare.js +75 -0
  16. data/vendor/assets/javascripts/lib/jquery.cookie.js +118 -0
  17. data/vendor/assets/javascripts/lib/jquery.dimensions.js +191 -0
  18. data/vendor/assets/javascripts/lib/jquery.event.default.js +115 -0
  19. data/vendor/assets/javascripts/lib/jquery.event.destroyed.js +23 -0
  20. data/vendor/assets/javascripts/lib/jquery.event.drag.js +727 -0
  21. data/vendor/assets/javascripts/lib/jquery.event.drop.js +457 -0
  22. data/vendor/assets/javascripts/lib/jquery.event.fastfix.js +95 -0
  23. data/vendor/assets/javascripts/lib/jquery.event.hover.js +266 -0
  24. data/vendor/assets/javascripts/lib/jquery.event.key.js +156 -0
  25. data/vendor/assets/javascripts/lib/jquery.event.livehack.js +174 -0
  26. data/vendor/assets/javascripts/lib/jquery.event.pause.js +92 -0
  27. data/vendor/assets/javascripts/lib/jquery.event.resize.js +47 -0
  28. data/vendor/assets/javascripts/lib/jquery.event.swipe.js +133 -0
  29. data/vendor/assets/javascripts/lib/jquery.fills.js +249 -0
  30. data/vendor/assets/javascripts/lib/jquery.form_params.js +167 -0
  31. data/vendor/assets/javascripts/lib/jquery.lang.json.js +196 -0
  32. data/vendor/assets/javascripts/lib/jquery.lang.vector.js +214 -0
  33. data/vendor/assets/javascripts/lib/jquery.range.js +861 -0
  34. data/vendor/assets/javascripts/lib/jquery.selection.js +232 -0
  35. data/vendor/assets/javascripts/lib/jquery.styles.js +103 -0
  36. data/vendor/assets/javascripts/lib/jquery.within.js +94 -0
  37. metadata +81 -0
@@ -0,0 +1,196 @@
1
+ // - jquery.lang.json.js
2
+ (function($){
3
+ /**
4
+ * @page jQuery.toJSON jQuery.toJSON
5
+ * @parent jquerymx.lang
6
+ *
7
+ * jQuery.toJSON( json-serializble )
8
+ *
9
+ * Converts the given argument into a JSON respresentation.
10
+ *
11
+ * If an object has a "toJSON" function, that will
12
+ * be used to get the representation.
13
+ * Non-integer/string keys are skipped in the
14
+ * object, as are keys that point to a function.
15
+ *
16
+ * json-serializble:
17
+ * The *thing* to be converted.
18
+ */
19
+ $.toJSON = function(o, replacer, space, recurse)
20
+ {
21
+ if (typeof(JSON) == 'object' && JSON.stringify)
22
+ return JSON.stringify(o, replacer, space);
23
+
24
+ if (!recurse && $.isFunction(replacer))
25
+ o = replacer("", o);
26
+
27
+ if (typeof space == "number")
28
+ space = " ".substring(0, space);
29
+ space = (typeof space == "string") ? space.substring(0, 10) : "";
30
+
31
+ var type = typeof(o);
32
+
33
+ if (o === null)
34
+ return "null";
35
+
36
+ if (type == "undefined" || type == "function")
37
+ return undefined;
38
+
39
+ if (type == "number" || type == "boolean")
40
+ return o + "";
41
+
42
+ if (type == "string")
43
+ return $.quoteString(o);
44
+
45
+ if (type == 'object')
46
+ {
47
+ if (typeof o.toJSON == "function")
48
+ return $.toJSON( o.toJSON(), replacer, space, true );
49
+
50
+ if (o.constructor === Date)
51
+ {
52
+ var month = o.getUTCMonth() + 1;
53
+ if (month < 10) month = '0' + month;
54
+
55
+ var day = o.getUTCDate();
56
+ if (day < 10) day = '0' + day;
57
+
58
+ var year = o.getUTCFullYear();
59
+
60
+ var hours = o.getUTCHours();
61
+ if (hours < 10) hours = '0' + hours;
62
+
63
+ var minutes = o.getUTCMinutes();
64
+ if (minutes < 10) minutes = '0' + minutes;
65
+
66
+ var seconds = o.getUTCSeconds();
67
+ if (seconds < 10) seconds = '0' + seconds;
68
+
69
+ var milli = o.getUTCMilliseconds();
70
+ if (milli < 100) milli = '0' + milli;
71
+ if (milli < 10) milli = '0' + milli;
72
+
73
+ return '"' + year + '-' + month + '-' + day + 'T' +
74
+ hours + ':' + minutes + ':' + seconds +
75
+ '.' + milli + 'Z"';
76
+ }
77
+
78
+ var process = ($.isFunction(replacer)) ?
79
+ function (k, v) { return replacer(k, v); } :
80
+ function (k, v) { return v; },
81
+ nl = (space) ? "\n" : "",
82
+ sp = (space) ? " " : "";
83
+
84
+ if (o.constructor === Array)
85
+ {
86
+ var ret = [];
87
+ for (var i = 0; i < o.length; i++)
88
+ ret.push(( $.toJSON( process(i, o[i]), replacer, space, true ) || "null" ).replace(/^/gm, space));
89
+
90
+ return "[" + nl + ret.join("," + nl) + nl + "]";
91
+ }
92
+
93
+ var pairs = [], proplist;
94
+ if ($.isArray(replacer)) {
95
+ proplist = $.map(replacer, function (v) {
96
+ return (typeof v == "string" || typeof v == "number") ?
97
+ v + "" :
98
+ null;
99
+ });
100
+ }
101
+ for (var k in o) {
102
+ var name, val, type = typeof k;
103
+
104
+ if (proplist && $.inArray(k + "", proplist) == -1)
105
+ continue;
106
+
107
+ if (type == "number")
108
+ name = '"' + k + '"';
109
+ else if (type == "string")
110
+ name = $.quoteString(k);
111
+ else
112
+ continue; //skip non-string or number keys
113
+
114
+ val = $.toJSON( process(k, o[k]), replacer, space, true );
115
+
116
+ if (typeof val == "undefined")
117
+ continue; //skip pairs where the value is a function.
118
+
119
+ pairs.push((name + ":" + sp + val).replace(/^/gm, space));
120
+ }
121
+
122
+ return "{" + nl + pairs.join("," + nl) + nl + "}";
123
+ }
124
+ };
125
+
126
+ /**
127
+ * @function jQuery.evalJSON
128
+ * Evaluates a given piece of json source.
129
+ **/
130
+ $.evalJSON = function(src)
131
+ {
132
+ if (typeof(JSON) == 'object' && JSON.parse)
133
+ return JSON.parse(src);
134
+ return eval("(" + src + ")");
135
+ };
136
+
137
+ /**
138
+ * @function jQuery.secureEvalJSON
139
+ * Evals JSON in a way that is *more* secure.
140
+ **/
141
+ $.secureEvalJSON = function(src)
142
+ {
143
+ if (typeof(JSON) == 'object' && JSON.parse)
144
+ return JSON.parse(src);
145
+
146
+ var filtered = src;
147
+ filtered = filtered.replace(/\\["\\\/bfnrtu]/g, '@');
148
+ filtered = filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
149
+ filtered = filtered.replace(/(?:^|:|,)(?:\s*\[)+/g, '');
150
+
151
+ if (/^[\],:{}\s]*$/.test(filtered))
152
+ return eval("(" + src + ")");
153
+ else
154
+ throw new SyntaxError("Error parsing JSON, source is not valid.");
155
+ };
156
+
157
+ /**
158
+ * @function jQuery.quoteString
159
+ *
160
+ * Returns a string-repr of a string, escaping quotes intelligently.
161
+ * Mostly a support function for toJSON.
162
+ *
163
+ * Examples:
164
+ *
165
+ * jQuery.quoteString("apple") //-> "apple"
166
+ *
167
+ * jQuery.quoteString('"Where are we going?", she asked.')
168
+ * // -> "\"Where are we going?\", she asked."
169
+ **/
170
+ $.quoteString = function(string)
171
+ {
172
+ if (string.match(_escapeable))
173
+ {
174
+ return '"' + string.replace(_escapeable, function (a)
175
+ {
176
+ var c = _meta[a];
177
+ if (typeof c === 'string') return c;
178
+ c = a.charCodeAt();
179
+ return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
180
+ }) + '"';
181
+ }
182
+ return '"' + string + '"';
183
+ };
184
+
185
+ var _escapeable = /["\\\x00-\x1f\x7f-\x9f]/g;
186
+
187
+ var _meta = {
188
+ '\b': '\\b',
189
+ '\t': '\\t',
190
+ '\n': '\\n',
191
+ '\f': '\\f',
192
+ '\r': '\\r',
193
+ '"' : '\\"',
194
+ '\\': '\\\\'
195
+ };
196
+ })(jQuery)
@@ -0,0 +1,214 @@
1
+ // - jquery.lang.vector.js
2
+ (function($){
3
+ var getSetZero = function(v){ return v !== undefined ? (this.array[0] = v) : this.array[0] },
4
+ getSetOne = function(v){ return v !== undefined ? (this.array[1] = v) : this.array[1]};
5
+
6
+ /**
7
+ * @class jQuery.Vector
8
+ * @parent jquerypp
9
+ *
10
+ * `jQuery.Vector` represents a multi dimensional vector with shorthand methods for
11
+ * working with two dimensions.
12
+ *
13
+ * It is mainly used in [jQuery.event.drag drag] & [jQuery.event.drop drop] events.
14
+ *
15
+ * @constructor creates a new vector instance from the arguments. Example:
16
+ *
17
+ * new jQuery.Vector(1,2)
18
+ */
19
+ $.Vector = function(arr) {
20
+ var array = $.isArray(arr) ? arr : $.makeArray(arguments);
21
+ this.update(array);
22
+ };
23
+ $.Vector.prototype =
24
+ /* @Prototype*/
25
+ {
26
+ /**
27
+ * Applys the function to every item in the vector and returns a new vector.
28
+ *
29
+ * @param {Function} f The function to apply
30
+ * @return {jQuery.Vector} A new $.Vector instance
31
+ */
32
+ app: function( f ) {
33
+ var i, newArr = [];
34
+
35
+ for ( i = 0; i < this.array.length; i++ ) {
36
+ newArr.push(f(this.array[i], i));
37
+ }
38
+ return new $.Vector(newArr);
39
+ },
40
+ /**
41
+ * Adds two vectors together and returns a new instance. Example:
42
+ *
43
+ * new $.Vector(1,2).plus(2,3) //-> (3, 5)
44
+ * new $.Vector(3,5).plus(new Vector(4,5)) //-> (7, 10)
45
+ *
46
+ * @return {$.Vector}
47
+ */
48
+ plus: function() {
49
+ var i, args = arguments[0] instanceof $.Vector ? arguments[0].array : $.makeArray(arguments),
50
+ arr = this.array.slice(0),
51
+ vec = new $.Vector();
52
+ for ( i = 0; i < args.length; i++ ) {
53
+ arr[i] = (arr[i] ? arr[i] : 0) + args[i];
54
+ }
55
+ return vec.update(arr);
56
+ },
57
+ /**
58
+ * Subtract one vector from another and returns a new instance. Example:
59
+ *
60
+ * new $.Vector(4, 5).minus(2, 1) //-> (2, 4)
61
+ *
62
+ * @return {jQuery.Vector}
63
+ */
64
+ minus: function() {
65
+ var i, args = arguments[0] instanceof $.Vector ? arguments[0].array : $.makeArray(arguments),
66
+ arr = this.array.slice(0),
67
+ vec = new $.Vector();
68
+ for ( i = 0; i < args.length; i++ ) {
69
+ arr[i] = (arr[i] ? arr[i] : 0) - args[i];
70
+ }
71
+ return vec.update(arr);
72
+ },
73
+ /**
74
+ * Returns the current vector if it is equal to the vector passed in.
75
+ *
76
+ * `null` if otherwise.
77
+ *
78
+ * @return {jQuery.Vector}
79
+ */
80
+ equals: function() {
81
+ var i, args = arguments[0] instanceof $.Vector ? arguments[0].array : $.makeArray(arguments),
82
+ arr = this.array.slice(0),
83
+ vec = new $.Vector();
84
+ for ( i = 0; i < args.length; i++ ) {
85
+ if ( arr[i] != args[i] ) {
86
+ return null;
87
+ }
88
+ }
89
+ return vec.update(arr);
90
+ },
91
+ /**
92
+ * Returns the first value of the vector.
93
+ * You can also access the same value through the following aliases the
94
+ * [jQuery.Vector.prototype.left vector.left()] and [jQuery.Vector.prototype.left vector.width()]
95
+ * aliases.
96
+ *
97
+ * For example:
98
+ *
99
+ * var v = new $.Vector(2, 5);
100
+ * v.x() //-> 2
101
+ * v.left() //-> 2
102
+ * v.width() //-> 2
103
+ *
104
+ * @return {Number} The first value of the vector
105
+ */
106
+ x: getSetZero,
107
+ /**
108
+ * @hide
109
+ * Alias for [jQuery.Vector.prototype.x].
110
+ *
111
+ * @return {Number}
112
+ */
113
+ left: getSetZero,
114
+ /**
115
+ * @hide
116
+ * Alias for [jQuery.Vector.prototype.x].
117
+ *
118
+ * @return {Number}
119
+ */
120
+ width: getSetZero,
121
+ /**
122
+ * Returns the second value of the vector.
123
+ * You can also access the same value through the [jQuery.Vector.prototype.top vector.top()]
124
+ * and [jQuery.Vector.prototype.height vector.height()] aliases.
125
+ *
126
+ * For example:
127
+ *
128
+ * var v = new $.Vector(2, 5);
129
+ * v.y() //-> 5
130
+ * v.top() //-> 5
131
+ * v.height() //-> 5
132
+ *
133
+ * @return {Number} The first value of the vector
134
+ */
135
+ y: getSetOne,
136
+ /**
137
+ * @hide
138
+ * Alias for [jQuery.Vector.prototype.y].
139
+ *
140
+ * @return {Number}
141
+ */
142
+ top: getSetOne,
143
+ /**
144
+ * @hide
145
+ * Alias for [jQuery.Vector.prototype.y].
146
+ *
147
+ * @return {Number}
148
+ */
149
+ height: getSetOne,
150
+ /**
151
+ * Returns a string representation of the vector in the form of (x,y,...)
152
+ *
153
+ * var v = new $.Vector(4, 6, 1, 3);
154
+ * v.toString() //-> (4, 6, 1, 3)
155
+ *
156
+ * @return {String}
157
+ */
158
+ toString: function() {
159
+ return "(" + this.array.join(', ') + ")";
160
+ },
161
+ /**
162
+ * Replaces the vectors contents
163
+ *
164
+ * var v = new $.Vector(2, 3);
165
+ *
166
+ * @param {Object} array
167
+ */
168
+ update: function( array ) {
169
+ var i;
170
+ if ( this.array ) {
171
+ for ( i = 0; i < this.array.length; i++ ) {
172
+ delete this.array[i];
173
+ }
174
+ }
175
+ this.array = array;
176
+ for ( i = 0; i < array.length; i++ ) {
177
+ this[i] = this.array[i];
178
+ }
179
+ return this;
180
+ }
181
+ };
182
+
183
+ $.Event.prototype.vector = function() {
184
+ var
185
+ // Get the first touch element for touch events
186
+ touches = "ontouchend" in document && this.originalEvent.touches.length ? this.originalEvent.touches[0] : this;
187
+ if ( this.originalEvent.synthetic ) {
188
+ var doc = document.documentElement,
189
+ body = document.body;
190
+ return new $.Vector(touches.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0),
191
+ touches.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0));
192
+ } else {
193
+ return new $.Vector(touches.pageX, touches.pageY);
194
+ }
195
+ };
196
+
197
+ $.fn.offsetv = function() {
198
+ if ( this[0] == window ) {
199
+ return new $.Vector(window.pageXOffset ? window.pageXOffset : document.documentElement.scrollLeft, window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop);
200
+ } else {
201
+ var offset = this.offset();
202
+ return new $.Vector(offset.left, offset.top);
203
+ }
204
+ };
205
+
206
+ $.fn.dimensionsv = function( which ) {
207
+ if ( this[0] == window || !which ) {
208
+ return new $.Vector(this.width(), this.height());
209
+ }
210
+ else {
211
+ return new $.Vector(this[which + "Width"](), this[which + "Height"]());
212
+ }
213
+ };
214
+ })(jQuery)