modeljs 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/app/assets/javascripts/class.js +65 -0
- data/lib/modeljs/version.rb +1 -1
- metadata +2 -1
@@ -0,0 +1,65 @@
|
|
1
|
+
/* Simple JavaScript Inheritance
|
2
|
+
* By John Resig http://ejohn.org/
|
3
|
+
* MIT Licensed.
|
4
|
+
*/
|
5
|
+
// Inspired by base2 and Prototype
|
6
|
+
(function(){
|
7
|
+
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
|
8
|
+
|
9
|
+
// The base Class implementation (does nothing)
|
10
|
+
this.Class = function(){};
|
11
|
+
|
12
|
+
// Create a new Class that inherits from this class
|
13
|
+
Class.extend = function(prop) {
|
14
|
+
var _super = this.prototype;
|
15
|
+
|
16
|
+
// Instantiate a base class (but only create the instance,
|
17
|
+
// don't run the init constructor)
|
18
|
+
initializing = true;
|
19
|
+
var prototype = new this();
|
20
|
+
initializing = false;
|
21
|
+
|
22
|
+
// Copy the properties over onto the new prototype
|
23
|
+
for (var name in prop) {
|
24
|
+
// Check if we're overwriting an existing function
|
25
|
+
prototype[name] = typeof prop[name] == "function" &&
|
26
|
+
typeof _super[name] == "function" && fnTest.test(prop[name]) ?
|
27
|
+
(function(name, fn){
|
28
|
+
return function() {
|
29
|
+
var tmp = this._super;
|
30
|
+
|
31
|
+
// Add a new ._super() method that is the same method
|
32
|
+
// but on the super-class
|
33
|
+
this._super = _super[name];
|
34
|
+
|
35
|
+
// The method only need to be bound temporarily, so we
|
36
|
+
// remove it when we're done executing
|
37
|
+
var ret = fn.apply(this, arguments);
|
38
|
+
this._super = tmp;
|
39
|
+
|
40
|
+
return ret;
|
41
|
+
};
|
42
|
+
})(name, prop[name]) :
|
43
|
+
prop[name];
|
44
|
+
}
|
45
|
+
|
46
|
+
// The dummy class constructor
|
47
|
+
function Class() {
|
48
|
+
// All construction is actually done in the init method
|
49
|
+
if ( !initializing && this.init )
|
50
|
+
this.init.apply(this, arguments);
|
51
|
+
}
|
52
|
+
|
53
|
+
// Populate our constructed prototype object
|
54
|
+
Class.prototype = prototype;
|
55
|
+
|
56
|
+
// Enforce the constructor to be what we expect
|
57
|
+
Class.prototype.constructor = Class;
|
58
|
+
|
59
|
+
// And make this class extendable
|
60
|
+
Class.extend = arguments.callee;
|
61
|
+
|
62
|
+
return Class;
|
63
|
+
};
|
64
|
+
})();
|
65
|
+
|
data/lib/modeljs/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: modeljs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- app/assets/javascripts/attribute/time.js
|
85
85
|
- app/assets/javascripts/attribute/video.js
|
86
86
|
- app/assets/javascripts/attribute.js
|
87
|
+
- app/assets/javascripts/class.js
|
87
88
|
- app/assets/javascripts/form/embedded.js
|
88
89
|
- app/assets/javascripts/form.js
|
89
90
|
- app/assets/javascripts/model.js
|