shuriken 0.1.4 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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