jquery-atwho-rails 0.1.1 → 0.1.2

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/README.md CHANGED
@@ -4,7 +4,7 @@ bind your textarea
4
4
 
5
5
  ```javascript
6
6
  data = ['tom','john'];
7
- $('textarea').atwho({'debug':true,'data':data});
7
+ $('textarea').atwho("@",{'debug':true,'data':data});
8
8
  ```
9
9
 
10
10
  that's it, check it out!
@@ -40,8 +40,6 @@
40
40
  left: 0,
41
41
  top:0,
42
42
  zIndex: -20000,
43
- 'word-wrap':'break-word',
44
- /* wrap long line as textarea do. not work in ie < 8 */
45
43
  'white-space':'pre-wrap'
46
44
  }
47
45
  $.each(this.css,function(i,p){
@@ -74,10 +72,14 @@
74
72
  flags:{},
75
73
  theflag:null,
76
74
  options:{},
75
+ search_word:{},
77
76
  searchWord:function() {
78
- // just used in At.watchWithData
77
+ // just used in At.watchWithData
78
+ search_word = this.search_word[this.theflag];
79
+ if (search_word)
80
+ return search_word;
79
81
  var match = /data-keyname=['?]\$\{(\w+)\}/g.exec(this.getOpt('tpl'));
80
- return !_isNil(match) ? match[1] : null;
82
+ return this.search_word[this.theflag] = !_isNil(match) ? match[1] : null;
81
83
  },
82
84
  getOpt: function(key) {
83
85
  var flag = this.theflag;
@@ -90,6 +92,15 @@
90
92
  /* @ offset*/
91
93
  offset: function() {
92
94
  $inputor = this.$inputor;
95
+
96
+ if (document.selection) {// IE!!!
97
+ var Sel = document.selection.createRange();
98
+ x = Sel.boundingLeft + $inputor.scrollLeft();
99
+ y = Sel.boundingTop + Sel.boundingHeight
100
+ + $(window).scrollTop() + $inputor.scrollTop();
101
+ return {'top':y,'left':x};
102
+ }
103
+
93
104
  mirror = $inputor.data("mirror");
94
105
  if (_isNil(mirror)) {
95
106
  mirror = new Mirror($inputor);
@@ -107,10 +118,6 @@
107
118
  .replace(/>/g, '&gt;')
108
119
  .replace(/`/g,'&#96;')
109
120
  .replace(/"/g,'&quot;');
110
- if ($.browser.msie) {
111
- rep_str = parseInt($.browser.version) < 8 ? "&nbsp;" : "<span> </span>"
112
- value = value.replace(/ /g,rep_str);
113
- }
114
121
  return value.replace(/\r\n|\r|\n/g,"<br />");
115
122
  }
116
123
  /* 克隆完inputor后将原来的文本内容根据
@@ -136,10 +143,9 @@
136
143
  //FIXME: -$(window).scrollTop() get "wrong" offset.
137
144
  // but is good for $inputor.scrollTop();
138
145
  // jquey 1. + 07.1 fixed the scrollTop problem!?
139
- y = offset.top + at_pos.top + line_height
140
- - $inputor.scrollTop();
146
+ y = offset.top + at_pos.top + line_height - $inputor.scrollTop();
141
147
  x = offset.left + at_pos.left - $inputor.scrollLeft();
142
-
148
+
143
149
  return {'top':y,'left':x};
144
150
  },
145
151
  cache: function(key,value) {
@@ -303,7 +309,12 @@
303
309
  items = $.map(data,function(item,i) {
304
310
  //support plain object also
305
311
  var name = $.isPlainObject(item) ? item[self.searchWord()] : item;
306
- match = name.match((new RegExp(key.text.replace("+","\\+"),"i")));
312
+ try {
313
+ match = name.match((new RegExp(key.text.replace("+","\\+"),"i")));
314
+ } catch(e) {
315
+ _log("watchWithData.error",e);
316
+ return null;
317
+ }
307
318
  return match ? item : null;
308
319
  });
309
320
  }
@@ -555,7 +566,8 @@
555
566
  }
556
567
  $.fn.caretPos = function(pos) {
557
568
  var inputor = this[0];
558
- if (pos) {
569
+ inputor.focus();
570
+ if (pos) {
559
571
  return setCaretPos(inputor,pos);
560
572
  } else {
561
573
  return getCaretPos(inputor);
@@ -1,7 +1,7 @@
1
1
  module Jquery
2
2
  module Atwho
3
3
  module Rails
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,60 +1,56 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: jquery-atwho-rails
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 1
9
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - ichord
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2012-03-19 00:00:00 +08:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-03-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
31
22
  type: :development
32
- version_requirements: *id001
33
- - !ruby/object:Gem::Dependency
34
- name: generator_spec
35
23
  prerelease: false
36
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
37
25
  none: false
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: generator_spec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
44
38
  type: :development
45
- version_requirements: *id002
46
- description: |-
47
- This is a jQuery plugin
48
- that implement Twitter/Weibo like @ mentions.
49
- email:
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: ! "This is a jQuery plugin \n that implement Twitter/Weibo like @
47
+ mentions."
48
+ email:
50
49
  - chord.luo@gmail.com
51
50
  executables: []
52
-
53
51
  extensions: []
54
-
55
52
  extra_rdoc_files: []
56
-
57
- files:
53
+ files:
58
54
  - .gitignore
59
55
  - Gemfile
60
56
  - README.md
@@ -67,38 +63,30 @@ files:
67
63
  - lib/jquery-atwho-rails/version.rb
68
64
  - spec/generators/install_generator_spec.rb
69
65
  - spec/spec_helper.rb
70
- has_rdoc: true
71
66
  homepage: http://ichord.github.com/jquery-atwho-rails
72
67
  licenses: []
73
-
74
68
  post_install_message:
75
69
  rdoc_options: []
76
-
77
- require_paths:
70
+ require_paths:
78
71
  - lib
79
- required_ruby_version: !ruby/object:Gem::Requirement
72
+ required_ruby_version: !ruby/object:Gem::Requirement
80
73
  none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- segments:
85
- - 0
86
- version: "0"
87
- required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
79
  none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- segments:
93
- - 0
94
- version: "0"
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
95
84
  requirements: []
96
-
97
85
  rubyforge_project: jquery-atwho-rails
98
- rubygems_version: 1.3.7
86
+ rubygems_version: 1.8.19
99
87
  signing_key:
100
88
  specification_version: 3
101
- summary: "jquery plugin: @mentions"
102
- test_files:
89
+ summary: ! 'jquery plugin: @mentions'
90
+ test_files:
103
91
  - spec/generators/install_generator_spec.rb
104
92
  - spec/spec_helper.rb