model_sorter 0.0.1 → 0.0.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.
- checksums.yaml +4 -4
- data/README.md +43 -37
- data/lib/model_sorter.rb +7 -4
- data/lib/model_sorter/version.rb +1 -1
- data/spec/model_sorter_spec.rb +8 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9ca7532ce31c4994d2f549197394533f76859f1
|
4
|
+
data.tar.gz: 2791263ed77cf387556f271758e3eb2b23a45627
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
22
|
-
|
23
|
-
__In your Coffee__
|
17
|
+
__In your Model__
|
24
18
|
|
25
19
|
```
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
26
|
+
__In your Coffee__
|
27
|
+
|
28
|
+
组装出Hash:{ id: index, id: index, ... }
|
37
29
|
|
38
30
|
```
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
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
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
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(
|
6
|
-
|
7
|
-
counter
|
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}
|
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"]
|
data/lib/model_sorter/version.rb
CHANGED
data/spec/model_sorter_spec.rb
CHANGED
@@ -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 "
|
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.
|
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
|