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 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