Skip to content

Commit

Permalink
Added support for multiple codes per reference
Browse files Browse the repository at this point in the history
  • Loading branch information
adlawson committed Nov 20, 2012
1 parent acb7c4f commit 60704a9
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 8 deletions.
3 changes: 2 additions & 1 deletion client/key.js
Expand Up @@ -549,6 +549,7 @@ require.define("/key.coffee",function(require,module,exports,__dirname,__filenam

var isRef, iterator, key,
_this = this,
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
__hasProp = {}.hasOwnProperty;

isRef = require('./ref').isRef;
Expand All @@ -574,7 +575,7 @@ require.define("/key.coffee",function(require,module,exports,__dirname,__filenam
if (isRef(pressed)) {
return pressed === ref;
} else {
return pressed === ref.code;
return pressed === ref.code || __indexOf.call(ref.code, pressed) >= 0;
}
} else {
return pressed === ref;
Expand Down
2 changes: 1 addition & 1 deletion client/key.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/key.coffee
Expand Up @@ -45,7 +45,7 @@ key.is = (ref, pressed) =>
if isRef pressed
pressed is ref
else
pressed is ref.code
pressed is ref.code or pressed in ref.code
else
pressed is ref

Expand Down
4 changes: 2 additions & 2 deletions src/ref.coffee
Expand Up @@ -16,14 +16,14 @@ class Reference
# Setup the reference
#
# @param [String] name
# @param [Number] code
# @param [Number|Array] code
constructor: (@name, @code) ->


# Create a new reference
#
# @param [String] name
# @param [Number] code
# @param [Number|Array] code
# @return [Reference]
ref = (name, code) ->
new Reference name, code
Expand Down
24 changes: 21 additions & 3 deletions test/unit/key.coffee
Expand Up @@ -18,7 +18,7 @@ suite 'key:', ->
}
}
baz: {
d: mockRef 'd', 4
d: mockRef 'd', [4,5]
}


Expand Down Expand Up @@ -49,6 +49,12 @@ suite 'key:', ->
test '4 is baz.d', ->
assert.strictEqual key.code.baz.d, (key.get 4)

test '5 is baz.d', ->
assert.strictEqual key.code.baz.d, (key.get 5)

test '6 is undefined', ->
assert.strictEqual undefined, (key.get 6)


suite 'is:', ->
test '1 is foo.a', ->
Expand All @@ -63,6 +69,9 @@ suite 'key:', ->
test '4 is baz.d', ->
assert.isTrue (key.is key.code.baz.d, 4)

test '5 is baz.d', ->
assert.isTrue (key.is key.code.baz.d, 5)

test '1 is in key.code', ->
assert.isTrue (key.is key.code, 1)

Expand All @@ -75,8 +84,11 @@ suite 'key:', ->
test '4 is in key.code', ->
assert.isTrue (key.is key.code, 4)

test '5 is not in key.code', ->
assert.isFalse (key.is key.code, 5)
test '5 is in key.code', ->
assert.isTrue (key.is key.code, 5)

test '6 is not in key.code', ->
assert.isFalse (key.is key.code, 6)

test 'key.get 1 is foo.a', ->
assert.isTrue (key.is key.code.foo.a, key.get 1)
Expand All @@ -90,6 +102,9 @@ suite 'key:', ->
test 'key.get 4 is baz.d', ->
assert.isTrue (key.is key.code.baz.d, key.get 4)

test 'key.get 5 is baz.d', ->
assert.isTrue (key.is key.code.baz.d, key.get 5)

test 'key.get 1 is in key.code', ->
assert.isTrue (key.is key.code, key.get 1)

Expand All @@ -101,3 +116,6 @@ suite 'key:', ->

test 'key.get 4 is in key.code', ->
assert.isTrue (key.is key.code, key.get 4)

test 'key.get 5 is in key.code', ->
assert.isTrue (key.is key.code, key.get 5)

0 comments on commit 60704a9

Please sign in to comment.