jointjs 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/Rakefile +2 -3
- data/{ethereal.gemspec → jointjs.gemspec} +2 -2
- data/lib/jointjs.rb +5 -0
- data/lib/jointjs/app/assets/javascripts/joint.js.coffee +12 -0
- data/lib/jointjs/app/assets/javascripts/joint/base.js.coffee +18 -0
- data/lib/{ethereal/app/assets/javascripts/ethereal/god.js.coffee → jointjs/app/assets/javascripts/joint/creator.js.coffee} +8 -13
- data/lib/{ethereal/app/assets/javascripts/ethereal → jointjs/app/assets/javascripts/joint}/ext.js.coffee +0 -0
- data/lib/jointjs/app/assets/javascripts/joint/watcher.js.coffee +49 -0
- data/lib/jointjs/app/assets/javascripts/joint/xhr.js.coffee +110 -0
- data/lib/{ethereal → jointjs}/app/views/layouts/application.js.erb +0 -0
- data/lib/{ethereal → jointjs}/railtie.rb +2 -2
- data/lib/jointjs/version.rb +3 -0
- data/test/Gemfile +27 -0
- data/test/Gemfile.lock +164 -0
- data/test/README.rdoc +28 -0
- data/test/Rakefile +6 -0
- data/test/app/assets/javascripts/application.js +4 -0
- data/test/app/assets/javascripts/item.js.coffee +2 -0
- data/test/app/assets/javascripts/list.js.coffee +6 -0
- data/test/app/assets/javascripts/tests/instances.js.coffee +17 -0
- data/test/app/assets/javascripts/tests/xhr.js.coffee +20 -0
- data/test/app/controllers/todos_controller.rb +18 -0
- data/test/app/models/todo.rb +2 -0
- data/test/app/views/layouts/application.html.erb +16 -0
- data/test/app/views/todos/_todo.html.erb +1 -0
- data/test/app/views/todos/create.js.erb +1 -0
- data/test/app/views/todos/index.html.erb +11 -0
- data/test/bin/bundle +3 -0
- data/test/bin/rails +8 -0
- data/test/bin/rake +8 -0
- data/test/bin/setup +29 -0
- data/test/bin/spring +18 -0
- data/test/config.ru +4 -0
- data/test/config/application.rb +26 -0
- data/test/config/boot.rb +3 -0
- data/test/config/database.yml +8 -2
- data/test/config/environment.rb +5 -0
- data/test/config/environments/development.rb +41 -0
- data/test/config/environments/production.rb +79 -0
- data/test/config/environments/test.rb +42 -0
- data/test/config/initializers/assets.rb +11 -0
- data/test/config/initializers/backtrace_silencers.rb +7 -0
- data/test/config/initializers/cookies_serializer.rb +3 -0
- data/test/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/config/initializers/inflections.rb +16 -0
- data/test/config/initializers/mime_types.rb +4 -0
- data/test/config/initializers/session_store.rb +3 -0
- data/test/config/initializers/wrap_parameters.rb +14 -0
- data/test/config/locales/en.yml +23 -0
- data/test/config/routes.rb +4 -0
- data/test/config/secrets.yml +2 -0
- data/test/db/joint_test +0 -0
- data/test/db/migrate/20150106151240_create_todos.rb +9 -0
- data/test/db/schema.rb +22 -0
- data/test/db/seeds.rb +1 -0
- metadata +97 -28
- data/lib/ethereal.rb +0 -5
- data/lib/ethereal/app/assets/javascripts/ethereal.js.coffee +0 -6
- data/lib/ethereal/app/assets/javascripts/ethereal/base.js.coffee +0 -51
- data/lib/ethereal/app/assets/javascripts/ethereal/model.js.coffee +0 -8
- data/lib/ethereal/app/assets/javascripts/ethereal/watcher.js.coffee +0 -50
- data/lib/ethereal/app/assets/javascripts/ethereal/xhr.js.coffee +0 -34
- data/lib/ethereal/version.rb +0 -3
- data/test/application.rb +0 -11
- data/test/js/base.js +0 -33
- data/test/js/god.js +0 -67
- data/test/js/list.js +0 -21
- data/test/js/models.js +0 -23
- data/test/js/watcher.js +0 -110
- data/test/test_helper.rb +0 -15
data/lib/ethereal/version.rb
DELETED
data/test/application.rb
DELETED
data/test/js/base.js
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
// Generated by CoffeeScript 1.6.3
|
2
|
-
(function() {
|
3
|
-
var listen;
|
4
|
-
|
5
|
-
this.Shiny = {
|
6
|
-
attributeName: 'as'
|
7
|
-
};
|
8
|
-
|
9
|
-
this.Shiny.isDOM = function(el) {
|
10
|
-
return el instanceof HTMLDocument || el instanceof HTMLElement;
|
11
|
-
};
|
12
|
-
|
13
|
-
listen = function(e) {
|
14
|
-
if (e.type && e.type === 'DOMContentLoaded') {
|
15
|
-
document.removeEventListener('DOMContentLoaded', listen);
|
16
|
-
}
|
17
|
-
Shiny.Watcher(document, {
|
18
|
-
attributes: true,
|
19
|
-
subtree: true,
|
20
|
-
childList: true,
|
21
|
-
attributeFilter: [Shiny.attributeName],
|
22
|
-
characterData: true
|
23
|
-
});
|
24
|
-
return Shiny.Watcher().inspect(document.body);
|
25
|
-
};
|
26
|
-
|
27
|
-
if (document.readyState === 'complete') {
|
28
|
-
listen();
|
29
|
-
} else {
|
30
|
-
document.addEventListener('DOMContentLoaded', listen);
|
31
|
-
}
|
32
|
-
|
33
|
-
}).call(this);
|
data/test/js/god.js
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
// Generated by CoffeeScript 1.6.3
|
2
|
-
(function() {
|
3
|
-
var God,
|
4
|
-
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
|
5
|
-
|
6
|
-
God = (function() {
|
7
|
-
function God() {
|
8
|
-
this.modelExists = __bind(this.modelExists, this);
|
9
|
-
this.destroy = __bind(this.destroy, this);
|
10
|
-
this.create = __bind(this.create, this);
|
11
|
-
this.update = __bind(this.update, this);
|
12
|
-
}
|
13
|
-
|
14
|
-
God.prototype.update = function(el) {
|
15
|
-
var model;
|
16
|
-
model = el.getAttribute(Shiny.attributeName);
|
17
|
-
if (model != null) {
|
18
|
-
return this.create(el, model);
|
19
|
-
} else {
|
20
|
-
return this.destroy(el);
|
21
|
-
}
|
22
|
-
};
|
23
|
-
|
24
|
-
God.prototype.create = function(el) {
|
25
|
-
var model;
|
26
|
-
model = el.getAttribute(Shiny.attributeName);
|
27
|
-
if (this.modelExists(model)) {
|
28
|
-
el.instance = new Shiny.Models.klass[model](el);
|
29
|
-
el.instance.element = function() {
|
30
|
-
return el;
|
31
|
-
};
|
32
|
-
el.instance.on = function(event, target, callback) {
|
33
|
-
if (callback != null) {
|
34
|
-
el.instance.on.events.push([event, target, callback]);
|
35
|
-
} else {
|
36
|
-
callback = target;
|
37
|
-
target = el;
|
38
|
-
}
|
39
|
-
return target.addEventListener(event, callback);
|
40
|
-
};
|
41
|
-
el.instance.on.events = [];
|
42
|
-
if (el.instance.loaded != null) {
|
43
|
-
return el.instance.loaded();
|
44
|
-
}
|
45
|
-
} else {
|
46
|
-
throw "error: " + model + " is not registered. Add your model with Shiny.Models.add(" + model + ")";
|
47
|
-
}
|
48
|
-
};
|
49
|
-
|
50
|
-
God.prototype.destroy = function(el) {
|
51
|
-
var _ref;
|
52
|
-
return (_ref = el.instance.on.events) != null ? _ref.forEach(function(event) {
|
53
|
-
return event[1].removeEventListener(event[0], event[2]);
|
54
|
-
}) : void 0;
|
55
|
-
};
|
56
|
-
|
57
|
-
God.prototype.modelExists = function(name) {
|
58
|
-
return Shiny.Models.klass[name] != null;
|
59
|
-
};
|
60
|
-
|
61
|
-
return God;
|
62
|
-
|
63
|
-
})();
|
64
|
-
|
65
|
-
Shiny.God = new God;
|
66
|
-
|
67
|
-
}).call(this);
|
data/test/js/list.js
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
(function() {
|
2
|
-
|
3
|
-
function List() {
|
4
|
-
|
5
|
-
this.loaded = function() {
|
6
|
-
|
7
|
-
this.on('click', this.remove)
|
8
|
-
this.on('click', document, this.hello)
|
9
|
-
}
|
10
|
-
|
11
|
-
this.remove = function() {
|
12
|
-
this.remove()
|
13
|
-
}
|
14
|
-
|
15
|
-
this.hello = function() {
|
16
|
-
console.log('hello')
|
17
|
-
}
|
18
|
-
}
|
19
|
-
|
20
|
-
Shiny.Models.add(List, "List")
|
21
|
-
})()
|
data/test/js/models.js
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
// Generated by CoffeeScript 1.6.3
|
2
|
-
(function() {
|
3
|
-
var Models;
|
4
|
-
|
5
|
-
Models = (function() {
|
6
|
-
function Models() {}
|
7
|
-
|
8
|
-
Models.prototype.klass = {};
|
9
|
-
|
10
|
-
Models.prototype.add = function(kls, name) {
|
11
|
-
if (name == null) {
|
12
|
-
name = kls.name;
|
13
|
-
}
|
14
|
-
return this.klass[name] = kls;
|
15
|
-
};
|
16
|
-
|
17
|
-
return Models;
|
18
|
-
|
19
|
-
})();
|
20
|
-
|
21
|
-
Shiny.Models = new Models;
|
22
|
-
|
23
|
-
}).call(this);
|
data/test/js/watcher.js
DELETED
@@ -1,110 +0,0 @@
|
|
1
|
-
// Generated by CoffeeScript 1.6.3
|
2
|
-
(function() {
|
3
|
-
var Watcher, instance,
|
4
|
-
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
|
5
|
-
|
6
|
-
instance = void 0;
|
7
|
-
|
8
|
-
Watcher = (function() {
|
9
|
-
function Watcher(target, config) {
|
10
|
-
if (config == null) {
|
11
|
-
config = {};
|
12
|
-
}
|
13
|
-
this.destroy = __bind(this.destroy, this);
|
14
|
-
this.add = __bind(this.add, this);
|
15
|
-
this.observed = __bind(this.observed, this);
|
16
|
-
this.observer = new MutationObserver(this.observed);
|
17
|
-
this.observer.observe(target, config);
|
18
|
-
}
|
19
|
-
|
20
|
-
Watcher.prototype.observed = function(mutations) {
|
21
|
-
var _this = this;
|
22
|
-
return mutations.forEach(function(mutation) {
|
23
|
-
if (mutation.type === 'attributes') {
|
24
|
-
return Shiny.God.update(target);
|
25
|
-
} else {
|
26
|
-
_this.add(mutation.addedNodes);
|
27
|
-
return _this.destroy(mutation.removedNodes);
|
28
|
-
}
|
29
|
-
});
|
30
|
-
};
|
31
|
-
|
32
|
-
Watcher.prototype.add = function(nodes) {
|
33
|
-
var child, node, _i, _len, _results;
|
34
|
-
_results = [];
|
35
|
-
for (_i = 0, _len = nodes.length; _i < _len; _i++) {
|
36
|
-
node = nodes[_i];
|
37
|
-
if (!Shiny.isDOM(node)) {
|
38
|
-
continue;
|
39
|
-
}
|
40
|
-
if (node.hasAttribute(Shiny.attributeName)) {
|
41
|
-
Shiny.God.create(node, node.getAttribute(Shiny.attributeName));
|
42
|
-
}
|
43
|
-
_results.push((function() {
|
44
|
-
var _j, _len1, _ref, _results1;
|
45
|
-
_ref = node.querySelectorAll("[" + Shiny.attributeName + "]");
|
46
|
-
_results1 = [];
|
47
|
-
for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
|
48
|
-
child = _ref[_j];
|
49
|
-
_results1.push(Shiny.God.create(child, child.getAttribute(Shiny.attributeName)));
|
50
|
-
}
|
51
|
-
return _results1;
|
52
|
-
})());
|
53
|
-
}
|
54
|
-
return _results;
|
55
|
-
};
|
56
|
-
|
57
|
-
Watcher.prototype.destroy = function(nodes) {
|
58
|
-
var child, node, _i, _len, _results;
|
59
|
-
_results = [];
|
60
|
-
for (_i = 0, _len = nodes.length; _i < _len; _i++) {
|
61
|
-
node = nodes[_i];
|
62
|
-
if (!Shiny.isDOM(node)) {
|
63
|
-
continue;
|
64
|
-
}
|
65
|
-
if (node.hasAttribute(Shiny.attributeName)) {
|
66
|
-
Shiny.God.destroy(node);
|
67
|
-
}
|
68
|
-
_results.push((function() {
|
69
|
-
var _j, _len1, _ref, _results1;
|
70
|
-
_ref = node.querySelectorAll("[" + Shiny.attributeName + "]");
|
71
|
-
_results1 = [];
|
72
|
-
for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
|
73
|
-
child = _ref[_j];
|
74
|
-
_results1.push(Shiny.God.destroy(child));
|
75
|
-
}
|
76
|
-
return _results1;
|
77
|
-
})());
|
78
|
-
}
|
79
|
-
return _results;
|
80
|
-
};
|
81
|
-
|
82
|
-
Watcher.prototype.inspect = function(node) {
|
83
|
-
var el, found, _i, _len, _results;
|
84
|
-
if (Shiny.isDOM(node)) {
|
85
|
-
found = node.querySelectorAll("[" + Shiny.attributeName + "]");
|
86
|
-
_results = [];
|
87
|
-
for (_i = 0, _len = found.length; _i < _len; _i++) {
|
88
|
-
el = found[_i];
|
89
|
-
_results.push(Shiny.God.create(el));
|
90
|
-
}
|
91
|
-
return _results;
|
92
|
-
}
|
93
|
-
};
|
94
|
-
|
95
|
-
return Watcher;
|
96
|
-
|
97
|
-
})();
|
98
|
-
|
99
|
-
Shiny.Watcher = function() {
|
100
|
-
var i, target;
|
101
|
-
if (instance == null) {
|
102
|
-
i = 0;
|
103
|
-
target = null;
|
104
|
-
target = Shiny.isDOM(arguments[i]) ? arguments[i++] : document;
|
105
|
-
instance = new Watcher(target, arguments[i]);
|
106
|
-
}
|
107
|
-
return instance;
|
108
|
-
};
|
109
|
-
|
110
|
-
}).call(this);
|
data/test/test_helper.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# The order of this file is important as some requirements execute ruby code automatically.
|
2
|
-
|
3
|
-
ENV['RAILS_ENV'] ||= 'test'
|
4
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
|
5
|
-
|
6
|
-
require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
|
7
|
-
require_relative 'application'
|
8
|
-
|
9
|
-
Ethereal::Application.initialize!
|
10
|
-
|
11
|
-
require 'rails/test_help'
|
12
|
-
|
13
|
-
class ActiveSupport::TestCase
|
14
|
-
end
|
15
|
-
|