rankle 0.0.2 → 0.0.3

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: 074be4978d90fa4f0456dc867138970a59d0aaf4
4
- data.tar.gz: 9c6742f8b6f14098c5c62ee2748d5f46c8241f34
3
+ metadata.gz: 0bd53864ab5c3ebe82169b4c56529ab2b8f4537b
4
+ data.tar.gz: d36b947d0862c318cb2ca4a8eab43e981766eb55
5
5
  SHA512:
6
- metadata.gz: 431ea786772022a565750d33713834bdb8c4f4828f8dc99f05cc70fb92fd291e5b08b90a0700368d2ff6443e2e62e97236581fc9e39e9bc5a8887b3faadb2427
7
- data.tar.gz: 6797af0d99cc9aa1a85be6de905606ca84b864f9546d7cf667225f295a92db5c8adcf97528418aad01f802aa6ed2c5e09d566eff5e3fab646523fc1a39f6c089
6
+ metadata.gz: 0a89a97093b96fb436c66204ebcda541a1448718881562799bb05749435cf97a988540f801fd893f64c231f382d999fc196a8450853ef57b57a4fb39709f6559
7
+ data.tar.gz: 777f55941e126d0d5a0112341d3d2fbc115cdf802067e380eb473fefd2c1e301671c49cd953b734898bd213c398bd016438c117e013c35e58547a0e833c477d3
@@ -1,4 +1,4 @@
1
- class CreateRankleIndices < ActiveRecord::Migration
1
+ class CreateRankleIndices < ActiveRecord::Migration[5.0]
2
2
  def change
3
3
  create_table :rankle_indices do |t|
4
4
  t.string :indexable_name
@@ -14,4 +14,4 @@ class CreateRankleIndices < ActiveRecord::Migration
14
14
  add_index :rankle_indices, :indexable_type
15
15
  add_index :rankle_indices, :indexable_position
16
16
  end
17
- end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module Rankle
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -17,6 +17,7 @@ class RankleIndex < ActiveRecord::Base
17
17
  if @rankers[instance.class] && @rankers[instance.class].strategy
18
18
  position = instance.class.ranked.each_with_index { |record, index| break index if @rankers[instance.class].strategy.call(instance, record) } unless @rankers[instance.class].strategy.is_a?(Symbol)
19
19
  end
20
+ position = position.count if position.is_a?(ActiveRecord::Relation)
20
21
  position = instance.class.count - 1 if position.nil? || position.is_a?(Array)
21
22
  instance.rank position
22
23
  if @rankers[instance.class] && @rankers[instance.class].strategy.is_a?(Symbol)
@@ -26,20 +27,20 @@ class RankleIndex < ActiveRecord::Base
26
27
 
27
28
  def self.rank instance, name, position
28
29
  existing_indices = if name == :default
29
- RankleIndex.where indexable_name: name.to_s, indexable_type: instance.class
30
+ RankleIndex.where indexable_name: name.to_s, indexable_type: instance.class.to_s
30
31
  else
31
32
  RankleIndex.where indexable_name: name.to_s
32
33
  end
33
- position = existing_indices.length - 1 if position > existing_indices.length
34
+ position = existing_indices.count - 1 if position > existing_indices.count
34
35
  position = 0 if position < 0
35
- index = RankleIndex.where(indexable_name: name.to_s, indexable_id: instance.id, indexable_type: instance.class).first_or_create!
36
+ index = RankleIndex.where(indexable_name: name.to_s, indexable_id: instance.id, indexable_type: instance.class.to_s).first_or_create!
36
37
  index.update_attribute(:row_order_position, position)
37
38
  end
38
39
 
39
40
  def self.position instance, name
40
- indexable_position = where(indexable_name: name.to_s, indexable_id: instance.id, indexable_type: instance.class).first_or_create!.indexable_position
41
+ indexable_position = where(indexable_name: name.to_s, indexable_id: instance.id, indexable_type: instance.class.to_s).first_or_create!.indexable_position
41
42
  indexable_scope = where(indexable_name: name.to_s)
42
- indexable_scope = indexable_scope.where(indexable_type: instance.class) if name == :default
43
+ indexable_scope = indexable_scope.where(indexable_type: instance.class.to_s) if name == :default
43
44
  indexable_scope = indexable_scope.where('indexable_position < ?', indexable_position)
44
45
  indexable_scope.count
45
46
  end
@@ -2,7 +2,7 @@ require_relative '../support/test_helper'
2
2
 
3
3
  class TestSetPosition < Minitest::Test
4
4
  def test_initializing_position_makes_six_queries
5
- assert_queries(8) do
5
+ assert_queries(10) do
6
6
  apple = Fruit.create! name: 'apple'
7
7
  end
8
8
  end
@@ -10,7 +10,7 @@ class TestSetPosition < Minitest::Test
10
10
  def test_update_position_makes_three_queries
11
11
  apple = Fruit.create! name: 'apple'
12
12
 
13
- assert_queries(4) do
13
+ assert_queries(6) do
14
14
  apple.update_attribute :position, 1
15
15
  end
16
16
  end
@@ -18,7 +18,7 @@ class TestSetPosition < Minitest::Test
18
18
  def test_update_rank_makes_three_queries
19
19
  apple = Fruit.create! name: 'apple'
20
20
 
21
- assert_queries(4) do
21
+ assert_queries(6) do
22
22
  apple.rank 1
23
23
  end
24
24
  end
@@ -26,7 +26,7 @@ class TestSetPosition < Minitest::Test
26
26
  def test_initializing_position_with_a_proc_makes_eight_queries
27
27
  Fruit.send :ranks, ->(a, b) { a.name < b.name }
28
28
 
29
- assert_queries(10) do
29
+ assert_queries(13) do
30
30
  Fruit.create! name: 'apple'
31
31
  end
32
32
  end
metadata CHANGED
@@ -1,139 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rankle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wil
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-22 00:00:00.000000000 Z
11
+ date: 2017-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ranked-model
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.7'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.7'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '10.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sqlite3
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec-expectations
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: database_cleaner
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: factory_girl_rails
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: yard
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  description: Rankle provides multi-resource ranking.
@@ -143,7 +143,7 @@ executables: []
143
143
  extensions: []
144
144
  extra_rdoc_files: []
145
145
  files:
146
- - .gitignore
146
+ - ".gitignore"
147
147
  - Gemfile
148
148
  - LICENSE
149
149
  - LICENSE.txt
@@ -178,17 +178,17 @@ require_paths:
178
178
  - lib
179
179
  required_ruby_version: !ruby/object:Gem::Requirement
180
180
  requirements:
181
- - - '>='
181
+ - - ">="
182
182
  - !ruby/object:Gem::Version
183
183
  version: '0'
184
184
  required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  requirements:
186
- - - '>='
186
+ - - ">="
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  requirements: []
190
190
  rubyforge_project:
191
- rubygems_version: 2.2.2
191
+ rubygems_version: 2.4.5.1
192
192
  signing_key:
193
193
  specification_version: 4
194
194
  summary: Rankle provides multi-resource ranking.
@@ -205,4 +205,3 @@ test_files:
205
205
  - test/support/models.rb
206
206
  - test/support/schema.rb
207
207
  - test/support/test_helper.rb
208
- has_rdoc: