shuriken 0.1.4 → 0.2.1

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/Rakefile CHANGED
@@ -23,7 +23,7 @@ desc "Compiles the javascript from Coffeescript to Javascript"
23
23
  task :compile_scripts do
24
24
  Dir["coffeescripts/**/*.coffee"].each do |cs|
25
25
  output = File.dirname(cs).gsub("coffeescripts", "javascripts")
26
- system "coffee", "-c", "--no-wrap", cs, "-o", output
26
+ system "coffee", "--no-wrap", "-o", output, "-c", cs
27
27
  end
28
28
  end
29
29
 
@@ -39,7 +39,7 @@ task :test => :compile_scripts do
39
39
  f.write template.result
40
40
  end
41
41
  $js_file = nil
42
- system "coffee", "-c", "--no-wrap", test, "-o", "test-output"
42
+ system "coffee", "--no-wrap", "-o", "test-output", "-c", test
43
43
  end
44
44
  end
45
45
 
@@ -1,133 +1,132 @@
1
- (->
2
-
1
+ (->
2
+
3
3
  # First off, add our dataAttr extensions.
4
4
  if jQuery?
5
5
  (($) ->
6
- stringToDataKey: (key) -> "data-$key".replace /_/g, '-'
7
- $.fn.dataAttr: (key, value) -> @attr stringToDataKey(key), value
8
- $.fn.removeDataAttr: (key) -> @removeAttr stringToDataKey(key)
9
- $.fn.hasDataAttr: (key) -> @is "[${stringToDataKey(key)}]"
10
- $.metaAttr: (key) -> $("meta[name='$key']").attr "content"
6
+ stringToDataKey = (key) -> "data-#{key}".replace /_/g, '-'
7
+ $.fn.dataAttr = (key, value) -> @attr stringToDataKey(key), value
8
+ $.fn.removeDataAttr = (key) -> @removeAttr stringToDataKey(key)
9
+ $.fn.hasDataAttr = (key) -> @is "[#{stringToDataKey(key)}]"
10
+ $.metaAttr = (key) -> $("meta[name='#{key}']").attr "content"
11
11
  )(jQuery)
12
12
 
13
13
 
14
- Shuriken: {
14
+ Shuriken =
15
15
  Base: {}
16
16
  Util: {}
17
17
  jsPathPrefix: "/javascripts/"
18
18
  jsPathSuffix: ""
19
19
  namespaces: {}
20
20
  extensions: []
21
- }
22
21
 
23
- Shuriken.Util.underscoreize: (s) ->
22
+ Shuriken.Util.underscoreize = (s) ->
24
23
  s.replace(/\./g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\d])([A-Z])/g, '$1_$2').replace(/-/g, '_').toLowerCase()
25
24
 
26
- scopedClosure: (closure, scope) ->
25
+ scopedClosure = (closure, scope) ->
27
26
  closure.call scope, scope if $.isFunction closure
28
-
27
+
29
28
  # Base is the prototype for all namespaces.
30
- base: Shuriken.Base
29
+ base = Shuriken.Base
31
30
 
32
- base.hasChildNamespace: (child) ->
31
+ base.hasChildNamespace = (child) ->
33
32
  @children.push child
34
-
35
- base.toNSName: (children...) ->
36
- parts: children
37
- current: @
33
+
34
+ base.toNSName = (children...) ->
35
+ parts = children
36
+ current = @
38
37
  while current?
39
38
  parts.unshift current.name
40
- current: current.parent
39
+ current = current.parent
41
40
  parts.join "."
42
-
43
- base.getNS: (namespace) ->
44
- parts: namespace.split "."
45
- currentNS: @
41
+
42
+ base.getNS = (namespace) ->
43
+ parts = namespace.split "."
44
+ currentNS = @
46
45
  for name in parts
47
46
  return unless currentNS[name]?
48
- currentNS: currentNS[name]
47
+ currentNS = currentNS[name]
49
48
  currentNS
50
-
51
- base.getRootNS: ->
52
- current: @
49
+
50
+ base.getRootNS = ->
51
+ current = @
53
52
  while current.parent?
54
- current: current.parent
53
+ current = current.parent
55
54
  current
56
55
 
57
- base.hasNS: (namespace) ->
56
+ base.hasNS = (namespace) ->
58
57
  @getNS(namespace)?
