embient 0.0.6 → 0.0.8
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/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
embient (0.0.
|
4
|
+
embient (0.0.8)
|
5
5
|
emberjs-rails
|
6
6
|
rails (>= 3.1.0)
|
7
7
|
|
@@ -41,8 +41,11 @@ GEM
|
|
41
41
|
hamlbars
|
42
42
|
rails (~> 3.1)
|
43
43
|
erubis (2.7.0)
|
44
|
+
execjs (1.3.0)
|
45
|
+
multi_json (~> 1.0)
|
44
46
|
haml (3.1.4)
|
45
|
-
hamlbars (2012.
|
47
|
+
hamlbars (2012.3.21)
|
48
|
+
execjs (>= 1.2)
|
46
49
|
haml
|
47
50
|
sprockets
|
48
51
|
tilt
|
@@ -50,11 +53,11 @@ GEM
|
|
50
53
|
i18n (0.6.0)
|
51
54
|
journey (1.0.3)
|
52
55
|
json (1.6.5)
|
53
|
-
mail (2.4.
|
56
|
+
mail (2.4.4)
|
54
57
|
i18n (>= 0.4.0)
|
55
58
|
mime-types (~> 1.16)
|
56
59
|
treetop (~> 1.4.8)
|
57
|
-
mime-types (1.
|
60
|
+
mime-types (1.18)
|
58
61
|
multi_json (1.1.0)
|
59
62
|
polyglot (0.3.3)
|
60
63
|
rack (1.4.1)
|
data/lib/embient/version.rb
CHANGED
@@ -123,7 +123,7 @@ Ember.LayoutState = Ember.State.extend({
|
|
123
123
|
// the layoutStates property.
|
124
124
|
var viewClass = get(this, 'viewClass');
|
125
125
|
if(viewClass) {
|
126
|
-
var layoutStates =
|
126
|
+
var layoutStates = viewClass.proto().layoutStates;
|
127
127
|
set(this, 'states', layoutStates);
|
128
128
|
}
|
129
129
|
|
@@ -143,7 +143,6 @@ Ember.LayoutState = Ember.State.extend({
|
|
143
143
|
if (view) {
|
144
144
|
ember_assert('view must be an Ember.View', view instanceof Ember.View);
|
145
145
|
|
146
|
-
|
147
146
|
// if there is another view in the hierarchy then
|
148
147
|
// set its content
|
149
148
|
var parentView = get(this, 'parentView') || get(stateManager, 'rootView');
|
@@ -240,9 +240,9 @@ Ember.RouteManager = Ember.StateManager.extend({
|
|
240
240
|
} else {
|
241
241
|
// we don't use a Ember.Timer because we don't want
|
242
242
|
// a run loop to be triggered at each ping
|
243
|
-
var invokeHashChange = function() {
|
244
|
-
|
245
|
-
|
243
|
+
var _this = this, invokeHashChange = function() {
|
244
|
+
_this.hashChange();
|
245
|
+
_this._timerId = setTimeout(invokeHashChange, 100);
|
246
246
|
};
|
247
247
|
|
248
248
|
invokeHashChange();
|
@@ -316,10 +316,15 @@ Ember.RouteManager = Ember.StateManager.extend({
|
|
316
316
|
var cleanState = result.cleanStates.join('.');
|
317
317
|
this.goToState(cleanState);
|
318
318
|
}
|
319
|
+
|
319
320
|
// 2. We transition to the dirty state. This forces dirty
|
320
321
|
// states to be transitioned.
|
321
322
|
if(result.dirtyStates.length > 0) {
|
322
323
|
var dirtyState = result.cleanStates.concat(result.dirtyStates).join('.');
|
324
|
+
// Special case for re-entering the root state on a parameter change
|
325
|
+
if(this.currentState && dirtyState === this.currentState.get('path')) {
|
326
|
+
this.goToState('__nullState');
|
327
|
+
}
|
323
328
|
this.goToState(dirtyState);
|
324
329
|
}
|
325
330
|
} else {
|
@@ -437,7 +442,7 @@ Ember.RouteManager = Ember.StateManager.extend({
|
|
437
442
|
}
|
438
443
|
var part = parts.shift();
|
439
444
|
var partDefinition = partDefinitions[i];
|
440
|
-
var partParams = this._matchPart(partDefinition, part);
|
445
|
+
var partParams = this._matchPart(partDefinition, part, state);
|
441
446
|
if(!partParams) {
|
442
447
|
return false;
|
443
448
|
}
|
@@ -451,10 +456,9 @@ Ember.RouteManager = Ember.StateManager.extend({
|
|
451
456
|
}
|
452
457
|
}
|
453
458
|
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
}
|
459
|
+
var enabled = get(state, 'enabled');
|
460
|
+
if(enabled !== undefined && !enabled) {
|
461
|
+
return false;
|
458
462
|
}
|
459
463
|
|
460
464
|
return {
|
@@ -467,7 +471,9 @@ Ember.RouteManager = Ember.StateManager.extend({
|
|
467
471
|
/** @private
|
468
472
|
Returns params if the part matches the partDefinition
|
469
473
|
*/
|
470
|
-
_matchPart: function(partDefinition, part) {
|
474
|
+
_matchPart: function(partDefinition, part, state) {
|
475
|
+
var params = {};
|
476
|
+
|
471
477
|
// Handle string parts
|
472
478
|
if( typeof partDefinition == "string") {
|
473
479
|
|
@@ -475,7 +481,6 @@ Ember.RouteManager = Ember.StateManager.extend({
|
|
475
481
|
// 1. dynamic routes
|
476
482
|
case ':':
|
477
483
|
var name = partDefinition.slice(1, partDefinition.length);
|
478
|
-
var params = {};
|
479
484
|
params[name] = part;
|
480
485
|
return params;
|
481
486
|
|
@@ -493,8 +498,26 @@ Ember.RouteManager = Ember.StateManager.extend({
|
|
493
498
|
return false;
|
494
499
|
}
|
495
500
|
|
496
|
-
|
497
|
-
|
501
|
+
if (partDefinition instanceof RegExp) {
|
502
|
+
// JS doesn't support named capture groups in Regexes so instead
|
503
|
+
// we can define a list of 'captures' which maps to the matched groups
|
504
|
+
var captures = get(state, 'captures');
|
505
|
+
var matches = partDefinition.exec(part);
|
506
|
+
|
507
|
+
if (matches) {
|
508
|
+
if (captures) {
|
509
|
+
var len = captures.length, i;
|
510
|
+
for(i = 0; i < len; ++i) {
|
511
|
+
params[captures[i]] = matches[i+1];
|
512
|
+
}
|
513
|
+
}
|
514
|
+
return params;
|
515
|
+
} else {
|
516
|
+
return false;
|
517
|
+
}
|
518
|
+
}
|
519
|
+
|
520
|
+
return false;
|
498
521
|
},
|
499
522
|
|
500
523
|
/**
|
@@ -542,7 +565,10 @@ Ember.RouteManager = Ember.StateManager.extend({
|
|
542
565
|
}
|
543
566
|
}
|
544
567
|
routes._skipRoute = false;
|
545
|
-
}
|
568
|
+
},
|
569
|
+
|
570
|
+
// This is used to re-enter a dirty root state
|
571
|
+
__nullState: Ember.State.create({enabled: false})
|
546
572
|
|
547
573
|
});
|
548
574
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152345520 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152345520
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: emberjs-rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152356700 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152356700
|
36
36
|
description: Pulls together various existing ember/sproutcore addons and provides
|
37
37
|
structure for future extensions.
|
38
38
|
email:
|
@@ -71,7 +71,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
71
71
|
version: '0'
|
72
72
|
segments:
|
73
73
|
- 0
|
74
|
-
hash: -
|
74
|
+
hash: -3816048520545035377
|
75
75
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
76
|
none: false
|
77
77
|
requirements:
|
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
80
|
version: '0'
|
81
81
|
segments:
|
82
82
|
- 0
|
83
|
-
hash: -
|
83
|
+
hash: -3816048520545035377
|
84
84
|
requirements: []
|
85
85
|
rubyforge_project:
|
86
86
|
rubygems_version: 1.8.10
|