model_sorter 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e0dbae7d4d8f161d6ed09382c9b497781cfc011f
4
- data.tar.gz: f0291a180591de44b306682aacf9cf717b147b0d
3
+ metadata.gz: b9ca7532ce31c4994d2f549197394533f76859f1
4
+ data.tar.gz: 2791263ed77cf387556f271758e3eb2b23a45627
5
5
  SHA512:
6
- metadata.gz: 6f68210638522b6c37fb4c8d8aa6542ceb18e24c511a1739e5ba443eb0e67d408f5d82f09b14df07f69c93fab8f4b54470cac1a6224420ae4c18d580d7de280d
7
- data.tar.gz: d8fe2b50ea8b970a6dd5e3af7e4c79d0cca68525521f1487ac34a4af80111e2fed3dc43e1e4eff5349652944371737f12d5f8458da899f4daac0f3aeb2b71cee
6
+ metadata.gz: b34bbb45a357b491960739e1f8badf75121c2dcb3cee751f3d9592a73e7d7dfe90f9f32705d53516dc048ea01e11aa6a4a650bd7b37a997852a9ec437cbd7438
7
+ data.tar.gz: 628c93e34c77da07ec34b3c61a313752aeb568a71fdb20457eefa8811ddb6021d3d8fe0201cc5b9970c3f194f55dad523d70ce82caa08789b6dd75dc2cdf8f22
data/README.md CHANGED
@@ -7,39 +7,35 @@
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  gem 'model_sorter'
10
-
11
- And then execute:
12
-
13
- $ bundle
14
-
15
- Or install it yourself as:
16
-
17
- $ gem install model-sorter
18
-
10
+
11
+ add this to 'config/initializes/model_sorter.rb'
12
+ module ModelSorter
13
+ SORT_COLUMN = "what_column_you_want"
14
+ end
19
15
  ## Usage
20
16
 
21
- 组装一个Hash:{ id: index, id: index, ... }
22
-
23
- __In your Coffee__
17
+ __In your Model__
24
18
 
25
19
  ```
26
- $.ajax(
27
- type: 'post',
28
- url: 'update_serial_number',
29
- data: { serial_hsh: {5:1, 6:2, 8:3, 1:4, 3:5} },
30
- dataType: 'text',
31
- success: (info) ->
32
- # ...
33
- )
20
+ class Post < ActiveRecord::Base
21
+ include Redis::Objects
22
+ include ModelSorter::Associations
23
+ end
34
24
  ```
35
25
 
36
- __In your Model__
26
+ __In your Coffee__
27
+
28
+ 组装出Hash:{ id: index, id: index, ... }
37
29
 
38
30
  ```
39
- class Post < ActiveRecord::Base
40
- include Redis::Objects
41
- include ModelSorter::Associations
42
- end
31
+ $.ajax(
32
+ type: '...',
33
+ url: '...',
34
+ data: { serial_hsh: {5:1, 6:2, 8:3, 1:4, 3:5} },
35
+ dataType: '...',
36
+ success: () ->
37
+ # ...
38
+ )
43
39
  ```
44
40
 
45
41
  __In your Controller__
@@ -47,17 +43,27 @@ __In your Controller__
47
43
  用sort_serial_number方法,传入hsh
48
44
 
49
45
  ```
50
- def index
51
- @posts = Post.sort_by!{ |p| p.__serial_number__.value }
52
- end
53
-
54
- def update_serial_number
55
- serial_hsh = params[:serial_hsh]
56
- if Post.sort_serial_number(serial_hsh)
57
- return render text: "success"
58
- else
59
- return render text: "fail"
60
- end
61
- end
46
+ def index
47
+ @posts = Post.sort_by!{ |p| p.ur_column_name.value }
48
+ end
49
+
50
+ def update_serial_number
51
+ serial_hsh = params[:serial_hsh]
52
+ if Post.sort_serial_number(serial_hsh)
53
+ return render text: "success"
54
+ else
55
+ return render text: "fail"
56
+ end
57
+ end
62
58
  ```
63
59
 
60
+ ## Note
61
+
62
+ 出现这个错误?请再看 Installation
63
+
64
+ uninitialized constant ModelSorter::SORT_COLUMN (NameError)
65
+
66
+
67
+
68
+
69
+
data/lib/model_sorter.rb CHANGED
@@ -1,15 +1,18 @@
1
1
  require "model_sorter/version"
2
2
 
3
3
  module ModelSorter
4
+ # SORT_COLUMN ||= "__serial_number__"
4
5
  module Associations
5
- def self.included(base)
6
- base.class_eval do
7
- counter :__serial_number__
6
+ def self.included(klass)
7
+ klass.class_eval do
8
+ #定义counter
9
+ counter ModelSorter::SORT_COLUMN.to_sym
8
10
 
11
+ #Redis批量写入所有klass对象counter
9
12
  def self.sort_serial_number hsh
10
13
  results = self.redis.multi do
11
14
  hsh.each do |id, sn|
12
- self.redis.set "#{self.name.downcase}:#{id}:__serial_number__", sn.to_i
15
+ self.redis.set "#{self.name.downcase}:#{id}:#{ModelSorter::SORT_COLUMN}", sn.to_i
13
16
  end
14
17
  end
15
18
  results.uniq == ["OK"]
@@ -1,3 +1,3 @@
1
1
  module ModelSorter
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -2,8 +2,13 @@
2
2
  require "redis-objects"
3
3
 
4
4
  $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
5
+
5
6
  require "model_sorter"
6
7
 
8
+ module ModelSorter
9
+ SORT_COLUMN = "ex_column"
10
+ end
11
+
7
12
  Redis.current = Redis.new(:host => '127.0.0.1', :port => 6379)
8
13
 
9
14
  describe ModelSorter do
@@ -31,12 +36,13 @@ describe ModelSorter do
31
36
 
32
37
  end
33
38
 
34
- it "save_serial_number" do
39
+ it "set User's all serial_number to redis" do
35
40
  User.sort_serial_number @hsh
36
41
 
37
42
  arr = @users.map do |u|
38
- u.__serial_number__.value
43
+ u.ex_column.value
39
44
  end
40
45
  expect(arr).to eq([5, 4, 3, 2, 1])
41
46
  end
47
+
42
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: model_sorter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott1743