ransack 2.4.0 → 2.4.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: f5cd517575121b1f2c1041501645a95680a4efbe82c0b2d6c74e079d080cda29
4
- data.tar.gz: f927c47bfc28f15d7a24eb2761ae1d003ff18912c1c91e7716ed2628f9012ccc
3
+ metadata.gz: 2c8153add4e8f7cc4123bb1c6b7f8b6f4db1fdbb65c2d8498a61ef7fc98eea53
4
+ data.tar.gz: 1bae6d37282b621109534060b7c32ecbff7c02366cff88d271d48607ca6fd4cb
5
5
  SHA512:
6
- metadata.gz: be9485ce5f692f990c7b8c5b59c961311783fafb845c3580dbd0d08eb62e24c1067da75e98f24cd4553e7db21a15531ca2943c1633566995a6e7c64d6310d2f2
7
- data.tar.gz: 3fbca263c9e5f399695e9cc69e50762fc72875860ad495c04368ff84d90c68100d5ca1b6db22aa17a5c2c52efccd4d99bc0c29b5485ae6608390a606fd35ac18
6
+ metadata.gz: ec86fcdc8b81a73c77f3da4e3e9eb2ce7480cae4ce948d64c55d5514d836474fe0c60c727be5d1bca39814afdc96c8bd997e2d245d557689badea217fce67f92
7
+ data.tar.gz: 6526a66311015b73c4132d7c1b95b2006526cf929c47cb5aec91fc79287f07eb0df85a47d22e47d2b88547796501ce8ecb57c81c044e0113f716e45e516b151d
@@ -0,0 +1,3 @@
1
+ ---
2
+
3
+ tidelift: rubygems/ransack
@@ -0,0 +1,12 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ At the moment, only the latest major.minor release stream is supported with
6
+ security updates.
7
+
8
+ ## Reporting a Vulnerability
9
+
10
+ Please use the Tidelift security contact to [report a security
11
+ vulnerability](https://tidelift.com/security). Tidelift will coordinate the fix
12
+ and disclosure.
@@ -0,0 +1,120 @@
1
+ name: test
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+
7
+ jobs:
8
+ sqlite3:
9
+ runs-on: ubuntu-20.04
10
+ strategy:
11
+ fail-fast: false
12
+ matrix:
13
+ rails:
14
+ - v6.1.0.rc2
15
+ - v6.0.3
16
+ - 6-0-stable
17
+ - 5-2-stable
18
+ - v5.2.4
19
+ ruby:
20
+ - 2.7.2
21
+ - 2.6.6
22
+ env:
23
+ DB: sqlite3
24
+ RAILS: ${{ matrix.rails }}
25
+ steps:
26
+ - uses: actions/checkout@v2
27
+ - name: Set up Ruby
28
+ uses: ruby/setup-ruby@v1
29
+ with:
30
+ ruby-version: ${{ matrix.ruby }}
31
+ - name: Install dependencies
32
+ run: bundle install
33
+ - name: Run tests
34
+ run: bundle exec rspec
35
+
36
+ mysql:
37
+ runs-on: ubuntu-20.04
38
+ strategy:
39
+ fail-fast: false
40
+ matrix:
41
+ rails:
42
+ - v6.1.0.rc2
43
+ - v6.0.3
44
+ - 6-0-stable
45
+ - 5-2-stable
46
+ - v5.2.4
47
+ ruby:
48
+ - 2.7.2
49
+ - 2.6.6
50
+ env:
51
+ DB: mysql
52
+ RAILS: ${{ matrix.rails }}
53
+ MYSQL_USERNAME: root
54
+ MYSQL_PASSWORD: root
55
+ steps:
56
+ - uses: actions/checkout@v2
57
+ - name: Set up Ruby
58
+ uses: ruby/setup-ruby@v1
59
+ with:
60
+ ruby-version: ${{ matrix.ruby }}
61
+ - name: Startup MySQL
62
+ run: |
63
+ sudo systemctl start mysql.service
64
+ - name: Setup databases
65
+ run: |
66
+ mysql --user=root --password=root --host=127.0.0.1 -e 'create database ransack collate utf8_general_ci;';
67
+ mysql --user=root --password=root --host=127.0.0.1 -e 'use ransack;show variables like "%character%";show variables like "%collation%";';
68
+ - name: Install dependencies
69
+ run: bundle install
70
+ - name: Run tests
71
+ run: bundle exec rspec
72
+
73
+ postgres:
74
+ runs-on: ubuntu-20.04
75
+ strategy:
76
+ fail-fast: false
77
+ matrix:
78
+ rails:
79
+ - v6.1.0.rc2
80
+ - v6.0.3
81
+ - 6-0-stable
82
+ - 5-2-stable
83
+ - v5.2.4
84
+ ruby:
85
+ - 2.7.2
86
+ - 2.6.6
87
+ env:
88
+ DB: postgres
89
+ RAILS: ${{ matrix.rails }}
90
+ DATABASE_USERNAME: postgres
91
+ DATABASE_PASSWORD: postgres
92
+ DATABASE_HOST: 127.0.0.1
93
+ services:
94
+ postgres:
95
+ image: postgres
96
+ ports:
97
+ - 5432:5432
98
+ env:
99
+ POSTGRES_PASSWORD: postgres
100
+ POSTGRES_HOST_AUTH_METHOD: trust
101
+ # Set health checks to wait until postgres has started
102
+ options: >-
103
+ --health-cmd pg_isready
104
+ --health-interval 10s
105
+ --health-timeout 5s
106
+ --health-retries 5
107
+
108
+ steps:
109
+ - uses: actions/checkout@v2
110
+ - name: Set up Ruby
111
+ uses: ruby/setup-ruby@v1
112
+ with:
113
+ ruby-version: ${{ matrix.ruby }}
114
+ - name: Setup databases
115
+ run: |
116
+ psql -h localhost -p 5432 -W postgres -c 'create database ransack;' -U postgres;
117
+ - name: Install dependencies
118
+ run: bundle install
119
+ - name: Run tests
120
+ run: bundle exec rspec
@@ -1,5 +1,9 @@
1
1
  # Change Log
2
2
 
3
+ * Add `ActiveRecord::Base.ransack!` which raises error if passed unknown condition
4
+
5
+ *Aaron Lipman*
6
+
3
7
  ## 2.4.0 - 2020-11-27
4
8
 
5
9
  *
@@ -115,9 +115,6 @@ Here's a quick guide:
115
115
  $ git config --global user.email "contributor@example.com"
116
116
 
117
117
  10. Commit your changes (`git commit -am 'Add feature/fix bug/improve docs'`).
118
- If your pull request only contains documentation changes, please remember
119
- to add `[skip ci]` to the beginning of your commit message so the Travis
120
- test suite doesn't :runner: needlessly.
121
118
 
122
119
  11. If necessary, rebase your commits into logical chunks, without errors. To
123
120
  interactively rebase and cherry-pick from, say, the last 10 commits:
data/README.md CHANGED
@@ -1,10 +1,6 @@
1
1
  # ![Ransack](./logo/ransack-h.png "Ransack")
2
2
 
3
- **MAINTAINER WANTED**
4
-
5
- Please see the [Maintainer wanted issue](https://github.com/activerecord-hackery/ransack/issues/1159) if you are interested.
6
-
7
- [![Build Status](https://travis-ci.org/activerecord-hackery/ransack.svg)](https://travis-ci.org/activerecord-hackery/ransack)
3
+ [![Build Status](https://github.com/activerecord-hackery/ransack/workflows/test/badge.svg)](https://github.com/activerecord-hackery/ransack/actions)
8
4
  [![Gem Version](https://badge.fury.io/rb/ransack.svg)](http://badge.fury.io/rb/ransack)
9
5
  [![Code Climate](https://codeclimate.com/github/activerecord-hackery/ransack/badges/gpa.svg)](https://codeclimate.com/github/activerecord-hackery/ransack)
10
6
  [![Backers on Open Collective](https://opencollective.com/ransack/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/ransack/sponsors/badge.svg)](#sponsors)
@@ -21,7 +17,7 @@ instead.
21
17
 
22
18
  ## Getting started
23
19
 
24
- Ransack is compatible with Rails 6.0, 5.0, 5.1 and 5.2 on Ruby 2.3 and later.
20
+ Ransack is supported for Rails 6.1, 6.0, 5.2 on Ruby 2.6.6 and later.
25
21
 
26
22
  In your Gemfile, for the last officially released gem:
27
23
 
@@ -45,27 +41,14 @@ gem 'ransack', github: 'activerecord-hackery/ransack'
45
41
 
46
42
  ## Usage
47
43
 
48
- Ransack can be used in one of two modes, simple or advanced.
49
-
50
- ### Simple Mode
51
-
52
- This mode works much like MetaSearch, for those of you who are familiar with
53
- it, and requires very little setup effort.
54
-
55
- If you're coming from MetaSearch, things to note:
56
-
57
- 1. The default param key for search params is now `:q`, instead of `:search`.
58
- This is primarily to shorten query strings, though advanced queries (below)
59
- will still run afoul of URL length limits in most browsers and require a
60
- switch to HTTP POST requests. This key is [configurable](https://github.com/activerecord-hackery/ransack/wiki/Configuration).
44
+ Ransack can be used in one of two modes, simple or advanced. For
45
+ searching/filtering not requiring complex boolean logic, Ransack's simple
46
+ mode should meet your needs.
61
47
 
62
- 2. `form_for` is now `search_form_for`, and validates that a Ransack::Search
63
- object is passed to it.
48
+ If you're coming from MetaSearch (Ransack's predecessor), refer to the
49
+ [Updating From MetaSearch](#updating-from-metasearch) section
64
50
 
65
- 3. Common ActiveRecord::Relation methods are no longer delegated by the
66
- search object. Instead, you will get your search results (an
67
- ActiveRecord::Relation in the case of the ActiveRecord adapter) via a call to
68
- `Ransack#result`.
51
+ ### Simple Mode
69
52
 
70
53
  #### In your controller
71
54
 
@@ -88,6 +71,20 @@ def index
88
71
  end
89
72
  ```
90
73
 
74
+ ##### Default search parameter
75
+
76
+ Ransack uses a default `:q` param key for search params. This may be changed by
77
+ setting the `search_key` option in a Ransack initializer file (typically
78
+ `config/initializers/ransack.rb`):
79
+
80
+ ```
81
+ Ransack.configure do |c|
82
+ # Change default search parameter key name.
83
+ # Default key name is :q
84
+ c.search_key = :query
85
+ end
86
+ ```
87
+
91
88
  #### In your view
92
89
 
93
90
  The two primary Ransack view helpers are `search_form_for` and `sort_link`,
@@ -254,6 +251,20 @@ the order indicator arrow by passing `hide_indicator: true` in the sort link:
254
251
  default_order: { last_name: 'asc', first_name: 'desc' }) %>
255
252
  ```
256
253
 
254
+ #### PostgreSQL's sort option
255
+
256
+ The `NULLS FIRST` and `NULLS LAST` options can be used to determine whether nulls appear before or after non-null values in the sort ordering.
257
+
258
+ You may want to configure it like this:
259
+
260
+ ```rb
261
+ Ransack.configure do |c|
262
+ c.postgres_fields_sort_option = :nulls_first # or :nulls_last
263
+ end
264
+ ```
265
+
266
+ See this feature: https://www.postgresql.org/docs/13/queries-order.html
267
+
257
268
  ### Advanced Mode
258
269
 
259
270
  "Advanced" searches (ab)use Rails' nested attributes functionality in order to
@@ -674,6 +685,43 @@ Trying it out in `rails console`:
674
685
 
675
686
  That's it! Now you know how to whitelist/blacklist various elements in Ransack.
676
687
 
688
+ ### Handling unknown predicates or attributes
689
+
690
+ By default, Ransack will ignore any unknown predicates or attributes:
691
+
692
+ ```ruby
693
+ Article.ransack(unknown_attr_eq: 'Ernie').result.to_sql
694
+ => SELECT "articles".* FROM "articles"
695
+ ```
696
+
697
+ Ransack may be configured to raise an error if passed an unknown predicate or
698
+ attributes, by setting the `ignore_unknown_conditions` option to `false` in your
699
+ Ransack initializer file at `config/initializers/ransack.rb`:
700
+
701
+ ```ruby
702
+ Ransack.configure do |c|
703
+ # Raise errors if a query contains an unknown predicate or attribute.
704
+ # Default is true (do not raise error on unknown conditions).
705
+ c.ignore_unknown_conditions = false
706
+ end
707
+ ```
708
+
709
+ ```ruby
710
+ Article.ransack(unknown_attr_eq: 'Ernie')
711
+ # ArgumentError (Invalid search term unknown_attr_eq)
712
+ ```
713
+
714
+ As an alternative to setting a global configuration option, the `.ransack!`
715
+ class method also raises an error if passed an unknown condition:
716
+
717
+ ```ruby
718
+ Article.ransack!(unknown_attr_eq: 'Ernie')
719
+ # ArgumentError: Invalid search term unknown_attr_eq
720
+ ```
721
+
722
+ This is equivilent to the `ignore_unknown_conditions` configuration option,
723
+ except it may be applied on a case-by-case basis.
724
+
677
725
  ### Using Scopes/Class Methods
678
726
 
679
727
  Continuing on from the preceding section, searching by scopes requires defining
@@ -870,6 +918,28 @@ en:
870
918
  title: Old Ransack Namespaced Title
871
919
  ```
872
920
 
921
+ ### Updating From MetaSearch
922
+
923
+ Ransack works much like MetaSearch, for those of you who are familiar with
924
+ it, and requires very little setup effort.
925
+
926
+ If you're coming from MetaSearch, things to note:
927
+
928
+ 1. The default param key for search params is now `:q`, instead of `:search`.
929
+ This is primarily to shorten query strings, though advanced queries (below)
930
+ will still run afoul of URL length limits in most browsers and require a
931
+ switch to HTTP POST requests. This key is
932
+ [configurable](default-search-parameter) via setting the `search_key` option
933
+ in your Ransack intitializer file.
934
+
935
+ 2. `form_for` is now `search_form_for`, and validates that a Ransack::Search
936
+ object is passed to it.
937
+
938
+ 3. Common ActiveRecord::Relation methods are no longer delegated by the
939
+ search object. Instead, you will get your search results (an
940
+ ActiveRecord::Relation in the case of the ActiveRecord adapter) via a call to
941
+ `Ransack#result`.
942
+
873
943
  ## Mongoid
874
944
 
875
945
  Mongoid support has been moved to its own gem at [ransack-mongoid](https://github.com/activerecord-hackery/ransack-mongoid).
@@ -18,6 +18,10 @@ module Ransack
18
18
  Search.new(self, params, options)
19
19
  end
20
20
 
21
+ def ransack!(params = {}, options = {})
22
+ ransack(params, options.merge(ignore_unknown_conditions: false))
23
+ end
24
+
21
25
  def ransacker(name, opts = {}, &block)
22
26
  self._ransackers = _ransackers.merge name.to_s => Ransacker
23
27
  .new(self, name, opts, &block)
@@ -42,6 +42,13 @@ module Ransack
42
42
  if scope_or_sort.is_a?(Symbol)
43
43
  relation = relation.send(scope_or_sort)
44
44
  else
45
+ case Ransack.options[:postgres_fields_sort_option]
46
+ when :nulls_first
47
+ scope_or_sort = scope_or_sort.direction == :asc ? "#{scope_or_sort.to_sql} NULLS FIRST" : "#{scope_or_sort.to_sql} NULLS LAST"
48
+ when :nulls_last
49
+ scope_or_sort = scope_or_sort.direction == :asc ? "#{scope_or_sort.to_sql} NULLS LAST" : "#{scope_or_sort.to_sql} NULLS FIRST"
50
+ end
51
+
45
52
  relation = relation.order(scope_or_sort)
46
53
  end
47
54
  end
@@ -33,7 +33,8 @@ module Ransack
33
33
  :up_arrow => '▼'.freeze,
34
34
  :down_arrow => '▲'.freeze,
35
35
  :default_arrow => nil,
36
- :sanitize_scope_args => true
36
+ :sanitize_scope_args => true,
37
+ :postgres_fields_sort_option => nil
37
38
  }
38
39
 
39
40
  def configure
@@ -141,6 +142,21 @@ module Ransack
141
142
  self.options[:sanitize_scope_args] = boolean
142
143
  end
143
144
 
145
+ # The `NULLS FIRST` and `NULLS LAST` options can be used to determine
146
+ # whether nulls appear before or after non-null values in the sort ordering.
147
+ #
148
+ # User may want to configure it like this:
149
+ #
150
+ # Ransack.configure do |c|
151
+ # c.postgres_fields_sort_option = :nulls_first # or :nulls_last
152
+ # end
153
+ #
154
+ # See this feature: https://www.postgresql.org/docs/13/queries-order.html
155
+ #
156
+ def postgres_fields_sort_option=(setting)
157
+ self.options[:postgres_fields_sort_option] = setting
158
+ end
159
+
144
160
  # By default, Ransack displays sort order indicator arrows in sort links.
145
161
  # The default may be globally overridden in an initializer file like
146
162
  # `config/initializers/ransack.rb` as follows:
@@ -30,6 +30,7 @@ module Ransack
30
30
  )
31
31
  @scope_args = {}
32
32
  @sorts ||= []
33
+ @ignore_unknown_conditions = options[:ignore_unknown_conditions] == false ? false : true
33
34
  build(params.with_indifferent_access)
34
35
  end
35
36
 
@@ -45,7 +46,7 @@ module Ransack
45
46
  base.send("#{key}=", value)
46
47
  elsif @context.ransackable_scope?(key, @context.object)
47
48
  add_scope(key, value)
48
- elsif !Ransack.options[:ignore_unknown_conditions]
49
+ elsif !Ransack.options[:ignore_unknown_conditions] || !@ignore_unknown_conditions
49
50
  raise ArgumentError, "Invalid search term #{key}"
50
51
  end
51
52
  end
@@ -1,3 +1,3 @@
1
1
  module Ransack
2
- VERSION = '2.4.0'
2
+ VERSION = '2.4.1'
3
3
  end
@@ -122,6 +122,10 @@ module Ransack
122
122
  expect { Person.ransack('') }.to_not raise_error
123
123
  end
124
124
 
125
+ it 'raises exception if ransack! called with unknown condition' do
126
+ expect { Person.ransack!(unknown_attr_eq: 'Ernie') }.to raise_error
127
+ end
128
+
125
129
  it 'does not modify the parameters' do
126
130
  params = { name_eq: '' }
127
131
  expect { Person.ransack(params) }.not_to change { params }
@@ -173,5 +173,15 @@ module Ransack
173
173
  .to eq false
174
174
  end
175
175
  end
176
+
177
+ it "PG's sort option", if: ::ActiveRecord::Base.connection.adapter_name == "PostgreSQL" do
178
+ default = Ransack.options.clone
179
+
180
+ Ransack.configure { |c| c.postgres_fields_sort_option = :nulls_first }
181
+
182
+ expect(Ransack.options[:postgres_fields_sort_option]).to eq :nulls_first
183
+
184
+ Ransack.options = default
185
+ end
176
186
  end
177
187
  end
@@ -232,7 +232,7 @@ module Ransack
232
232
  context 'with an invalid condition' do
233
233
  subject { Search.new(Person, unknown_attr_eq: 'Ernie') }
234
234
 
235
- context 'when ignore_unknown_conditions is false' do
235
+ context 'when ignore_unknown_conditions configuration option is false' do
236
236
  before do
237
237
  Ransack.configure { |c| c.ignore_unknown_conditions = false }
238
238
  end
@@ -240,13 +240,39 @@ module Ransack
240
240
  specify { expect { subject }.to raise_error ArgumentError }
241
241
  end
242
242
 
243
- context 'when ignore_unknown_conditions is true' do
243
+ context 'when ignore_unknown_conditions configuration option is true' do
244
244
  before do
245
245
  Ransack.configure { |c| c.ignore_unknown_conditions = true }
246
246
  end
247
247
 
248
248
  specify { expect { subject }.not_to raise_error }
249
249
  end
250
+
251
+ subject(:with_ignore_unknown_conditions_false) {
252
+ Search.new(Person,
253
+ { unknown_attr_eq: 'Ernie' },
254
+ { ignore_unknown_conditions: false }
255
+ )
256
+ }
257
+
258
+ subject(:with_ignore_unknown_conditions_true) {
259
+ Search.new(Person,
260
+ { unknown_attr_eq: 'Ernie' },
261
+ { ignore_unknown_conditions: true }
262
+ )
263
+ }
264
+
265
+ context 'when ignore_unknown_conditions search parameter is absent' do
266
+ specify { expect { subject }.not_to raise_error }
267
+ end
268
+
269
+ context 'when ignore_unknown_conditions search parameter is false' do
270
+ specify { expect { with_ignore_unknown_conditions_false }.to raise_error ArgumentError }
271
+ end
272
+
273
+ context 'when ignore_unknown_conditions search parameter is true' do
274
+ specify { expect { with_ignore_unknown_conditions_true }.not_to raise_error }
275
+ end
250
276
  end
251
277
 
252
278
  it 'does not modify the parameters' do
@@ -507,6 +533,27 @@ module Ransack
507
533
  @s.sorts = 'id asc'
508
534
  expect(@s.result.first.id).to eq 1
509
535
  end
536
+
537
+ it "PG's sort option", if: ::ActiveRecord::Base.connection.adapter_name == "PostgreSQL" do
538
+ default = Ransack.options.clone
539
+
540
+ s = Search.new(Person, s: 'name asc')
541
+ expect(s.result.to_sql).to eq "SELECT \"people\".* FROM \"people\" ORDER BY \"people\".\"name\" ASC"
542
+
543
+ Ransack.configure { |c| c.postgres_fields_sort_option = :nulls_first }
544
+ s = Search.new(Person, s: 'name asc')
545
+ expect(s.result.to_sql).to eq "SELECT \"people\".* FROM \"people\" ORDER BY \"people\".\"name\" ASC NULLS FIRST"
546
+ s = Search.new(Person, s: 'name desc')
547
+ expect(s.result.to_sql).to eq "SELECT \"people\".* FROM \"people\" ORDER BY \"people\".\"name\" DESC NULLS LAST"
548
+
549
+ Ransack.configure { |c| c.postgres_fields_sort_option = :nulls_last }
550
+ s = Search.new(Person, s: 'name asc')
551
+ expect(s.result.to_sql).to eq "SELECT \"people\".* FROM \"people\" ORDER BY \"people\".\"name\" ASC NULLS LAST"
552
+ s = Search.new(Person, s: 'name desc')
553
+ expect(s.result.to_sql).to eq "SELECT \"people\".* FROM \"people\" ORDER BY \"people\".\"name\" DESC NULLS FIRST"
554
+
555
+ Ransack.options = default
556
+ end
510
557
  end
511
558
 
512
559
  describe '#method_missing' do
@@ -6,6 +6,8 @@ when 'mysql', 'mysql2'
6
6
  ActiveRecord::Base.establish_connection(
7
7
  adapter: 'mysql2',
8
8
  database: 'ransack',
9
+ username: ENV.fetch("MYSQL_USERNAME") { "root" },
10
+ password: ENV.fetch("MYSQL_PASSWORD") { "" },
9
11
  encoding: 'utf8'
10
12
  )
11
13
  when 'pg', 'postgres', 'postgresql'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ransack
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernie Miller
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-11-27 00:00:00.000000000 Z
14
+ date: 2020-12-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activerecord
@@ -66,8 +66,10 @@ executables: []
66
66
  extensions: []
67
67
  extra_rdoc_files: []
68
68
  files:
69
+ - ".github/FUNDING.yml"
70
+ - ".github/SECURITY.md"
71
+ - ".github/workflows/test.yml"
69
72
  - ".gitignore"
70
- - ".travis.yml"
71
73
  - CHANGELOG.md
72
74
  - CONTRIBUTING.md
73
75
  - Gemfile
@@ -1,47 +0,0 @@
1
- branches: master
2
-
3
- language: ruby
4
-
5
- rvm:
6
- - 2.6.6
7
-
8
- services:
9
- - mysql
10
-
11
- env:
12
- - RAILS=v6.1.0.rc1 DB=sqlite3
13
- - RAILS=v6.1.0.rc1 DB=mysql
14
- - RAILS=v6.1.0.rc1 DB=postgres
15
-
16
- - RAILS=v6.0.3 DB=sqlite3
17
- - RAILS=v6.0.3 DB=mysql
18
- - RAILS=v6.0.3 DB=postgres
19
-
20
- - RAILS=6-0-stable DB=sqlite3
21
- - RAILS=6-0-stable DB=mysql
22
- - RAILS=6-0-stable DB=postgres
23
-
24
- - RAILS=5-2-stable DB=sqlite3
25
- - RAILS=5-2-stable DB=mysql
26
- - RAILS=5-2-stable DB=postgres
27
-
28
- - RAILS=v5.2.4 DB=sqlite3
29
- - RAILS=v5.2.4 DB=mysql
30
- - RAILS=v5.2.4 DB=postgres
31
-
32
- before_script:
33
- - if [ "$DB" = "mysql" ];
34
- then
35
- mysql -e 'create database ransack collate utf8_general_ci;';
36
- mysql -e 'use ransack;show variables like "%character%";show variables like "%collation%";';
37
- fi
38
-
39
- - if [ "$DB" = "postgres" ];
40
- then
41
- psql -c 'create database ransack;' -U postgres;
42
- fi
43
-
44
- addons:
45
- code_climate:
46
- repo_token: 8b701c4364d51a0217105e08c06922d600cec3d9e60d546a89e3ddfe46e0664e
47
- postgresql: "9.6"