sortable-by 0.11.0 → 0.13.1

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
  SHA256:
3
- metadata.gz: bc4cdc4741e458addb43e7d95a66f12695cf601f4178d188de2fa5197d6dc199
4
- data.tar.gz: b1c4bb549dcdea2ca6879d5c4e360b75d099171ed2a3b1bd4e28fa89e0b968d9
3
+ metadata.gz: 4bb07dd11741d2ea29ae694e1e6bc11711e8427b137855ff84fe6760e182e59e
4
+ data.tar.gz: a5d2b6e874053630307e891855e542b6874adad75788e6a0c822a2e9336d490d
5
5
  SHA512:
6
- metadata.gz: 381a3fbb778b6540e44f76de77b733781f26686848342235b865608bcaa5aaa5878bbf184de2386570568642c637d419ffe7a68eb980ecd7e084eaf8564ad98c
7
- data.tar.gz: 705e4e7a6eae3f496ae2e84f3d2f818c4a0c2341d2e93bdb7ebde678bbc32d0f8b7c4375447168025c222bd466dde5ba72cd2624690ef5c5c99c03cb66c094e3
6
+ metadata.gz: 95feb9e2a5ba054e128572c35da39246760472ecb12c456976e267cac7eaa425c61505bce2037af98c5e33d5f20513571405395f1c462ad2054f6032d6600a5c
7
+ data.tar.gz: 610babd95b3ba593f9f566720e549929e13aef5031aa7330f7e87a07feac48b68483f2c5d2bc14489d81dd0728e39d405aeeb6d7681437598a98078e10f2e437
@@ -0,0 +1,21 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby-version: ["2.6", "2.7", "3.0"]
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+ - uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: ${{ matrix.ruby-version }}
20
+ bundler-cache: true
21
+ - run: bundle exec rake
data/.gitignore CHANGED
@@ -2,3 +2,4 @@ spec/tmp
2
2
  pkg
3
3
  *.gem
4
4
  .rake_tasks~
5
+ .rubocop-*
data/.rubocop.yml CHANGED
@@ -1,29 +1,15 @@
1
- AllCops:
2
- TargetRubyVersion: 2.2
1
+ inherit_gem:
2
+ rubocop-bsm:
3
+ - default.yml
4
+ inherit_mode:
5
+ merge:
6
+ - Exclude
3
7
 
8
+ AllCops:
9
+ TargetRubyVersion: 2.6
10
+ Naming/MethodParameterName:
11
+ MinNameLength: 2
4
12
  Naming/MemoizedInstanceVariableName:
5
13
  Enabled: false
6
-
7
- Metrics/AbcSize:
8
- Enabled: false
9
- Metrics/CyclomaticComplexity:
10
- Enabled: false
11
- Metrics/PerceivedComplexity:
12
- Enabled: false
13
14
  Naming/FileName:
14
15
  Exclude: [lib/sortable-by.rb]
