coolerator.vision 0.2.9 → 0.2.10

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ rdoc
19
19
  pkg
20
20
 
21
21
  ## PROJECT::SPECIFIC
22
+ .tmtags
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.9
1
+ 0.2.10
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{coolerator.vision}
8
- s.version = "0.2.9"
8
+ s.version = "0.2.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Corey Innis"]
@@ -1,12 +1,4 @@
1
1
  (function($) {
2
- $(function() {
3
- $.each(__ready__, function(i, fn) {
4
- fn();
5
- });
6
-
7
- __after__ && __after__();
8
- });
9
-
10
2
  $.extend(Coolerator, {
11
3
  Registrar : {
12
4
  subscriptions : {},
@@ -45,7 +37,7 @@
45
37
  }
46
38
  }
47
39
 
48
- function subscription(callback) {
40
+ function subscription() {
49
41
  var result = {
50
42
  on : function on(event_type, selector) {
51
43
  var selector = selector || 'body';
@@ -53,11 +45,11 @@
53
45
  function use(handler) {
54
46
  if($.isArray(selector)) {
55
47
  $.each(selector, function each_selector() {
56
- callback(event_type, { selector: this, handler: handler });
48
+ register(event_type, { selector: this, handler: handler });
57
49
  });
58
50
  }
59
51
  else {
60
- callback(event_type, { selector: selector, handler: handler });
52
+ register(event_type, { selector: selector, handler: handler });
61
53
  }
62
54
 
63
55
  return this;
@@ -72,7 +64,7 @@
72
64
  function on(event_type, selector) {
73
65
  var selector = selector || 'body';
74
66
 
75
- callback(event_type, { selector: selector, handler: handler });
67
+ register(event_type, { selector: selector, handler: handler });
76
68
  return this;
77
69
  }
78
70
 
@@ -85,12 +77,28 @@
85
77
  return result;
86
78
  }
87
79
 
88
- __ready__.push(function() {
89
- // HMM... this register passed as a callback is completely unnecessary.
90
- fn.call(listener, subscription(register));
80
+ if($.isReady) {
81
+ fn.call(listener, subscription());
82
+ }
83
+ else {
84
+ __ready__.push(function() {
85
+ fn.call(listener, subscription());
86
+ });
87
+ }
88
+
89
+ $(function() {
90
+ while(__ready__.length) {
91
+ var ready_fn = __ready__.shift();
92
+ ready_fn();
93
+ }
94
+
95
+ if(__after__ && __after__()) {
96
+ delete __after__;
97
+ }
91
98
  });
92
99
  },
93
100
 
101
+ // NOTE: *for now*, this will only fire after the *initial* ready.
94
102
  after_ready : function after_ready(fn) {
95
103
  __after__ = fn;
96
104
  }
@@ -5,5 +5,46 @@ Screw.Unit(function(c) { with(c) {
5
5
  it("is added to the Coolerator namespace", function() {
6
6
  expect(typeof Coolerator.Registrar).to(equal, 'object');
7
7
  });
8
+
9
+ describe(".subscribe", function() {
10
+ context("pre-document 'ready'", function() {
11
+ before(function() {
12
+ $.isReady = false;
13
+ mock($.fn, 'ready', function(fn) {
14
+ $.readyList = $.readyList || [];
15
+ $.readyList.push(fn);
16
+ });
17
+ });
18
+
19
+ after(function() {
20
+ $.isReady = true;
21
+ $.readyList = null;
22
+ $.fn.ready = $.fn.ready.original_function;
23
+ });
24
+
25
+ it("adds an array of callbacks to jQuery's readyList", function() {
26
+ Coolerator.Registrar.subscribe(this, function() {});
27
+ Coolerator.Registrar.subscribe(this, function() {});
28
+ Coolerator.Registrar.subscribe(this, function() {});
29
+
30
+ expect($.readyList).to(have_length, 3);
31
+ });
32
+ });
33
+
34
+ context("post-document 'ready", function() {
35
+ var called;
36
+
37
+ before(function() {
38
+ called = false;
39
+ });
40
+
41
+ it("fires the callback immediately", function() {
42
+ Coolerator.Registrar.subscribe(this, function() {
43
+ called = true;
44
+ });
45
+ expect(called).to(be_true);
46
+ });
47
+ });
48
+ });
8
49
  });
9
50
  }});
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coolerator.vision
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.9
4
+ version: 0.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Innis