hinderinputjs-rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  module Hinderinputjs
2
2
  module Rails
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -5,26 +5,33 @@
5
5
  (function( $ ) {
6
6
 
7
7
  /**
8
- * Set a selection range with the given start and end indicies
8
+ * Set a selection range with the given start and end indicies.
9
+ *
10
+ * @param {number} start The position at which to start the selection.
11
+ * @param {number} end The position at which to end the selection.
9
12
  **/
10
13
  $.fn.setSelection = function( start, end ) {
11
14
  return this.each(function( index, element ){
15
+ var range;
16
+
12
17
  if ( typeof element.setSelectionRange === 'function' ) {
13
18
  element.focus();
14
19
  element.setSelectionRange( start, end );
15
20
  }
16
21
  else if( typeof element.createTextRange === 'function' ) {
17
- var range = element.createTextRange();
18
- range.collapse( true );
19
- range.moveEnd( 'character', start );
20
- range.moveStart( 'character', end );
21
- range.select();
22
+ range = element.createTextRange();
23
+ range.collapse( true );
24
+ range.moveEnd( 'character', start );
25
+ range.moveStart( 'character', end );
26
+ range.select();
22
27
  }
23
28
  });
24
29
  };
25
30
 
26
31
  /**
27
- * Set the position of the cursor to the given index
32
+ * Set the position of the cursor to the given index.
33
+ *
34
+ * @param {number} pos The position at which to set the caret.
28
35
  **/
29
36
  $.fn.setCaretPosition = function( pos ) {
30
37
  return this.each(function( index, element ) {
@@ -17,28 +17,14 @@
17
17
  return this.each(function( index, element ) {
18
18
  var $target = $(this);
19
19
 
20
- $target.keypress(function( event ) {
21
- hinderInput.addChar.call( hinderInput, event, options );
22
- }).keydown(function( event ) {
23
- hinderInput.addSpecial.call( hinderInput, event, options );
24
- }).click(function( event ) {
25
- $target.setCaretAtEnd();
26
- });
20
+ $target.keypress( $.proxy( hinderInput.addChar, hinderInput, options ) )
21
+ .keydown( $.proxy( hinderInput.addSpecial, hinderInput, options ) )
22
+ .click(function( event ) {
23
+ $target.setCaretAtEnd();
24
+ });
27
25
  });
28
26
  };
29
27
 
30
- /**
31
- * The default options for hinderInput.
32
- **/
33
- hinderInput.defaults = {
34
- onAdd: function( value ) {
35
- return;
36
- },
37
- onDelete: function() {
38
- return;
39
- }
40
- };
41
-
42
28
  /**
43
29
  * Add a character to the input if it's valid. Execute the onAdd
44
30
  * callback.
@@ -46,7 +32,7 @@
46
32
  * @param {object} event The event that triggered the input.
47
33
  * @param {object} options The options provided to hinderInput.
48
34
  **/
49
- hinderInput.addChar = function( event, options ){
35
+ hinderInput.addChar = function( options, event ){
50
36
  var $target = $(event.target),
51
37
  keyCode = event.which;
52
38
 
@@ -63,22 +49,17 @@
63
49
  * @param {object} event The event that triggered the input.
64
50
  * @param {object} options The options provided to hinderInput.
65
51
  **/
66
- hinderInput.addSpecial = function( event, options ) {
52
+ hinderInput.addSpecial = function( options, event ) {
67
53
  var $target = $( event.target ),
68
54
  keyCode = event.which;
69
55
 
70
56
  $target.setCaretAtEnd();
71
57
 
72
- if ( this.isModifierPresent( event ) || this.isArrowKey( keyCode ) ) {
73
- event.preventDefault();
74
- return;
75
- }
76
-
77
58
  if( keyCode === 8 ) {
78
59
  options.onDelete();
79
60
  }
80
- // TODO refactor
81
- else if( !this.isValidChar(keyCode) ) {
61
+ //TODO more TLC
62
+ else if( !this.isValidChar(keyCode) || this.isModifierPresent( event ) ) {
82
63
  event.preventDefault();
83
64
  }
84
65
  };
@@ -90,16 +71,9 @@
90
71
  * @param {number} keyCode The char code of the character to check.
91
72
  **/
92
73
  hinderInput.isValidChar = function( keyCode ) {
93
- return (keyCode >= 32) && (keyCode <= 126) || (keyCode >= 186) && (keyCode <= 222);
94
- };
95
-
96
- /**
97
- * Determine if the given key code is an arrow key.
98
- *
99
- * @param {number} keyCode The char code of the character to check.
100
- **/
101
- hinderInput.isArrowKey = function( keyCode ) {
102
- return [37, 38, 39, 40].indexOf( keyCode ) !== -1;
74
+ return (keyCode > 31 && keyCode < 37)
75
+ || (keyCode > 40 && keyCode < 127)
76
+ || (keyCode > 185 && keyCode < 223);
103
77
  };
104
78
 
105
79
  /**
@@ -112,4 +86,16 @@
112
86
  return event.altKey || event.ctrlKey || event.metaKey;
113
87
  };
114
88
 
89
+ /**
90
+ * The default options for hinderInput.
91
+ **/
92
+ hinderInput.defaults = {
93
+ onAdd: function( value ) {
94
+ return;
95
+ },
96
+ onDelete: function() {
97
+ return;
98
+ }
99
+ };
100
+
115
101
  })( jQuery );
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hinderinputjs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
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-08-04 00:00:00.000000000 Z
12
+ date: 2012-08-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
@@ -60,7 +60,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
60
60
  version: '0'
61
61
  segments:
62
62
  - 0
63
- hash: -806024439033560381
63
+ hash: 3659832406573053636
64
64
  required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  version: '0'
70
70
  segments:
71
71
  - 0
72
- hash: -806024439033560381
72
+ hash: 3659832406573053636
73
73
  requirements: []
74
74
  rubyforge_project:
75
75
  rubygems_version: 1.8.24