paranoia 2.4.2 → 2.5.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/.github/workflows/build.yml +61 -0
- data/CHANGELOG.md +39 -0
- data/Gemfile +7 -5
- data/README.md +3 -0
- data/lib/paranoia/rspec.rb +21 -18
- data/lib/paranoia/version.rb +1 -1
- data/lib/paranoia.rb +25 -5
- data/paranoia.gemspec +9 -4
- metadata +10 -11
- data/.travis.yml +0 -39
- data/test/paranoia_test.rb +0 -1373
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f6122d4c46b302086def8b0beb87e3ca9c06ae7a834d117d7bb7a8b0fce11f80
|
|
4
|
+
data.tar.gz: 598b56a3af2868e8cbc8cb50f124b6d9d347dc2ca3af4a78012c01b9a6a281c0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7145f8fcc1e3a7810e96c772d92c8bc6624a30c4e3715ee85e3f34599585c3e2483c4f534790bf5031ff7f46f8c12b70d653182059f9896b5890d0e8c898a339
|
|
7
|
+
data.tar.gz: 1537f8613522860bf7f4e571026b1b3fff29f936433d8d0e841780a92173c8749e86a1f5a30800907568d0394b0d618af00ea9f555d45c15841e751ba6906fd5
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
|
2
|
+
# They are provided by a third-party and are governed by
|
|
3
|
+
# separate terms of service, privacy policy, and support
|
|
4
|
+
# documentation.
|
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
|
7
|
+
|
|
8
|
+
name: build
|
|
9
|
+
|
|
10
|
+
on: [push, pull_request]
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
runs-on: ubuntu-20.04
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
matrix:
|
|
18
|
+
ruby:
|
|
19
|
+
- 3.1
|
|
20
|
+
- '3.0'
|
|
21
|
+
- 2.7
|
|
22
|
+
- 2.6
|
|
23
|
+
- 2.5
|
|
24
|
+
# - jruby-9.2.19.0
|
|
25
|
+
# - jruby-9.3.1.0
|
|
26
|
+
rails:
|
|
27
|
+
- '~> 5.1.0'
|
|
28
|
+
- '~> 5.2.0'
|
|
29
|
+
- '~> 6.0.0'
|
|
30
|
+
- '~> 6.1.0'
|
|
31
|
+
- '~> 7.0.0'
|
|
32
|
+
- 'edge'
|
|
33
|
+
exclude:
|
|
34
|
+
# Rails edge is now 7.x and requires ruby 2.7
|
|
35
|
+
- rails: 'edge'
|
|
36
|
+
ruby: 2.6
|
|
37
|
+
- rails: 'edge'
|
|
38
|
+
ruby: 2.5
|
|
39
|
+
- rails: '~> 7.0.0'
|
|
40
|
+
ruby: 2.6
|
|
41
|
+
- rails: '~> 7.0.0'
|
|
42
|
+
ruby: 2.5
|
|
43
|
+
# Legacy Rails with newer rubies
|
|
44
|
+
- rails: '~> 5.1.0'
|
|
45
|
+
ruby: '3.0'
|
|
46
|
+
- rails: '~> 5.2.0'
|
|
47
|
+
ruby: '3.0'
|
|
48
|
+
- rails: '~> 5.1.0'
|
|
49
|
+
ruby: 3.1
|
|
50
|
+
- rails: '~> 5.2.0'
|
|
51
|
+
ruby: 3.1
|
|
52
|
+
|
|
53
|
+
env:
|
|
54
|
+
RAILS: ${{ matrix.rails }}
|
|
55
|
+
steps:
|
|
56
|
+
- uses: actions/checkout@v2
|
|
57
|
+
- uses: ruby/setup-ruby@v1
|
|
58
|
+
with:
|
|
59
|
+
ruby-version: ${{ matrix.ruby }}
|
|
60
|
+
bundler-cache: true
|
|
61
|
+
- run: bundle exec rake
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# paranoia Changelog
|
|
2
2
|
|
|
3
|
+
## 2.5.2
|
|
4
|
+
|
|
5
|
+
* [#526](https://github.com/rubysherpas/paranoia/pull/526) Do not include tests files in packaged gem
|
|
6
|
+
|
|
7
|
+
[Jason Fleetwood-Boldt](https://github.com/jasonfb)
|
|
8
|
+
* [#492](https://github.com/rubysherpas/paranoia/pull/492) Warn if acts_as_paranoid is called more than once on the same model
|
|
9
|
+
|
|
10
|
+
[Ignatius Reza](https://github.com/ignatiusreza)
|
|
11
|
+
|
|
12
|
+
## 2.5.1
|
|
13
|
+
|
|
14
|
+
* [#481](https://github.com/rubysherpas/paranoia/pull/481) Replaces hard coded `deleted_at` with `paranoia_column`.
|
|
15
|
+
|
|
16
|
+
[Hassanin Ahmed](https://github.com/sas1ni69)
|
|
17
|
+
|
|
18
|
+
## 2.5.0
|
|
19
|
+
|
|
20
|
+
* [#516](https://github.com/rubysherpas/paranoia/pull/516) Add support for ActiveRecord 7.0, drop support for EOL Ruby < 2.5 and Rails < 5.1
|
|
21
|
+
adding support for Rails 7
|
|
22
|
+
|
|
23
|
+
[Mathieu Jobin](https://github.com/mathieujobin)
|
|
24
|
+
* [#515](https://github.com/rubysherpas/paranoia/pull/515) Switch from Travis CI to GitHub Actions
|
|
25
|
+
|
|
26
|
+
[Shinichi Maeshima](https://github.com/willnet)
|
|
27
|
+
|
|
28
|
+
## 2.4.3
|
|
29
|
+
|
|
30
|
+
* [#503](https://github.com/rubysherpas/paranoia/pull/503) Bump activerecord dependency for Rails 6.1
|
|
31
|
+
|
|
32
|
+
[Jörg Schiller](https://github.com/joergschiller)
|
|
33
|
+
|
|
34
|
+
* [#483](https://github.com/rubysherpas/paranoia/pull/483) Update JRuby version to 9.2.8.0 + remove EOL Ruby 2.2
|
|
35
|
+
|
|
36
|
+
[Uwe Kubosch](https://github.com/donv)
|
|
37
|
+
|
|
38
|
+
* [#482](https://github.com/rubysherpas/paranoia/pull/482) Fix after_commit for Rails 6
|
|
39
|
+
|
|
40
|
+
[Ashwin Hegde](https://github.com/hashwin)
|
|
41
|
+
|
|
3
42
|
## 2.4.2
|
|
4
43
|
|
|
5
44
|
* [#470](https://github.com/rubysherpas/paranoia/pull/470) Add support for ActiveRecord 6.0
|
data/Gemfile
CHANGED
|
@@ -12,15 +12,17 @@ platforms :jruby do
|
|
|
12
12
|
gem 'activerecord-jdbcsqlite3-adapter'
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
if RUBY_ENGINE == 'rbx'
|
|
16
|
+
platforms :rbx do
|
|
17
|
+
gem 'rubinius-developer_tools'
|
|
18
|
+
gem 'rubysl', '~> 2.0'
|
|
19
|
+
gem 'rubysl-test-unit'
|
|
20
|
+
end
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
rails = ENV['RAILS'] || '~> 5.2.0'
|
|
22
24
|
|
|
23
|
-
if rails == '
|
|
25
|
+
if rails == 'edge'
|
|
24
26
|
gem 'rails', github: 'rails/rails'
|
|
25
27
|
else
|
|
26
28
|
gem 'rails', rails
|
data/README.md
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
[](https://badge.fury.io/rb/paranoia)
|
|
2
|
+
[](https://github.com/rubysherpas/paranoia/actions/workflows/build.yml)
|
|
3
|
+
|
|
1
4
|
**Notice:**
|
|
2
5
|
|
|
3
6
|
`paranoia` has some surprising behaviour (like overriding ActiveRecord's `delete` and `destroy`) and is not recommended for new projects. See [`discard`'s README](https://github.com/jhawthorn/discard#why-not-paranoia-or-acts_as_paranoid) for more details.
|
data/lib/paranoia/rspec.rb
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
if Rails.env.test?
|
|
2
|
+
require 'rspec/expectations'
|
|
2
3
|
|
|
3
|
-
# Validate the subject's class did call "acts_as_paranoid"
|
|
4
|
-
RSpec::Matchers.define :act_as_paranoid do
|
|
5
|
-
|
|
4
|
+
# Validate the subject's class did call "acts_as_paranoid"
|
|
5
|
+
RSpec::Matchers.define :act_as_paranoid do
|
|
6
|
+
match { |subject| subject.class.ancestors.include?(Paranoia) }
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
failure_message_proc = lambda do
|
|
9
|
+
"expected #{subject.class} to use `acts_as_paranoid`"
|
|
10
|
+
end
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
failure_message_when_negated_proc = lambda do
|
|
13
|
+
"expected #{subject.class} not to use `acts_as_paranoid`"
|
|
14
|
+
end
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
if respond_to?(:failure_message_when_negated)
|
|
17
|
+
failure_message(&failure_message_proc)
|
|
18
|
+
failure_message_when_negated(&failure_message_when_negated_proc)
|
|
19
|
+
else
|
|
20
|
+
# RSpec 2 compatibility:
|
|
21
|
+
failure_message_for_should(&failure_message_proc)
|
|
22
|
+
failure_message_for_should_not(&failure_message_when_negated_proc)
|
|
23
|
+
end
|
|
22
24
|
end
|
|
23
|
-
|
|
25
|
+
|
|
26
|
+
end
|
data/lib/paranoia/version.rb
CHANGED
data/lib/paranoia.rb
CHANGED
|
@@ -69,6 +69,7 @@ module Paranoia
|
|
|
69
69
|
next unless send(association.reflection.name)
|
|
70
70
|
association.decrement_counters
|
|
71
71
|
end
|
|
72
|
+
@_trigger_destroy_callback = true
|
|
72
73
|
@_disable_counter_cache = false
|
|
73
74
|
result
|
|
74
75
|
end
|
|
@@ -81,6 +82,10 @@ module Paranoia
|
|
|
81
82
|
raise(ActiveRecord::RecordNotDestroyed.new("Failed to destroy the record", self))
|
|
82
83
|
end
|
|
83
84
|
|
|
85
|
+
def trigger_transactional_callbacks?
|
|
86
|
+
super || @_trigger_destroy_callback && paranoia_destroyed?
|
|
87
|
+
end
|
|
88
|
+
|
|
84
89
|
def paranoia_delete
|
|
85
90
|
raise ActiveRecord::ReadOnlyRecord, "#{self.class} is marked as readonly" if readonly?
|
|
86
91
|
if persisted?
|
|
@@ -124,16 +129,16 @@ module Paranoia
|
|
|
124
129
|
def get_recovery_window_range(opts)
|
|
125
130
|
return opts[:recovery_window_range] if opts[:recovery_window_range]
|
|
126
131
|
return unless opts[:recovery_window]
|
|
127
|
-
(
|
|
132
|
+
(deletion_time - opts[:recovery_window]..deletion_time + opts[:recovery_window])
|
|
128
133
|
end
|
|
129
134
|
|
|
130
135
|
def within_recovery_window?(recovery_window_range)
|
|
131
136
|
return true unless recovery_window_range
|
|
132
|
-
recovery_window_range.cover?(
|
|
137
|
+
recovery_window_range.cover?(deletion_time)
|
|
133
138
|
end
|
|
134
139
|
|
|
135
140
|
def paranoia_destroyed?
|
|
136
|
-
|
|
141
|
+
deletion_time != paranoia_sentinel_value
|
|
137
142
|
end
|
|
138
143
|
alias :deleted? :paranoia_destroyed?
|
|
139
144
|
|
|
@@ -225,13 +230,24 @@ module Paranoia
|
|
|
225
230
|
end
|
|
226
231
|
end
|
|
227
232
|
|
|
228
|
-
|
|
233
|
+
if ActiveRecord.version.to_s > '7'
|
|
234
|
+
# Method deleted in https://github.com/rails/rails/commit/dd5886d00a2d5f31ccf504c391aad93deb014eb8
|
|
235
|
+
@association_cache.clear if persisted? && destroyed_associations.present?
|
|
236
|
+
else
|
|
237
|
+
clear_association_cache if destroyed_associations.present?
|
|
238
|
+
end
|
|
229
239
|
end
|
|
230
240
|
end
|
|
231
241
|
|
|
232
242
|
ActiveSupport.on_load(:active_record) do
|
|
233
243
|
class ActiveRecord::Base
|
|
234
244
|
def self.acts_as_paranoid(options={})
|
|
245
|
+
if included_modules.include?(Paranoia)
|
|
246
|
+
puts "[WARN] #{self.name} is calling acts_as_paranoid more than once!"
|
|
247
|
+
|
|
248
|
+
return
|
|
249
|
+
end
|
|
250
|
+
|
|
235
251
|
define_model_callbacks :restore, :real_destroy
|
|
236
252
|
|
|
237
253
|
alias_method :really_destroyed?, :destroyed?
|
|
@@ -283,6 +299,10 @@ ActiveSupport.on_load(:active_record) do
|
|
|
283
299
|
def paranoia_sentinel_value
|
|
284
300
|
self.class.paranoia_sentinel_value
|
|
285
301
|
end
|
|
302
|
+
|
|
303
|
+
def deletion_time
|
|
304
|
+
send(paranoia_column)
|
|
305
|
+
end
|
|
286
306
|
end
|
|
287
307
|
end
|
|
288
308
|
|
|
@@ -311,7 +331,7 @@ module ActiveRecord
|
|
|
311
331
|
def validate_each(record, attribute, value)
|
|
312
332
|
# if association is soft destroyed, add an error
|
|
313
333
|
if value.present? && value.paranoia_destroyed?
|
|
314
|
-
record.errors
|
|
334
|
+
record.errors.add(attribute, 'has been soft-deleted')
|
|
315
335
|
end
|
|
316
336
|
end
|
|
317
337
|
end
|
data/paranoia.gemspec
CHANGED
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
|
11
11
|
s.license = 'MIT'
|
|
12
12
|
s.summary = "Paranoia is a re-implementation of acts_as_paranoid for Rails 3, 4, and 5, using much, much, much less code."
|
|
13
13
|
s.description = <<-DSC
|
|
14
|
-
Paranoia is a re-implementation of acts_as_paranoid for Rails
|
|
14
|
+
Paranoia is a re-implementation of acts_as_paranoid for Rails 4, 5, 6, and 7,
|
|
15
15
|
using much, much, much less code. You would use either plugin / gem if you
|
|
16
16
|
wished that when you called destroy on an Active Record object that it
|
|
17
17
|
didn't actually destroy it, but just "hid" the record. Paranoia does this
|
|
@@ -22,14 +22,19 @@ Gem::Specification.new do |s|
|
|
|
22
22
|
|
|
23
23
|
s.required_rubygems_version = ">= 1.3.6"
|
|
24
24
|
|
|
25
|
-
s.required_ruby_version = '>= 2.
|
|
25
|
+
s.required_ruby_version = '>= 2.5'
|
|
26
26
|
|
|
27
|
-
s.add_dependency 'activerecord', '>=
|
|
27
|
+
s.add_dependency 'activerecord', '>= 5.1', '< 7.1'
|
|
28
28
|
|
|
29
29
|
s.add_development_dependency "bundler", ">= 1.0.0"
|
|
30
30
|
s.add_development_dependency "rake"
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
|
|
33
|
+
s.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
34
|
+
files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)}) }
|
|
35
|
+
files
|
|
36
|
+
end
|
|
37
|
+
|
|
33
38
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
|
34
39
|
s.require_path = 'lib'
|
|
35
40
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: paranoia
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- radarlistener@gmail.com
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-02-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
@@ -16,20 +16,20 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '5.1'
|
|
20
20
|
- - "<"
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
22
|
+
version: '7.1'
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
26
|
requirements:
|
|
27
27
|
- - ">="
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
29
|
+
version: '5.1'
|
|
30
30
|
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
32
|
+
version: '7.1'
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
34
|
name: bundler
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -59,7 +59,7 @@ dependencies:
|
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
60
|
version: '0'
|
|
61
61
|
description: |2
|
|
62
|
-
Paranoia is a re-implementation of acts_as_paranoid for Rails
|
|
62
|
+
Paranoia is a re-implementation of acts_as_paranoid for Rails 4, 5, 6, and 7,
|
|
63
63
|
using much, much, much less code. You would use either plugin / gem if you
|
|
64
64
|
wished that when you called destroy on an Active Record object that it
|
|
65
65
|
didn't actually destroy it, but just "hid" the record. Paranoia does this
|
|
@@ -73,8 +73,8 @@ executables: []
|
|
|
73
73
|
extensions: []
|
|
74
74
|
extra_rdoc_files: []
|
|
75
75
|
files:
|
|
76
|
+
- ".github/workflows/build.yml"
|
|
76
77
|
- ".gitignore"
|
|
77
|
-
- ".travis.yml"
|
|
78
78
|
- CHANGELOG.md
|
|
79
79
|
- CODE_OF_CONDUCT.md
|
|
80
80
|
- CONTRIBUTING.md
|
|
@@ -87,7 +87,6 @@ files:
|
|
|
87
87
|
- lib/paranoia/rspec.rb
|
|
88
88
|
- lib/paranoia/version.rb
|
|
89
89
|
- paranoia.gemspec
|
|
90
|
-
- test/paranoia_test.rb
|
|
91
90
|
homepage: https://github.com/rubysherpas/paranoia
|
|
92
91
|
licenses:
|
|
93
92
|
- MIT
|
|
@@ -100,14 +99,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
100
99
|
requirements:
|
|
101
100
|
- - ">="
|
|
102
101
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '2.
|
|
102
|
+
version: '2.5'
|
|
104
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
104
|
requirements:
|
|
106
105
|
- - ">="
|
|
107
106
|
- !ruby/object:Gem::Version
|
|
108
107
|
version: 1.3.6
|
|
109
108
|
requirements: []
|
|
110
|
-
rubygems_version: 3.
|
|
109
|
+
rubygems_version: 3.1.6
|
|
111
110
|
signing_key:
|
|
112
111
|
specification_version: 4
|
|
113
112
|
summary: Paranoia is a re-implementation of acts_as_paranoid for Rails 3, 4, and 5,
|
data/.travis.yml
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
sudo: false
|
|
2
|
-
language: ruby
|
|
3
|
-
before_install: gem update --system
|
|
4
|
-
cache: bundler
|
|
5
|
-
rvm:
|
|
6
|
-
- 2.2
|
|
7
|
-
- 2.3.8
|
|
8
|
-
- 2.4.5
|
|
9
|
-
- 2.5.3
|
|
10
|
-
- 2.6.3
|
|
11
|
-
- jruby-9.1.6.0
|
|
12
|
-
|
|
13
|
-
env:
|
|
14
|
-
matrix:
|
|
15
|
-
- RAILS='~> 4.2.0' SQLITE_VERSION='~> 1.3.6'
|
|
16
|
-
- RAILS='~> 5.0.0' SQLITE_VERSION='~> 1.3.6'
|
|
17
|
-
- RAILS='~> 5.1.0'
|
|
18
|
-
- RAILS='~> 5.2.0'
|
|
19
|
-
- RAILS='master'
|
|
20
|
-
|
|
21
|
-
matrix:
|
|
22
|
-
allow_failures:
|
|
23
|
-
- env: RAILS='~> 4.2.0' SQLITE_VERSION='~> 1.3.6'
|
|
24
|
-
rvm: jruby-9.1.6.0
|
|
25
|
-
- env: RAILS='~> 5.0.0' SQLITE_VERSION='~> 1.3.6'
|
|
26
|
-
rvm: jruby-9.1.6.0
|
|
27
|
-
- env: RAILS='~> 5.1.0'
|
|
28
|
-
rvm: jruby-9.1.6.0
|
|
29
|
-
- env: RAILS='~> 5.2.0'
|
|
30
|
-
rvm: jruby-9.1.6.0
|
|
31
|
-
- env: RAILS='master'
|
|
32
|
-
rvm: jruby-9.1.6.0
|
|
33
|
-
exclude:
|
|
34
|
-
- rvm: 2.2
|
|
35
|
-
env: RAILS='master'
|
|
36
|
-
- rvm: 2.3.8
|
|
37
|
-
env: RAILS='master'
|
|
38
|
-
- rvm: 2.4.5
|
|
39
|
-
env: RAILS='master'
|