59
-
60
- base.withNS: (key, initializer) ->
61
- parts: key.split "."
62
- currentNS: @
58
+
59
+ base.withNS = (key, initializer) ->
60
+ parts = key.split "."
61
+ currentNS = @
63
62
  for name in parts
64
- currentNS[name]: makeNS(name, currentNS, @baseNS) if not currentNS[name]?
65
- currentNS: currentNS[name]
66
- hadSetup: $.isFunction currentNS.setup
63
+ currentNS[name] = makeNS(name, currentNS, @baseNS) if not currentNS[name]?
64
+ currentNS = currentNS[name]
65
+ hadSetup = $.isFunction currentNS.setup
67
66
  scopedClosure initializer, currentNS
68
67
  currentNS.setupVia currentNS.setup if not hadSetup and $.isFunction currentNS.setup
69
68
  currentNS
70
69
 
71
- base.withBase: (closure) ->
70
+ base.withBase = (closure) ->
72
71
  scopedClosure closure, @baseNS
73
-
74
- base.extend: (closure) ->
72
+
73
+ base.extend = (closure) ->
75
74
  scopedClosure closure, @
76
75
 
77
- base.isRoot: ->
76
+ base.isRoot = ->
78
77
  not @parent?
79
-
80
- base.log: (args...) ->
81
- console.log "[${@toNSName()}]", args...
82
-
83
- base.debug: (args...) ->
84
- console.log "[Debug - ${@toNSName()}]", args...
85
-
86
- base.setupVia: (f) ->
78
+
79
+ base.log = (args...) ->
80
+ console.log "[#{@toNSName()}]", args...
81
+
82
+ base.debug = (args...) ->
83
+ console.log "[Debug: #{@toNSName()}]", args...
84
+
85
+ base.setupVia = (f) ->
87
86
  $(document).ready => scopedClosure(f, @) if @autosetup?
88
-
89
- base.require: (key, callback) ->
90
- ns: @getNS key
87
+
88
+ base.require = (key, callback) ->
89
+ ns = @getNS key
91
90
  if ns?
92
91
  scopedClosure callback, ns
93
92
  else
94
- path: Shuriken.Util.underscoreize "${@toNSName()}.$key"
95
- url: "${Shuriken.jsPathPrefix}${path}.js${Shuriken.jsPathSuffix}"
96
- script: $ "<script />", {type: "text/javascript", src: url}
93
+ path = Shuriken.Util.underscoreize "#{@toNSName()}.#{key}"
94
+ url = "#{Shuriken.jsPathPrefix}#{path}.js#{Shuriken.jsPathSuffix}"
95
+ script = $ "<script />", type: "text/javascript", src: url
97
96
  script.load -> scopedClosure callback, @getNS(key)
98
97
  script.appendTo $ "head"
99
98
 
100
- base.autosetup: true
99
+ base.autosetup = true
101
100
 
102
101
  # Used as a part of the prototype chain.
103
- Shuriken.Namespace: ->
104
- Shuriken.Namespace.prototype: Shuriken.Base
102
+ Shuriken.Namespace = ->
103
+ Shuriken.Namespace.prototype = Shuriken.Base
105
104
 
106
- makeNS: (name, parent, sharedPrototype) ->
105
+ makeNS = (name, parent, sharedPrototype) ->
107
106
  sharedPrototype?= new Shuriken.Namespace()
108
- namespace: ->
109
- @name: name
110
- @parent: parent
111
- @baseNS: sharedPrototype
112
- @children: []
107
+ namespace = ->
108
+ @name = name
109
+ @parent = parent
110
+ @baseNS = sharedPrototype
111
+ @children = []
113
112
  parent.hasChildNamespace(@) if parent?
114
113
  @
115
- namespace.prototype: sharedPrototype
114
+ namespace.prototype = sharedPrototype
116
115
  new namespace name, parent
117
116
 
118
- Shuriken.defineExtension: (closure) ->
117
+ Shuriken.defineExtension = (closure) ->
119
118
  for namespace in Shuriken.namespaces
120
119
  scopedClosure closure, namespace
121
120
  Shuriken.extensions.push closure
122
121
 
123
- Shuriken.as: (name) ->
124
- ns: makeNS name
125
- Shuriken.namespaces[name]: ns
126
- Shuriken.root[name]: ns
122
+ Shuriken.as = (name) ->
123
+ ns = makeNS name
124
+ Shuriken.namespaces[name] = ns
125
+ Shuriken.root[name] = ns
127
126
  scopedClosure extension, ns for extension in Shuriken.extensions
