mousetrap-rails 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## v0.0.9.wip
2
+
3
+ ## v0.0.8
4
+
5
+ * update rspec-rails version development dependency
6
+ * update mousetrap.js to 1.2.2
7
+
1
8
  ## v0.0.7
2
9
 
3
10
  * update mousetrap.js to 1.2.1
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Mousetrap::Rails [![endorse](http://api.coderwall.com/kugaevsky/endorsecount.png)](http://coderwall.com/kugaevsky) [![Build Status](https://secure.travis-ci.org/kugaevsky/mousetrap-rails.png)](http://travis-ci.org/kugaevsky/mousetrap-rails) [![Dependency Status](https://gemnasium.com/kugaevsky/mousetrap-rails.png)](https://gemnasium.com/kugaevsky/mousetrap-rails) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/kugaevsky/mousetrap-rails)
1
+ # Mousetrap::Rails [![endorse](http://api.coderwall.com/kugaevsky/endorsecount.png)](http://coderwall.com/kugaevsky) [![Build Status](https://secure.travis-ci.org/kugaevsky/mousetrap-rails.png?branch=master)](https://travis-ci.org/kugaevsky/mousetrap-rails) [![Dependency Status](https://gemnasium.com/kugaevsky/mousetrap-rails.png)](https://gemnasium.com/kugaevsky/mousetrap-rails) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/kugaevsky/mousetrap-rails)
2
2
 
3
3
  [Mousetrap](https://github.com/ccampbell/mousetrap) is a javascript library for handling keyboard shortcuts in your web applications written by [Craig Campbell](http://craig.is/).
4
4
 
@@ -1,5 +1,5 @@
1
1
  module Mousetrap
2
2
  module Rails
3
- VERSION = "0.0.7"
3
+ VERSION = "0.0.8"
4
4
  end
5
5
  end
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
 
20
20
  gem.add_development_dependency 'rails', '~> 3.2.1'
21
21
  gem.add_development_dependency 'sqlite3', '~> 1.3.5'
22
- gem.add_development_dependency 'rspec-rails', '~> 2.11.0'
22
+ gem.add_development_dependency 'rspec-rails', '~> 2.12.0'
23
23
  gem.add_development_dependency 'genspec', '~> 0.2.7'
24
24
  gem.add_development_dependency 'sass', '~> 3.2.1'
25
25
 
@@ -16,7 +16,7 @@
16
16
  * Mousetrap is a simple keyboard shortcut library for Javascript with
17
17
  * no external dependencies
18
18
  *
19
- * @version 1.2.1
19
+ * @version 1.2.2
20
20
  * @url craig.is/killing/mice
21
21
  */
22
22
  (function() {
@@ -178,7 +178,7 @@
178
178
  *
179
179
  * @type {boolean|string}
180
180
  */
181
- _inside_sequence = false;
181
+ _sequence_type = false;
182
182
 
183
183
  /**
184
184
  * loop through the f keys, f1 to f19 and add them to the map
@@ -255,14 +255,14 @@
255
255
  * @param {Object} do_not_reset
256
256
  * @returns void
257
257
  */
258
- function _resetSequences(do_not_reset) {
258
+ function _resetSequences(do_not_reset, max_level) {
259
259
  do_not_reset = do_not_reset || {};
260
260
 
261
261
  var active_sequences = false,
262
262
  key;
263
263
 
264
264
  for (key in _sequence_levels) {
265
- if (do_not_reset[key]) {
265
+ if (do_not_reset[key] && _sequence_levels[key] > max_level) {
266
266
  active_sequences = true;
267
267
  continue;
268
268
  }
@@ -270,7 +270,7 @@
270
270
  }
271
271
 
272
272
  if (!active_sequences) {
273
- _inside_sequence = false;
273
+ _sequence_type = false;
274
274
  }
275
275
  }
276
276
 
@@ -410,6 +410,7 @@
410
410
  var callbacks = _getMatches(character, _eventModifiers(e), e),
411
411
  i,
412
412
  do_not_reset = {},
413
+ max_level = 0,
413
414
  processed_sequence_callback = false;
414
415
 
415
416
  // loop through matching callbacks for this key event
@@ -423,6 +424,10 @@
423
424
  if (callbacks[i].seq) {
424
425
  processed_sequence_callback = true;
425
426
 
427
+ // as we loop through keep track of the max
428
+ // any sequence at a lower level will be discarded
429
+ max_level = Math.max(max_level, callbacks[i].level);
430
+
426
431
  // keep a list of which sequences were matches for later
427
432
  do_not_reset[callbacks[i].seq] = 1;
428
433
  _fireCallback(callbacks[i].callback, e, callbacks[i].combo);
@@ -431,7 +436,7 @@
431
436
 
432
437
  // if there were no sequence matches but we are still here
433
438
  // that means this is a regular match so we should fire that
434
- if (!processed_sequence_callback && !_inside_sequence) {
439
+ if (!processed_sequence_callback && !_sequence_type) {
435
440
  _fireCallback(callbacks[i].callback, e, callbacks[i].combo);
436
441
  }
437
442
  }
@@ -439,8 +444,8 @@
439
444
  // if you are inside of a sequence and the key you are pressing
440
445
  // is not a modifier key then we should reset all sequences
441
446
  // that were not matched by this key event
442
- if (e.type == _inside_sequence && !_isModifier(character)) {
443
- _resetSequences(do_not_reset);
447
+ if (e.type == _sequence_type && !_isModifier(character)) {
448
+ _resetSequences(do_not_reset, max_level);
444
449
  }
445
450
  }
446
451
 
@@ -574,7 +579,7 @@
574
579
  * @returns void
575
580
  */
576
581
  var _increaseSequence = function(e) {
577
- _inside_sequence = action;
582
+ _sequence_type = action;
578
583
  ++_sequence_levels[combo];
579
584
  _resetSequenceTimer();
580
585
  },
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mousetrap-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-27 00:00:00.000000000 Z
12
+ date: 2012-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: 2.11.0
53
+ version: 2.12.0
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 2.11.0
61
+ version: 2.12.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: genspec
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -175,7 +175,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
175
  version: '0'
176
176
  segments:
177
177
  - 0
178
- hash: -2443179637036711328
178
+ hash: -3047934806921062666
179
179
  required_rubygems_version: !ruby/object:Gem::Requirement
180
180
  none: false
181
181
  requirements:
@@ -184,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
184
  version: '0'
185
185
  segments:
186
186
  - 0
187
- hash: -2443179637036711328
187
+ hash: -3047934806921062666
188
188
  requirements: []
189
189
  rubyforge_project:
190
190
  rubygems_version: 1.8.24