architect 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +12 -3
- data/Rakefile +5 -0
- data/app/assets/javascripts/architect.coffee.erb +13 -1
- data/lib/architect/version.rb +1 -1
- data/static/architect.min.js +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9bec81cd66ce034cb54efbab4035fd141a0ee8d5
|
4
|
+
data.tar.gz: a002476eafc68ddb9ebf222bbd318ef25e54cafb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 096b8f8d8d97127b6e25e9a50fcee3b6fdd370b10f4d82ba502bba5d68e031c5dd2b388bf1b2fcccea2d4666ab09c58865488554c4f7b4ff8dfd13d04c97446a
|
7
|
+
data.tar.gz: fe231e602cb01f153b0ff66d20b8eba440cecd4682bc48750606607390cf9dec7a80281e72fbb3f3a51dfa782dd67a52c1e5f20f443b3382c0547b3861d83bb2
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -156,6 +156,15 @@ Architect.workFrom('workers/foozle.js', 'foo', foozleFallback, function(data) {
|
|
156
156
|
### Other
|
157
157
|
You’ll need to serve the [worker files](/static/workers) at `/architect` (i.e. `http://foo.com/architect/proxy_worker.min.js`) and manually include [architect.min.js](/static/architect.min.js) to your HTML pages.
|
158
158
|
|
159
|
-
|
160
|
-
|
161
|
-
|
159
|
+
#### Custom path
|
160
|
+
You can also specify any path you want to serve the workers from.
|
161
|
+
|
162
|
+
```js
|
163
|
+
Architect.setupWorkersPath('fake/path')
|
164
|
+
Architect.proxy('Foo', function(data) {
|
165
|
+
// => Uses http://yourdomain.com/fake/path/proxy_worker.min.js
|
166
|
+
})
|
167
|
+
```
|
168
|
+
|
169
|
+
## Tests
|
170
|
+
Run the `rake test` task.
|
data/Rakefile
CHANGED
@@ -9,9 +9,17 @@
|
|
9
9
|
jsonp: { polyfill: @Architect.JSONPWorker, workerPath: '<%= Architect.worker_path("jsonp") %>' }
|
10
10
|
|
11
11
|
# Private methods
|
12
|
+
getWorkersPath = (type) ->
|
13
|
+
return @Architect.WORKERS[type].workerPath unless @Architect.workersPath
|
14
|
+
"#{@Architect.workersPath}/#{type}_worker.min.js"
|
15
|
+
|
12
16
|
spawnWorker = (type) ->
|
13
17
|
return new @Architect.WORKERS[type].polyfill unless @Architect.SUPPORT_WORKER
|
14
|
-
new Worker(
|
18
|
+
new Worker(getWorkersPath(type))
|
19
|
+
|
20
|
+
# Config
|
21
|
+
@Architect.setupWorkersPath = (path) =>
|
22
|
+
@Architect.workersPath = path.replace(/\/$/, '')
|
15
23
|
|
16
24
|
# Short-lived workers
|
17
25
|
@Architect.work = (data, type, callback) ->
|
@@ -49,6 +57,10 @@ jobs = {}
|
|
49
57
|
|
50
58
|
# Custom workers
|
51
59
|
@Architect.workFrom = (workerPath, data, fallback=null, callback) =>
|
60
|
+
if callback is undefined
|
61
|
+
callback = fallback
|
62
|
+
fallback = null
|
63
|
+
|
52
64
|
if @Architect.SUPPORT_WORKER
|
53
65
|
worker = new Worker(workerPath)
|
54
66
|
worker.postMessage(data)
|
data/lib/architect/version.rb
CHANGED
data/static/architect.min.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
!function(){this.Architect={},this.Architect.VERSION="0.0.
|
1
|
+
!function(){this.Architect={},this.Architect.VERSION="0.0.7"}.call(this),function(){this.Architect.Worker=function(){function t(){this.callbacks={},this.callbacksQueue={}}return t.prototype.addEventListener=function(t,r){var e;return this.callbacks[t]=r,(e=this.callbacksQueue[t])?(delete this.callbacksQueue[t],this.dispatch(t,e)):void 0},t.prototype.dispatch=function(t,r){return this.callbacks[t]?this.callbacks[t]({data:r}):this.callbacksQueue[t]=r},t.prototype.handleRequest=function(t){return this.dispatch("message",t)},t.prototype.terminate=function(){},t}()}.call(this),function(){var t,r={}.hasOwnProperty,e=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};this.Architect.AjaxWorker=function(r){function n(){return t=n.__super__.constructor.apply(this,arguments)}return e(n,r),n.prototype.postMessage=function(t){var r,e=this;return r=new XMLHttpRequest,r.open("GET",t),r.onreadystatechange=function(){return 4===r.readyState&&200===r.status?e.handleRequest(r.responseText):void 0},r.send()},n}(this.Architect.Worker)}.call(this),function(){var t={}.hasOwnProperty,r=function(r,e){function n(){this.constructor=r}for(var o in e)t.call(e,o)&&(r[o]=e[o]);return n.prototype=e.prototype,r.prototype=new n,r.__super__=e.prototype,r};this.Architect.JSONPWorker=function(t){function e(){e.__super__.constructor.call(this),window.jsonpID||(window.jsonpID=0)}return r(e,t),e.prototype.postMessage=function(t){var r,e,n=this;return e=document.createElement("script"),r="architect_jsonp"+ ++window.jsonpID,window[r]=function(t){return delete window[r],document.head.removeChild(e),n.handleRequest(t)},e.src=this.appendQuery(t,"callback="+r),document.head.appendChild(e)},e.prototype.appendQuery=function(t,r){return(t+"&"+r).replace(/[&?]{1,2}/,"?")},e}(this.Architect.Worker)}.call(this),function(){var t,r={}.hasOwnProperty,e=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};this.Architect.ProxyWorker=function(r){function n(){return t=n.__super__.constructor.apply(this,arguments)}return e(n,r),n.prototype.postMessage=function(t){return this.handleRequest(t)},n}(this.Architect.Worker)}.call(this),function(){var t,r,e,n=this;this.Architect.SUPPORT_WORKER=!!window.Worker,this.Architect.WORKERS={proxy:{polyfill:this.Architect.ProxyWorker,workerPath:"architect/proxy_worker.min.js"},ajax:{polyfill:this.Architect.AjaxWorker,workerPath:"architect/ajax_worker.min.js"},jsonp:{polyfill:this.Architect.JSONPWorker,workerPath:"architect/jsonp_worker.min.js"}},t=function(t){return this.Architect.workersPath?""+this.Architect.workersPath+"/"+t+"_worker.min.js":this.Architect.WORKERS[t].workerPath},e=function(r){return this.Architect.SUPPORT_WORKER?new Worker(t(r)):new this.Architect.WORKERS[r].polyfill},this.Architect.setupWorkersPath=function(t){return n.Architect.workersPath=t.replace(/\/$/,"")},this.Architect.work=function(t,r,n){var o;return o=e(r),o.postMessage(t),o.addEventListener("message",function(t){return o.terminate(),n(t.data)})},this.Architect.proxy=function(t,r){return n.Architect.work(t,"proxy",r)},this.Architect.ajax=function(t,r){return n.Architect.work(t,"ajax",r)},this.Architect.jsonp=function(t,r){return n.Architect.work(t,"jsonp",r)},r={},this.Architect.workOn=function(t,n,o,c){var i,s,a=this;return this.workOnCallback=c,i=!!r[t],s=r[t]||(r[t]=e(o)),s.postMessage(n),i?void 0:s.addEventListener("message",function(t){return a.workOnCallback(t.data)})},this.Architect.endJob=function(t){var e;if(e=r[t])return e.terminate(),delete r[t]},this.Architect.proxyOn=function(t,r,e){return n.Architect.workOn(t,r,"proxy",e)},this.Architect.ajaxOn=function(t,r,e){return n.Architect.workOn(t,r,"ajax",e)},this.Architect.jsonpOn=function(t,r,e){return n.Architect.workOn(t,r,"jsonp",e)},this.Architect.workFrom=function(t,r,e,o){var c;return null==e&&(e=null),void 0===o&&(o=e,e=null),n.Architect.SUPPORT_WORKER?(c=new Worker(t),c.postMessage(r),c.addEventListener("message",function(t){return c.terminate(),o(t.data)})):e?o(e(r)):console.warn("No fallback provided for "+t)}}.call(this);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: architect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Etienne Lemay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coffee-rails
|