128
127
  ns
129
128
 
130
- Shuriken.root: @
131
- @['Shuriken']: Shuriken
132
-
129
+ Shuriken.root = @
130
+ @['Shuriken'] = Shuriken
131
+
133
132
  )()
@@ -1,20 +1,20 @@
1
1
  Shuriken.defineExtension (baseNS) ->
2
2
  baseNS.withNS 'Mixins', (ns) ->
3
3
 
4
- root: @getRootNS()
5
- ns.mixins: {}
6
- root.mixins: {}
4
+ root = @getRootNS()
5
+ ns.mixins = {}
6
+ root.mixins = {}
7
7
 
8
8
  root.withBase (base) ->
9
- base.mixin: (mixins) -> ns.mixin @, mixins
9
+ base.mixin = (mixins) -> ns.mixin @, mixins
10
10
 
11
- defineMixin: (key, mixin) ->
12
- @mixins[key]: mixin
11
+ defineMixin = (key, mixin) ->
12
+ @mixins[key] = mixin
13
13
 
14
- root.defineMixin: defineMixin
15
- ns.define: defineMixin
14
+ root.defineMixin = defineMixin
15
+ ns.define = defineMixin
16
16
 
17
- ns.lookupMixin: (mixin) ->
17
+ ns.lookupMixin = (mixin) ->
18
18
  switch typeof mixin
19
19
  when "string"
20
20
  if ns.mixins[mixin]?
@@ -26,7 +26,7 @@ Shuriken.defineExtension (baseNS) ->
26
26
  else
27
27
  mixin
28
28
 
29
- ns.invokeMixin: (scope, mixin) ->
29
+ ns.invokeMixin = (scope, mixin) ->
30
30
  switch typeof mixin
31
31
  when "string"
32
32
  ns.invokeMixin scope, ns.lookupMixin(mixin)
@@ -35,7 +35,7 @@ Shuriken.defineExtension (baseNS) ->
35
35
  when "object"
36
36
  $.extend scope, mixin
37
37
 
38
- ns.mixin: (scope, mixins) ->
39
- mixins: [mixins] unless $.isArray mixins
38
+ ns.mixin = (scope, mixins) ->
39
+ mixins = [mixins] unless $.isArray mixins
40
40
  ns.invokeMixin scope, ns.lookupMixin(mixin) for mixin in mixins
41
41
  true
@@ -1,23 +1,23 @@
1
1
  Shuriken.defineExtension (baseNS) ->
2
2
  baseNS.defineMixin 'Callbacks', (mixin) ->
3
3
 
4
- mixin.callbacks: {}
4
+ mixin.callbacks = {}
5
5
 
6
- mixin.defineCallback: (key) ->
7
- @["on$key"]: (callback) -> @hasCallback key, callback
8
- @["invoke$key"]: (args...) -> @invokeCallbacks key, args...
6
+ mixin.defineCallback = (key) ->
7
+ @["on#{key}"] = (callback) -> @hasCallback key, callback
8
+ @["invoke#{key}"] = (args...) -> @invokeCallbacks key, args...
9
9
  true
10
10
 
11
- mixin.hasCallback: (name, callback) ->
12
- callbacks: mixin.callbacks[name]?= []
11
+ mixin.hasCallback = (name, callback) ->
12
+ callbacks = mixin.callbacks[name]?= []
13
13
  callbacks.push callback
14
14
  true
15
15
 
16
- mixin.callbacksFor: (name) ->
17
- existing: mixin.callbacks[name]
16
+ mixin.callbacksFor = (name) ->
17
+ existing = mixin.callbacks[name]
18
18
  if existing? then existing else []
19
19
 
20
- mixin.invokeCallbacks: (name, args...) ->
20
+ mixin.invokeCallbacks = (name, args...) ->
21
21
  for callback in mixin.callbacksFor(name)
22
22
  return false if callback(args...) is false
23
23
  true