15
- Metrics/BlockLength:
16
- Exclude: [spec/**]
17
- Metrics/MethodLength:
18
- Enabled: false
19
- Metrics/LineLength:
20
- Max: 120
21
-
22
- Style/NumericLiterals:
23
- Exclude: [spec/**]
24
- Style/TrailingCommaInArguments:
25
- EnforcedStyleForMultiline: consistent_comma
26
- Style/TrailingCommaInArrayLiteral:
27
- EnforcedStyleForMultiline: consistent_comma
28
- Style/TrailingCommaInHashLiteral:
29
- EnforcedStyleForMultiline: consistent_comma
data/Gemfile.lock CHANGED
@@ -1,63 +1,86 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sortable-by (0.11.0)
4
+ sortable-by (0.13.1)
5
5
  activerecord
6
6
  activesupport
7
7
 
8
8
  GEM
9
9
  remote: http://rubygems.org/
10
10
  specs:
11
- activemodel (5.2.0)
12
- activesupport (= 5.2.0)
13
- activerecord (5.2.0)
14
- activemodel (= 5.2.0)
15
- activesupport (= 5.2.0)
16
- arel (>= 9.0)
17
- activesupport (5.2.0)
11
+ activemodel (6.1.3)
12
+ activesupport (= 6.1.3)
13
+ activerecord (6.1.3)
14
+ activemodel (= 6.1.3)
15
+ activesupport (= 6.1.3)
16
+ activesupport (6.1.3)
18
17
  concurrent-ruby (~> 1.0, >= 1.0.2)
19
- i18n (>= 0.7, < 2)
20
- minitest (~> 5.1)
21
- tzinfo (~> 1.1)
22
- arel (9.0.0)
23
- ast (2.4.0)
24
- concurrent-ruby (1.0.5)
25
- diff-lcs (1.3)
26
- i18n (1.0.0)
18
+ i18n (>= 1.6, < 2)
19
+ minitest (>= 5.1)
20
+ tzinfo (~> 2.0)
21
+ zeitwerk (~> 2.3)
22
+ ast (2.4.2)
23
+ concurrent-ruby (1.1.8)
24
+ diff-lcs (1.4.4)
25
+ i18n (1.8.9)
27
26
  concurrent-ruby (~> 1.0)
28
- minitest (5.11.3)
29
- parallel (1.12.1)
30
- parser (2.5.0.5)
31
- ast (~> 2.4.0)
32
- powerpack (0.1.1)
27
+ minitest (5.14.4)
28
+ parallel (1.20.1)
29
+ parser (3.0.0.0)
30
+ ast (~> 2.4.1)
31
+ rack (2.2.3)
33
32
  rainbow (3.0.0)
34
- rake (12.3.1)
35
- rspec (3.7.0)
36
- rspec-core (~> 3.7.0)
37
- rspec-expectations (~> 3.7.0)
38
- rspec-mocks (~> 3.7.0)
39
- rspec-core (3.7.1)
40
- rspec-support (~> 3.7.0)
41
- rspec-expectations (3.7.0)
33
+ rake (13.0.3)
34
+ regexp_parser (2.1.1)
35
+ rexml (3.2.4)
36
+ rspec (3.10.0)
37
+ rspec-core (~> 3.10.0)
38
+ rspec-expectations (~> 3.10.0)
39
+ rspec-mocks (~> 3.10.0)
40
+ rspec-core (3.10.1)
41
+ rspec-support (~> 3.10.0)
42
+ rspec-expectations (3.10.1)
42
43
  diff-lcs (>= 1.2.0, < 2.0)
43
- rspec-support (~> 3.7.0)
44
- rspec-mocks (3.7.0)
44
+ rspec-support (~> 3.10.0)
45
+ rspec-mocks (3.10.2)
45
46
  diff-lcs (>= 1.2.0, < 2.0)
46
- rspec-support (~> 3.7.0)
47
- rspec-support (3.7.1)
48
- rubocop (0.54.0)
47
+ rspec-support (~> 3.10.0)
48
+ rspec-support (3.10.2)
49
+ rubocop (1.11.0)
49
50
  parallel (~> 1.10)
50
- parser (>= 2.5)
51
- powerpack (~> 0.1)
51
+ parser (>= 3.0.0.0)
52
52
  rainbow (>= 2.2.2, < 4.0)
53
+ regexp_parser (>= 1.8, < 3.0)
54
+ rexml
55
+ rubocop-ast (>= 1.2.0, < 2.0)
53
56
  ruby-progressbar (~> 1.7)
54
- unicode-display_width (~> 1.0, >= 1.0.1)
55
- ruby-progressbar (1.9.0)
56
- sqlite3 (1.3.13)
57
- thread_safe (0.3.6)
58
- tzinfo (1.2.5)
59
- thread_safe (~> 0.1)
60
- unicode-display_width (1.3.0)
57
+ unicode-display_width (>= 1.4.0, < 3.0)
58
+ rubocop-ast (1.4.1)
59
+ parser (>= 2.7.1.5)
60
+ rubocop-bsm (0.5.4)
61
+ rubocop (~> 1.0)
62
+ rubocop-performance
63
+ rubocop-rails
64
+ rubocop-rake
65
+ rubocop-rspec
66
+ rubocop-performance (1.10.1)
67
+ rubocop (>= 0.90.0, < 2.0)
68
+ rubocop-ast (>= 0.4.0)
69
+ rubocop-rails (2.9.1)
70
+ activesupport (>= 4.2.0)
71
+ rack (>= 1.1)
72
+ rubocop (>= 0.90.0, < 2.0)
73
+ rubocop-rake (0.5.1)
74
+ rubocop
75
+ rubocop-rspec (2.2.0)
76
+ rubocop (~> 1.0)
77
+ rubocop-ast (>= 1.1.0)
78
+ ruby-progressbar (1.11.0)
79
+ sqlite3 (1.4.2)
80
+ tzinfo (2.0.4)
81
+ concurrent-ruby (~> 1.0)
82
+ unicode-display_width (2.0.0)
83
+ zeitwerk (2.4.2)
61
84
 
62
85
  PLATFORMS
63
86
  ruby
@@ -66,9 +89,9 @@ DEPENDENCIES
66
89
  bundler
67
90
  rake
68
91
  rspec
69
- rubocop
92
+ rubocop-bsm
70
93
  sortable-by!
71
94
  sqlite3
72
95
 
73
96
  BUNDLED WITH
74
- 1.16.1
97
+ 2.1.4
data/README.md CHANGED
@@ -20,23 +20,23 @@ class Post < ActiveRecord::Base
20
20
  sortable_by :title, :id
21
21
  end
22
22
 
23
- Post.sorted_by('title') # => ORDER BY posts.title ASC
24
- Post.sorted_by('-title') # => ORDER BY posts.title DESC
25
- Post.sorted_by('bad,title') # => ORDER BY posts.title ASC
26
- Post.sorted_by(nil) # => ORDER BY posts.title ASC
23
+ Post.sorted_by('title') # => ORDER BY LOWER(posts.title) ASC
24
+ Post.sorted_by('-title') # => ORDER BY LOWER(posts.title) DESC
25
+ Post.sorted_by('bad,title') # => ORDER BY LOWER(posts.title) ASC
26
+ Post.sorted_by(nil) # => ORDER BY LOWER(posts.title) ASC
27
27
  ```
28
28
 
29
- Case-insensitive:
29
+ Case-sensitive:
30
30
 
31
31
  ```ruby
32
32
  class Post < ActiveRecord::Base
33
33
  sortable_by do |x|
34
- x.field :title, as: arel_table[:title].lower
34
+ x.field :title, case_sensitive: true
35
35
  x.field :id
36
36
  end
37
37
  end
38
38
 
39
- Post.sorted_by('title') # => ORDER BY LOWER(posts.title) ASC
39
+ Post.sorted_by('title') # => ORDER BY posts.title ASC
40
40
  ```
41
41
 
42
42
  With custom default:
@@ -46,7 +46,7 @@ class Post < ActiveRecord::Base
46
46
  sortable_by :id, :topic, :created_at, default: 'topic,-created_at'
47
47
  end
48
48
 
49
- Post.sorted_by(nil) # => ORDER BY posts.topic ASC, posts.created_at DESC
49
+ Post.sorted_by(nil) # => ORDER BY LOWER(posts.topic) ASC, posts.created_at DESC
50
50
  ```
51
51
 
52
52
  Composition:
@@ -68,8 +68,8 @@ Associations (eager load):
68
68
  class Product < ActiveRecord::Base
69
69
  belongs_to :shop
70
70
  sortable_by do |x|
71
- x.field :name, as: arel_table[:name].lower
72
- x.field :shop, as: Shop.arel_table[:name].lower, eager_load: :shop
71
+ x.field :name
72
+ x.field :shop, as: Shop.arel_table[:name], eager_load: :shop
73
73
  x.default 'shop,name'
74
74
  end
75
75
  end
@@ -77,11 +77,11 @@ end
77
77
 
78
78
  Associations (custom scope):
79
79
 
80
- ```
80
+ ```ruby
81
81
  class Product < ActiveRecord::Base
82
82
  belongs_to :shop
83
83
  sortable_by do |x|
84
- x.field :shop, as: Shop.arel_table[:name].lower, scope: -> { joins(:shop) }
84
+ x.field :shop, as: Shop.arel_table[:name], scope: -> { joins(:shop) }
85
85
  end
86
86
  end
87
87
  ```
data/lib/sortable_by.rb CHANGED
@@ -17,9 +17,9 @@ module ActiveRecord # :nodoc:
17
17
  duplicate
18
18
  end
19
19
 
20
- def field(name, opts = {})
20
+ def field(name, **opts)
21
21
  name = name.to_s
22
- @_fields[name] = Field.new(name, opts)
22
+ @_fields[name] = Field.new(name, **opts)
23
23
  @_default ||= name
24
24
  end
25
25
 
@@ -36,7 +36,7 @@ module ActiveRecord # :nodoc:
36
36
 
37
37
  protected
38
38
 
39
- def order(relation, expr, fallback = true)
39
+ def order(relation, expr, fallback: true)
40
40
  matched = false
41
41
  expr.to_s.split(',').each do |name|
42
42
  name.strip!
@@ -44,31 +44,32 @@ module ActiveRecord # :nodoc:
44
44
  rank = :asc
45
45
  if name[0] == '-'
46
46
  rank = :desc
47
- name = name[1..-1]
47
+ name = name[1..]
48
48
  end
49
49
 
50
50
  field = _fields[name]
51
51
  next unless field
52
52
 
53
- matched = true
53
+ matched = true
54
54
  relation = field.order(relation, rank)
55
55
  end
56
56
 
57
- relation = order(relation, _default, false) if fallback && !matched && _default
57
+ relation = order(relation, _default, fallback: false) if fallback && !matched && _default
58
58
  relation
59
59
  end
60
60
  end
61
61
 
62
62
  class Field # :nodoc:
63
- def initialize(name, opts = {})
64
- @cols = Array.wrap(opts[:as])
65
- @eager_load = Array.wrap(opts[:eager_load]).presence
63
+ STRING_TYPES = %i[string text].freeze # :nodoc:
64
+
65
+ def initialize(name, as: nil, scope: nil, eager_load: nil, case_sensitive: false)
66
+ @cols = Array.wrap(as)
67
+ @eager_load = Array.wrap(eager_load).presence
68
+ @case_sensitive = case_sensitive == true
66
69
 
67
70
  # validate custom_scope
68
- @custom_scope = opts[:scope]
69
- if @custom_scope && !@custom_scope.is_a?(Proc)
70
- raise ArgumentError, "Invalid sortable-by field '#{name}': scope must be a Proc."
71
- end
71
+ @custom_scope = scope
72
+ raise ArgumentError, "Invalid sortable-by field '#{name}': scope must be a Proc." if @custom_scope && !@custom_scope.is_a?(Proc)
72
73
 
73
74
  # normalize cols
74
75
  @cols.push name if @cols.empty?
@@ -77,9 +78,7 @@ module ActiveRecord # :nodoc:
77
78
  when String, Symbol, Arel::Attributes::Attribute, Arel::Nodes::Node
78
79
  next
79
80
  when Proc
80
- unless col.arity == 2
81
- raise ArgumentError, "Invalid sortable-by field '#{name}': proc must accept 2 arguments."
82
- end
81
+ raise ArgumentError, "Invalid sortable-by field '#{name}': proc must accept 2 arguments." unless col.arity == 2
83
82
  else
84
83
  raise ArgumentError, "Invalid sortable-by field '#{name}': invalid type #{col.class}."
85
84
  end
@@ -90,7 +89,10 @@ module ActiveRecord # :nodoc:
90
89
  @cols.each do |col|
91
90
  case col
92
91
  when String, Symbol
93
- relation = relation.order(col => rank)
92
+ type = relation.columns_hash[col.to_s].type
93
+ col = relation.arel_table[col]
94
+ col = col.lower if STRING_TYPES.include?(type) && !@case_sensitive
95
+ relation = relation.order(col.send(rank))
94
96
  when Arel::Nodes::Node, Arel::Attributes::Attribute
95
97
  relation = relation.order(col.send(rank))
96
98
  when Proc
@@ -121,10 +123,10 @@ module ActiveRecord # :nodoc:
121
123
  # sortable_by :title, :id
122
124
  # end
123
125
  #
124
- # # Case-insensitive
126
+ # # Case-sensitive
125
127
  # class Post < ActiveRecord::Base
126
128
  # sortable_by do |x|
127
- # x.field :title, as: arel_table[:title].lower
129
+ # x.field :title, case_sensitive: true
128
130
  # x.field :id
129
131
  # end
130
132
  # end
@@ -148,7 +150,7 @@ module ActiveRecord # :nodoc:
148
150
  #
149
151
  # sortable_by do |x|
150
152
  # x.field :name
151
- # x.field :shop, as: Shop.arel_table[:name].lower, eager_load: :shop
153
+ # x.field :shop, as: Shop.arel_table[:name], eager_load: :shop
152
154
  # x.default 'shop,name'
153
155
  # end
154
156
  # end
@@ -158,17 +160,16 @@ module ActiveRecord # :nodoc:
158
160
  # belongs_to :shop
159
161
  #
160
162
  # sortable_by do |x|
161
- # x.field :shop, as: Shop.arel_table[:name].lower, scope: -> { joins(:shop) }
163
+ # x.field :shop, as: Shop.arel_table[:name], scope: -> { joins(:shop) }
162
164
  # end
163
165
  # end
164
166
  #
165
- def sortable_by(*attributes)
167
+ def sortable_by(*attributes, **opts)
166
168
  config = _sortable_by_config
167
- opts = attributes.extract_options!
168
169
  default = opts.delete(:default)
169
170
 
170
171
  attributes.each do |name|
171
- config.field(name, opts)
172
+ config.field(name, **opts)
172
173
  end
173
174
  config.default(default) if default
174
175
  yield config if block_given?
data/sortable-by.gemspec CHANGED
@@ -1,7 +1,6 @@
1
-
2
1
  Gem::Specification.new do |s|
3
2
  s.name = 'sortable-by'
4
- s.version = '0.11.0'
3
+ s.version = '0.13.1'
5
4
  s.authors = ['Dimitrij Denissenko']
6
5
  s.email = ['dimitrij@blacksquaremedia.com']
7
6
  s.summary = 'Generate white-listed sort scopes from URL parameter values'
@@ -9,10 +8,10 @@ Gem::Specification.new do |s|
9
8
  s.homepage = 'https://github.com/bsm/sortable-by'
10
9
  s.license = 'MIT'
11
10
 
12
- s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^spec/}) }
11
+ s.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^spec/}) }
13
12
  s.test_files = `git ls-files -z -- spec/*`.split("\x0")
14
13
  s.require_paths = ['lib']
15
- s.required_ruby_version = '>= 2.2.0'
14
+ s.required_ruby_version = '>= 2.6'
16
15
 
17
16
  s.add_dependency 'activerecord'
18
17
  s.add_dependency 'activesupport'
@@ -20,6 +19,6 @@ Gem::Specification.new do |s|
20
19
  s.add_development_dependency 'bundler'
21
20
  s.add_development_dependency 'rake'
22
21
  s.add_development_dependency 'rspec'
23
- s.add_development_dependency 'rubocop'
22
+ s.add_development_dependency 'rubocop-bsm'
24
23
  s.add_development_dependency 'sqlite3'
25
24
  end
@@ -1,4 +1,4 @@
1
- require File.expand_path('./spec_helper', __dir__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActiveRecord::SortableBy do
4
4
  before do
@@ -8,7 +8,7 @@ describe ActiveRecord::SortableBy do
8
8
  end
9
9
  end
10
10
 
11
- it 'should have config' do
11
+ it 'has config' do
12
12
  expect(Post._sortable_by_config._fields.keys).to match_array(%w[title created])
13
13
  expect(Post._sortable_by_config._default).to eq('-created')
14
14
  expect(SubPost._sortable_by_config._fields.keys).to match_array(%w[title created])
@@ -24,7 +24,7 @@ describe ActiveRecord::SortableBy do
24
24
  expect(Product._sortable_by_config._default).to eq('shop,name')
25
25
  end
26
26
 
27
- it 'should simply order' do
27
+ it 'simplies order' do
28
28
  Post.create! title: 'A', created_at: Time.at(1515151500)
29
29
  Post.create! title: 'b', created_at: Time.at(1515151600)
30
30
  Post.create! title: 'C', created_at: Time.at(1515151400)
@@ -41,7 +41,7 @@ describe ActiveRecord::SortableBy do
41
41
  expect(Post.sorted_by(' title ').pluck(:title)).to eq(%w[A C b])
42
42
  end
43
43
 
44
- it 'should support STI inheritance and overrides' do
44
+ it 'supports STI inheritance and overrides' do
45
45
  SubPost.create! title: 'A', created_at: Time.at(1515151700)
46
46
  SubPost.create! title: 'b', created_at: Time.at(1515151600)
47
47
  Post.create! title: 'C', created_at: Time.at(1515151400)
@@ -56,7 +56,7 @@ describe ActiveRecord::SortableBy do
56
56
  expect(SubPost.sorted_by('title').pluck(:title)).to eq(%w[A b D])
57
57
  end
58
58
 
59
- it 'should support composition' do
59
+ it 'supports composition' do
60
60
  App.create! name: 'E', major: 0, minor: 9, patch: 2
61
61
  App.create! name: 'A', major: 1, minor: 0, patch: 1
62
62
  App.create! name: 'D', major: 1, minor: 0, patch: 6
@@ -68,7 +68,7 @@ describe ActiveRecord::SortableBy do
68
68
  expect(App.sorted_by('-version').pluck(:name)).to eq(%w[B C D A E])
69
69
  end
70
70
 
71
- it 'should support associations' do
71
+ it 'supports associations' do
72
72
  y = Shop.create! name: 'Y'
73
73
  x = Shop.create! name: 'X'
74
74
 
data/spec/spec_helper.rb CHANGED
@@ -2,9 +2,11 @@ ENV['RACK_ENV'] ||= 'test'
2
2
  require 'sortable-by'
3
3
  require 'rspec'
4
4
 
5
- ActiveRecord::Base.configurations['test'] = {
6
- 'adapter' => 'sqlite3',
7
- 'database' => ':memory:',
5
+ ActiveRecord::Base.configurations = {
6
+ 'test' => {
7
+ 'adapter' => 'sqlite3',
8
+ 'database' => ':memory:',
9
+ },
8
10
  }
9
11
  ActiveRecord::Base.establish_connection :test
10
12
 
@@ -15,14 +17,14 @@ ActiveRecord::Base.connection.create_table :posts do |t|
15
17
  end
16
18
 
17
19
  class Post < ActiveRecord::Base
18
- sortable_by :title, default: '-created' do |s|
20
+ sortable_by :title, default: '-created', case_sensitive: true do |s|
19
21
  s.field :created, as: arel_table[:created_at]
20
22
  end
21
23
  end
22
24
 
23
25
  class SubPost < Post
24
26
  sortable_by do |s|
25
- s.field :title, as: arel_table[:title].lower
27
+ s.field :title
26
28
  end
27
29
  end
28
30
 
@@ -63,8 +65,8 @@ class Product < ActiveRecord::Base
63
65
  belongs_to :shop
64
66
 
65
67
  sortable_by do |s|
66
- s.field :name, as: arel_table[:name].lower
67
- s.field :shop, as: Shop.arel_table[:name].lower, eager_load: :shop
68
+ s.field :name
69
+ s.field :shop, as: Shop.arel_table[:name], eager_load: :shop
68
70
  s.default 'shop,name'
69
71
  end
70
72
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sortable-by
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimitrij Denissenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-11 00:00:00.000000000 Z
11
+ date: 2021-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rubocop
84
+ name: rubocop-bsm
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -115,9 +115,9 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
+ - ".github/workflows/ruby.yml"
118
119
  - ".gitignore"
119
120
  - ".rubocop.yml"
120
- - ".travis.yml"
121
121
  - Gemfile
122
122
  - Gemfile.lock
123
123
  - LICENSE
@@ -126,7 +126,7 @@ files:
126
126
  - lib/sortable-by.rb
127
127
  - lib/sortable_by.rb
128
128
  - sortable-by.gemspec
129
- - spec/sortable_by_spec.rb
129
+ - spec/active_record/sortable_by_spec.rb
130
130
  - spec/spec_helper.rb
131
131
  homepage: https://github.com/bsm/sortable-by
132
132
  licenses:
@@ -140,18 +140,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
140
  requirements:
141
141
  - - ">="
142
142
  - !ruby/object:Gem::Version
143
- version: 2.2.0
143
+ version: '2.6'
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  requirements:
146
146
  - - ">="
147
147
  - !ruby/object:Gem::Version
148
148
  version: '0'
149
149
  requirements: []
150
- rubyforge_project:
151
- rubygems_version: 2.7.3
150
+ rubygems_version: 3.1.4
152
151
  signing_key:
153
152
  specification_version: 4
154
153
  summary: Generate white-listed sort scopes from URL parameter values
155
154
  test_files:
156
- - spec/sortable_by_spec.rb
155
+ - spec/active_record/sortable_by_spec.rb
157
156
  - spec/spec_helper.rb
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- sudo: false
2
- rvm:
3
- - 2.2
4
- - 2.3
5
- - 2.4
6
- gemfile:
7
- - Gemfile