@@ -1,30 +1,28 @@
1
- var __slice = Array.prototype.slice, __bind = function(func, obj, args) {
2
- return function() {
3
- return func.apply(obj || {}, args ? args.concat(__slice.call(arguments, 0)) : arguments);
4
- };
1
+ var __slice = Array.prototype.slice, __bind = function(func, context) {
2
+ return function(){ return func.apply(context, arguments); };
5
3
  };
6
4
  (function() {
7
5
  var Shuriken, base, makeNS, scopedClosure;
8
- // First off, add our dataAttr extensions.
9
- (typeof jQuery !== "undefined" && jQuery !== null) ? (function($) {
10
- var stringToDataKey;
11
- stringToDataKey = function(key) {
12
- return ("data-" + key).replace(/_/g, '-');
13
- };
14
- $.fn.dataAttr = function(key, value) {
15
- return this.attr(stringToDataKey(key), value);
16
- };
17
- $.fn.removeDataAttr = function(key) {
18
- return this.removeAttr(stringToDataKey(key));
19
- };
20
- $.fn.hasDataAttr = function(key) {
21
- return this.is(("[" + (stringToDataKey(key)) + "]"));
22
- };
23
- $.metaAttr = function(key) {
24
- return $(("meta[name='" + key + "']")).attr("content");
25
- };
26
- return $.metaAttr;
27
- })(jQuery) : null;
6
+ if ((typeof jQuery !== "undefined" && jQuery !== null)) {
7
+ (function($) {
8
+ var stringToDataKey;
9
+ stringToDataKey = function(key) {
10
+ return ("data-" + (key)).replace(/_/g, '-');
11
+ };
12
+ $.fn.dataAttr = function(key, value) {
13
+ return this.attr(stringToDataKey(key), value);
14
+ };
15
+ $.fn.removeDataAttr = function(key) {
16
+ return this.removeAttr(stringToDataKey(key));
17
+ };
18
+ $.fn.hasDataAttr = function(key) {
19
+ return this.is(("[" + (stringToDataKey(key)) + "]"));
20
+ };
21
+ return ($.metaAttr = function(key) {
22
+ return $(("meta[name='" + (key) + "']")).attr("content");
23
+ });
24
+ })(jQuery);
25
+ };
28
26
  Shuriken = {
29
27
  Base: {},
30
28
  Util: {},
@@ -41,15 +39,13 @@ var __slice = Array.prototype.slice, __bind = function(func, obj, args) {
41
39
  return closure.call(scope, scope);
42
40
  }
43
41
  };
44
- // Base is the prototype for all namespaces.
45
42
  base = Shuriken.Base;
46
43
  base.hasChildNamespace = function(child) {
47
44
  return this.children.push(child);
48
45
  };
49
46
  base.toNSName = function() {
50
47
  var children, current, parts;
51
- var _a = arguments.length, _b = _a >= 1;
52
- children = __slice.call(arguments, 0, _a - 0);
48
+ children = __slice.call(arguments, 0);
53
49
  parts = children;
54
50
  current = this;
55
51
  while ((typeof current !== "undefined" && current !== null)) {
@@ -115,23 +111,21 @@ var __slice = Array.prototype.slice, __bind = function(func, obj, args) {
115
111
  };
116
112
  base.log = function() {
117
113
  var args;
118
- var _a = arguments.length, _b = _a >= 1;
119
- args = __slice.call(arguments, 0, _a - 0);
114
+ args = __slice.call(arguments, 0);
120
115
  return console.log.apply(console, [("[" + (this.toNSName()) + "]")].concat(args));
121
116
  };
122
117
  base.debug = function() {
123
118
  var args;
124
- var _a = arguments.length, _b = _a >= 1;
125
- args = __slice.call(arguments, 0, _a - 0);
126
- return console.log.apply(console, [("[Debug - " + (this.toNSName()) + "]")].concat(args));
119
+ args = __slice.call(arguments, 0);
120
+ return console.log.apply(console, [("[Debug: " + (this.toNSName()) + "]")].concat(args));
127
121
  };
128
122
  base.setupVia = function(f) {
129
123
  return $(document).ready(__bind(function() {
130
- var _a;
131
- if ((typeof (_a = this.autosetup) !== "undefined" && _a !== null)) {
132
- return scopedClosure(f, this);
133
- }
134
- }, this));
124
+ var _a;
125
+ if ((typeof (_a = this.autosetup) !== "undefined" && _a !== null)) {
126
+ return scopedClosure(f, this);
127
+ }
128
+ }, this));
135
129
  };
136
130
  base.require = function(key, callback) {
137
131
  var ns, path, script, url;
@@ -139,7 +133,7 @@ var __slice = Array.prototype.slice, __bind = function(func, obj, args) {
139
133
  if ((typeof ns !== "undefined" && ns !== null)) {
140
134
  return scopedClosure(callback, ns);
141
135
  } else {
142
- path = Shuriken.Util.underscoreize(("" + (this.toNSName()) + "." + key));
136
+ path = Shuriken.Util.underscoreize(("" + (this.toNSName()) + "." + (key)));
143
137
  url = ("" + (Shuriken.jsPathPrefix) + (path) + ".js" + (Shuriken.jsPathSuffix));
144
138
  script = $("<script />", {
145
139
  type: "text/javascript",
@@ -152,8 +146,7 @@ var __slice = Array.prototype.slice, __bind = function(func, obj, args) {
152
146
  }
153
147
  };
154
148
  base.autosetup = true;
155
- // Used as a part of the prototype chain.
156
- Shuriken.Namespace = function() { };
149
+ Shuriken.Namespace = function() {};
157
150
  Shuriken.Namespace.prototype = Shuriken.Base;
158
151
  makeNS = function(name, parent, sharedPrototype) {
159
152
  var namespace;
@@ -193,6 +186,5 @@ var __slice = Array.prototype.slice, __bind = function(func, obj, args) {
193
186
  return ns;
194
187
  };
195
188
  Shuriken.root = this;
196
- this['Shuriken'] = Shuriken;
197
- return this['Shuriken'];
189
+ return (this['Shuriken'] = Shuriken);
198
190
  })();
@@ -5,14 +5,12 @@ Shuriken.defineExtension(function(baseNS) {
5
5
  ns.mixins = {};
6
6
  root.mixins = {};
7
7
  root.withBase(function(base) {
8
- base.mixin = function(mixins) {
8
+ return (base.mixin = function(mixins) {
9
9
  return ns.mixin(this, mixins);
10
- };
11
- return base.mixin;
10
+ });
12
11
  });
13
12
  defineMixin = function(key, mixin) {
14
- this.mixins[key] = mixin;
15
- return this.mixins[key];
13
+ return (this.mixins[key] = mixin);
16
14
  };
17
15
  root.defineMixin = defineMixin;
18
16
  ns.define = defineMixin;
@@ -25,7 +23,6 @@ Shuriken.defineExtension(function(baseNS) {
25
23
  return root.mixins[mixin];
26
24
  } else {
27
25
  return {};
28
- // unknown mixin, return a blank object.
29
26
  }
30
27
  } else {
31
28
  return mixin;
@@ -41,7 +38,7 @@ Shuriken.defineExtension(function(baseNS) {
41
38
  return $.extend(scope, mixin);
42
39
  }
43
40
  };
44
- ns.mixin = function(scope, mixins) {
41
+ return (ns.mixin = function(scope, mixins) {
45
42
  var _a, _b, _c, mixin;
46
43
  if (!($.isArray(mixins))) {
47
44
  mixins = [mixins];
@@ -52,7 +49,6 @@ Shuriken.defineExtension(function(baseNS) {
52
49
  ns.invokeMixin(scope, ns.lookupMixin(mixin));
53
50
  }
54
51
  return true;
55
- };
56
- return ns.mixin;
52
+ });
57
53
  });
58
54
  });
@@ -3,45 +3,38 @@ Shuriken.defineExtension(function(baseNS) {
3
3
  return baseNS.defineMixin('Callbacks', function(mixin) {
4
4
  mixin.callbacks = {};
5
5
  mixin.defineCallback = function(key) {
6
- this[("on" + key)] = function(callback) {
6
+ this[("on" + (key))] = function(callback) {
7
7
  return this.hasCallback(key, callback);
8
8
  };
9
- this[("invoke" + key)] = function() {
9
+ this[("invoke" + (key))] = function() {
10
10
  var args;
11
- var _a = arguments.length, _b = _a >= 1;
12
- args = __slice.call(arguments, 0, _a - 0);
11
+ args = __slice.call(arguments, 0);
13
12
  return this.invokeCallbacks.apply(this, [key].concat(args));
14
13
  };
15
14
  return true;
16
15
  };
17
16
  mixin.hasCallback = function(name, callback) {
18
- var _a, callbacks;
19
- callbacks = mixin.callbacks[name] = (typeof (_a = mixin.callbacks[name]) !== "undefined" && _a !== null) ? mixin.callbacks[name] : [];
17
+ var callbacks;
18
+ callbacks = mixin.callbacks[name] = (typeof mixin.callbacks[name] !== "undefined" && mixin.callbacks[name] !== null) ? mixin.callbacks[name] : [];
20
19
  callbacks.push(callback);
21
20
  return true;
22
21
  };
23
22
  mixin.callbacksFor = function(name) {
24
23
  var existing;
25
24
  existing = mixin.callbacks[name];
26
- if ((typeof existing !== "undefined" && existing !== null)) {
27
- return existing;
28
- } else {
29
- return [];
30
- }
25
+ return (typeof existing !== "undefined" && existing !== null) ? existing : [];
31
26
  };
32
- mixin.invokeCallbacks = function(name) {
33
- var _c, _d, _e, args, callback;
34
- var _a = arguments.length, _b = _a >= 2;
35
- args = __slice.call(arguments, 1, _a - 0);
36
- _d = mixin.callbacksFor(name);
37
- for (_c = 0, _e = _d.length; _c < _e; _c++) {
38
- callback = _d[_c];
27
+ return (mixin.invokeCallbacks = function(name) {
28
+ var _a, _b, _c, args, callback;
29
+ args = __slice.call(arguments, 1);
30
+ _b = mixin.callbacksFor(name);
31
+ for (_a = 0, _c = _b.length; _a < _c; _a++) {
32
+ callback = _b[_a];
39
33
  if (callback.apply(this, args) === false) {
40
34
  return false;
41
35
  }
42
36
  }
43
37
  return true;
44
- };
45
- return mixin.invokeCallbacks;
38
+ });
46
39
  });
47
40
  });
@@ -1,6 +1,6 @@
1
1
  module Shuriken
2
2
 
3
- VERSION = "0.1.4".freeze
3
+ VERSION = "0.2.1".freeze
4
4
 
5
5
  def self.register_framework!
6
6
  Barista::Framework.register 'shuriken', File.expand_path('../coffeescripts', File.dirname(__FILE__))
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{shuriken}
8
- s.version = "0.1.4"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Darcy Laycock"]
12
- s.date = %q{2010-06-11}
12
+ s.date = %q{2010-08-21}
13
13
  s.description = %q{Simple Namespace support for JS + Other niceties, packaged as a Barista framework}
14
14
  s.email = %q{sutto@sutto.net}
15
15
  s.extra_rdoc_files = [
@@ -1,24 +1,24 @@
1
1
  jasmine.include '../javascripts/shuriken.js', true
2
2
 
3
3
  describe 'Shuriken', ->
4
-
5
- root: {}
6
-
4
+
5
+ root = {}
6
+
7
7
  beforeEach ->
8
- Shuriken.root: root
9
-
8
+ Shuriken.root = root
9
+
10
10
  afterEach ->
11
11
  delete root
12
- root: {}
13
- Shuriken.root: root
12
+ root = {}
13
+ Shuriken.root = root
14
14
 
15
15
  describe 'creating a namespace', ->
16
-
16
+
17
17
  it 'should let you create a base namespace', ->
18
18
  expect(root.MyNamespace).toBeUndefined()
19
19
  Shuriken.as 'MyNamespace'
20
20
  expect(root.MyNamespace).toBeDefined()
21
-
21
+
22
22
  it 'should let you define a sub namespace', ->
23
23
  expect(root.MyNamespace).toBeUndefined()
24
24
  Shuriken.as 'MyNamespace'
@@ -32,7 +32,7 @@ describe 'Shuriken', ->
32
32
  expect(root.MyNamespace.X).toBeDefined()
33
33
  expect(root.MyNamespace.Y).toBeDefined()
34
34
  expect(root.MyNamespace.Y.Z).toBeDefined()
35
-
35
+
36
36
  it 'should correctly initialize namespaces as Shuriken.Namespace instances', ->
37
37
  Shuriken.as 'MyNamespace'
38
38
  root.MyNamespace.withNS 'X', ->
@@ -41,39 +41,39 @@ describe 'Shuriken', ->
41
41
  expect(root.MyNamespace.X instanceof Shuriken.Namespace).toBeTruthy()
42
42
  expect(root.MyNamespace.Y instanceof Shuriken.Namespace).toBeTruthy()
43
43
  expect(root.MyNamespace.Y.Z instanceof Shuriken.Namespace).toBeTruthy()
44
-
44
+
45
45
  describe 'inspecting created namespaces', ->
46
-
46
+
47
47
  beforeEach ->
48
48
  Shuriken.as 'Doom'
49
49
  root.Doom.withNS 'A.B.C', ->
50
50
  root.Doom.withNS 'D', ->
51
-
51
+
52
52
  it 'should return the correct value for the root namespace', ->
53
53
  expect(root.Doom.toNSName()).toEqual 'Doom'
54
-
54
+
55
55
  it 'should report the correct value for first level namespace names', ->
56
56
  expect(root.Doom.A.toNSName()).toEqual 'Doom.A'
57
57
  expect(root.Doom.D.toNSName()).toEqual 'Doom.D'
58
-
58
+
59
59
  it 'should expect deeper nested namespaces to have the correct name', ->
60
60
  expect(root.Doom.A.B.toNSName()).toEqual 'Doom.A.B'
61
61
  expect(root.Doom.A.B.C.toNSName()).toEqual 'Doom.A.B.C'
62
-
62
+
63
63
  it 'should correctly report the value of isRoot', ->
64
64
  expect(root.Doom.isRoot()).toBeTruthy()
65
65
  expect(root.Doom.A.isRoot()).toBeFalsy()
66
66
  expect(root.Doom.A.B.isRoot()).toBeFalsy()
67
67
  expect(root.Doom.A.B.C.isRoot()).toBeFalsy()
68
68
  expect(root.Doom.D.isRoot()).toBeFalsy()
69
-
69
+
70
70
  it 'should let you easily get the root namespace', ->
71
71
  expect(root.Doom.getRootNS()).toEqual root.Doom
72
72
  expect(root.Doom.A.getRootNS()).toEqual root.Doom
73
73
  expect(root.Doom.A.B.getRootNS()).toEqual root.Doom
74
74
  expect(root.Doom.A.B.C.getRootNS()).toEqual root.Doom
75
75
  expect(root.Doom.D.getRootNS()).toEqual root.Doom
76
-
76
+
77
77
  it 'should let you get a nested child namespace', ->
78
78
  expect(root.Doom.getNS('A')).toEqual root.Doom.A
79
79
  expect(root.Doom.getNS('A.B')).toEqual root.Doom.A.B
@@ -87,7 +87,7 @@ describe 'Shuriken', ->
87
87
  expect(root.Doom.getNS('Awesome.Nested')).toBeNull()
88
88
  expect(root.Doom.getNS('Awesome.Ouch')).toBeNull()
89
89
  expect(root.Doom.getNS('Awesome.Nested.Rocking')).toBeNull()
90
-
90
+
91
91
  it 'should let you inspect the existence of namespaces', ->
92
92
  expect(root.Doom.hasNS('A')).toBeTruthy()
93
93
  expect(root.Doom.hasNS('A.B')).toBeTruthy()
@@ -101,9 +101,9 @@ describe 'Shuriken', ->
101
101
  expect(root.Doom.hasNS('Awesome.Nested')).toBeFalsy()
102
102
  expect(root.Doom.hasNS('Awesome.Ouch')).toBeFalsy()
103
103
  expect(root.Doom.hasNS('Awesome.Nested.Rocking')).toBeFalsy()
104
-
104
+
105
105
  describe 'Shuriken.Util', ->
106
-
106
+
107
107
  it 'should let you underscore a string', ->
108
108
  expect(Shuriken.Util.underscoreize('A')).toEqual 'a'
109
109
  expect(Shuriken.Util.underscoreize('A.B')).toEqual 'a/b'
@@ -111,4 +111,4 @@ describe 'Shuriken', ->
111
111
  expect(Shuriken.Util.underscoreize('NameOf.Doom')).toEqual 'name_of/doom'
112
112
  expect(Shuriken.Util.underscoreize('Rockin.AndRoll.AndDoom')).toEqual 'rockin/and_roll/and_doom'
113
113
  expect(Shuriken.Util.underscoreize('RPXNow')).toEqual 'rpx_now'
114
- expect(Shuriken.Util.underscoreize('BHM.Authentication.RPXNow')).toEqual 'bhm/authentication/rpx_now'
114
+ expect(Shuriken.Util.underscoreize('BHM.Authentication.RPXNow')).toEqual 'bhm/authentication/rpx_now'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shuriken
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
+ - 2
8
9
  - 1
9
- - 4
10
- version: 0.1.4
10
+ version: 0.2.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Darcy Laycock
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-06-11 00:00:00 +08:00
18
+ date: 2010-08-21 00:00:00 +08:00
19
19
  default_executable:
20
20
  dependencies: []
21
21