Skip to content

Commit 038fa40

Browse files
authored
Merge pull request #1489 from samvera/ruby3
Ruby3 Support
2 parents 6f48c18 + f899d6c commit 038fa40

File tree

122 files changed

+520
-488
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+520
-488
lines changed

.circleci/config.yml

Lines changed: 102 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -47,45 +47,71 @@ jobs:
4747
workflows:
4848
ci:
4949
jobs:
50+
# Ruby 3.2 releases
51+
- bundle_lint_test:
52+
name: ruby3-2_rails7-0
53+
ruby_version: 3.2.0
54+
rails_version: 7.0.4.1
55+
- bundle_lint_test:
56+
name: ruby3-2_rails6-1
57+
ruby_version: 3.2.0
58+
rails_version: 6.1.7.1
59+
- bundle_lint_test:
60+
name: ruby3-2_rails6-0
61+
ruby_version: 3.2.0
62+
rails_version: 6.0.6.1
63+
# Ruby 3.1 releases
64+
- bundle_lint_test:
65+
name: ruby3-1_rails7-0
66+
ruby_version: 3.1.3
67+
rails_version: 7.0.4.1
68+
- bundle_lint_test:
69+
name: ruby3-1_rails6-1
70+
ruby_version: 3.1.3
71+
rails_version: 6.1.7.1
72+
- bundle_lint_test:
73+
name: ruby3-1_rails6-0
74+
ruby_version: 3.1.3
75+
rails_version: 6.0.6.1
76+
# Ruby 3.0 releases
77+
- bundle_lint_test:
78+
name: ruby3-0_rails7-0
79+
ruby_version: 3.0.5
80+
rails_version: 7.0.4.1
81+
- bundle_lint_test:
82+
name: ruby3-0_rails6-1
83+
ruby_version: 3.0.5
84+
rails_version: 6.1.7.1
85+
- bundle_lint_test:
86+
name: ruby3-0_rails6-0
87+
ruby_version: 3.0.5
88+
rails_version: 6.0.6.1
5089
# Ruby 2.7 releases
5190
- bundle_lint_test:
5291
name: ruby2-7_rails7-0
53-
ruby_version: 2.7.5
54-
rails_version: 7.0.3.1
92+
ruby_version: 2.7.7
93+
rails_version: 7.0.4.1
5594
- bundle_lint_test:
5695
name: ruby2-7_rails6-1
57-
ruby_version: 2.7.5
58-
rails_version: 6.1.6.1
96+
ruby_version: 2.7.7
97+
rails_version: 6.1.7.1
5998
- bundle_lint_test:
6099
name: ruby2-7_rails6-0
61-
ruby_version: 2.7.5
62-
rails_version: 6.0.4.7
100+
ruby_version: 2.7.7
101+
rails_version: 6.0.6.1
63102
- bundle_lint_test:
64103
name: ruby2-7_rails5-2
65-
ruby_version: 2.7.5
66-
rails_version: 5.2.4
104+
ruby_version: 2.7.7
105+
rails_version: 5.2.8.1
67106
# Ruby 2.6 releases
68-
- bundle_lint_test:
69-
name: ruby2-6_rails6-1
70-
ruby_version: 2.6.9
71-
rails_version: 6.1.6.1
72107
- bundle_lint_test:
73108
name: ruby2-6_rails6-0
74-
ruby_version: 2.6.9
75-
rails_version: 6.0.4.7
109+
ruby_version: 2.6.10
110+
rails_version: 6.0.6.1
76111
- bundle_lint_test:
77112
name: ruby2-6_rails5-2
78-
ruby_version: 2.6.9
79-
rails_version: 5.2.4
80-
# Ruby 2.5 releases
81-
- bundle_lint_test:
82-
name: ruby2-5_rails6.0
83-
ruby_version: 2.5.9
84-
rails_version: 6.0.4.7
85-
- bundle_lint_test:
86-
name: ruby2-5_rails5-2
87-
ruby_version: 2.5.9
88-
rails_version: 5.2.4
113+
ruby_version: 2.6.10
114+
rails_version: 5.2.8.1
89115

90116
nightly:
91117
triggers:
@@ -96,42 +122,68 @@ workflows:
96122
only:
97123
- main
98124
jobs:
125+
# Ruby 3.2 releases
126+
- bundle_lint_test:
127+
name: ruby3-2_rails7-0
128+
ruby_version: 3.2.0
129+
rails_version: 7.0.4.1
130+
- bundle_lint_test:
131+
name: ruby3-2_rails6-1
132+
ruby_version: 3.2.0
133+
rails_version: 6.1.7.1
134+
- bundle_lint_test:
135+
name: ruby3-2_rails6-0
136+
ruby_version: 3.2.0
137+
rails_version: 6.0.6.1
138+
# Ruby 3.1 releases
139+
- bundle_lint_test:
140+
name: ruby3-1_rails7-0
141+
ruby_version: 3.1.3
142+
rails_version: 7.0.4.1
143+
- bundle_lint_test:
144+
name: ruby3-1_rails6-1
145+
ruby_version: 3.1.3
146+
rails_version: 6.1.7.1
147+
- bundle_lint_test:
148+
name: ruby3-1_rails6-0
149+
ruby_version: 3.1.3
150+
rails_version: 6.0.6.1
151+
# Ruby 3.0 releases
152+
- bundle_lint_test:
153+
name: ruby3-0_rails7-0
154+
ruby_version: 3.0.5
155+
rails_version: 7.0.4.1
156+
- bundle_lint_test:
157+
name: ruby3-0_rails6-1
158+
ruby_version: 3.0.5
159+
rails_version: 6.1.7.1
160+
- bundle_lint_test:
161+
name: ruby3-0_rails6-0
162+
ruby_version: 3.0.5
163+
rails_version: 6.0.6.1
99164
# Ruby 2.7 releases
100165
- bundle_lint_test:
101166
name: ruby2-7_rails7-0
102-
ruby_version: 2.7.5
103-
rails_version: 7.0.3.1
167+
ruby_version: 2.7.7
168+
rails_version: 7.0.4.1
104169
- bundle_lint_test:
105170
name: ruby2-7_rails6-1
106-
ruby_version: 2.7.5
107-
rails_version: 6.1.6.1
171+
ruby_version: 2.7.7
172+
rails_version: 6.1.7.1
108173
- bundle_lint_test:
109174
name: ruby2-7_rails6-0
110-
ruby_version: 2.7.5
111-
rails_version: 6.0.4.7
175+
ruby_version: 2.7.7
176+
rails_version: 6.0.6.1
112177
- bundle_lint_test:
113178
name: ruby2-7_rails5-2
114-
ruby_version: 2.7.5
115-
rails_version: 5.2.4
179+
ruby_version: 2.7.7
180+
rails_version: 5.2.8.1
116181
# Ruby 2.6 releases
117-
- bundle_lint_test:
118-
name: ruby2-6_rails6-1
119-
ruby_version: 2.6.9
120-
rails_version: 6.1.6.1
121182
- bundle_lint_test:
122183
name: ruby2-6_rails6-0
123-
ruby_version: 2.6.9
124-
rails_version: 6.0.4.7
184+
ruby_version: 2.6.10
185+
rails_version: 6.0.6.1
125186
- bundle_lint_test:
126187
name: ruby2-6_rails5-2
127-
ruby_version: 2.6.9
128-
rails_version: 5.2.4
129-
# Ruby 2.5 releases
130-
- bundle_lint_test:
131-
name: ruby2-5_rails6.0
132-
ruby_version: 2.5.9
133-
rails_version: 6.0.4.7
134-
- bundle_lint_test:
135-
name: ruby2-5_rails5-2
136-
ruby_version: 2.5.9
137-
rails_version: 5.2.4
188+
ruby_version: 2.6.10
189+
rails_version: 5.2.8.1

.rubocop.yml

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
1-
require: rubocop-rspec
1+
inherit_gem:
2+
bixby: bixby_default.yml
23

34
inherit_from:
45
- .rubocop_todo.yml
56

6-
AllCops:
7-
TargetRubyVersion: 2.2
8-
DisplayCopNames: true
9-
Include:
10-
- '**/Rakefile'
11-
Exclude:
12-
- 'script/**/*'
13-
- 'vendor/**/*'
7+
Style/FrozenStringLiteralComment:
8+
Enabled: false
149

15-
Lint/HandleExceptions:
10+
Lint/SuppressedException:
1611
Exclude:
1712
- 'spec/unit/**/*'
1813
- 'spec/integration/**/*'
@@ -22,12 +17,19 @@ Lint/HandleExceptions:
2217
Lint/AssignmentInCondition:
2318
Enabled: false
2419

25-
Metrics/LineLength:
20+
Layout/LineLength:
2621
Enabled: false
2722

2823
Metrics/AbcSize:
2924
Enabled: false
3025

26+
Metrics/BlockLength:
27+
Exclude:
28+
- 'lib/active_fedora.rb'
29+
- 'lib/active_fedora/nested_attributes.rb'
30+
- 'lib/active_fedora/rspec_matchers/**/*'
31+
- 'lib/tasks/**/*'
32+
3133
Metrics/BlockNesting:
3234
Exclude:
3335
- 'lib/active_fedora/autosave_association.rb'
@@ -173,7 +175,7 @@ Style/Lambda:
173175
- 'spec/**/*'
174176

175177
Layout/IndentationConsistency:
176-
EnforcedStyle: rails
178+
EnforcedStyle: indented_internal_methods
177179

178180
Style/CollectionMethods:
179181
PreferredMethods:
@@ -240,6 +242,15 @@ Rails/Date:
240242
Rails/TimeZone:
241243
Enabled: false
242244

245+
Rails/FilePath:
246+
Enabled: false
247+
248+
Rails/ActiveRecordAliases:
249+
Enabled: false
250+
251+
Rails/SkipsModelValidations:
252+
Enabled: false
253+
243254
RSpec/AnyInstance:
244255
Enabled: false
245256

@@ -271,3 +282,6 @@ RSpec/NotToNot:
271282

272283
RSpec/MessageSpies:
273284
Enabled: false
285+
286+
Security/MarshalLoad:
287+
Enabled: false

.rubocop_todo.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ Style/PercentLiteralDelimiters:
1616
# Offense count: 1
1717
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
1818
# URISchemes: http, https
19-
Metrics/LineLength:
19+
Layout/LineLength:
2020
Max: 82

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ else
1616
end
1717

1818
group :test do
19-
gem 'simplecov', require: false
2019
gem 'coveralls', require: false
2120
gem 'rspec_junit_formatter'
21+
gem 'simplecov', require: false
2222
end
2323

2424
gem 'jruby-openssl', platform: :jruby

active-fedora.gemspec

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# -*- encoding: utf-8 -*-
2-
$:.push File.expand_path("../lib", __FILE__)
2+
lib = File.expand_path('../lib', __FILE__)
3+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
34
require "active_fedora/version"
45

56
Gem::Specification.new do |s|
@@ -8,11 +9,11 @@ Gem::Specification.new do |s|
89
s.platform = Gem::Platform::RUBY
910
s.authors = ["Matt Zumwalt", "McClain Looney", "Justin Coyne"]
1011
s.email = ["[email protected]"]
11-
s.homepage = %q{https://github.com/samvera/active_fedora}
12-
s.summary = %q{A convenience libary for manipulating documents in the Fedora Repository.}
13-
s.description = %q{ActiveFedora provides for creating and managing objects in the Fedora Repository Architecture.}
12+
s.homepage = 'https://github.com/samvera/active_fedora'
13+
s.summary = 'A convenience libary for manipulating documents in the Fedora Repository.'
14+
s.description = 'ActiveFedora provides for creating and managing objects in the Fedora Repository Architecture.'
1415
s.license = "Apache-2.0"
15-
s.required_ruby_version = '>= 2.4'
16+
s.required_ruby_version = '>= 2.6'
1617

1718
s.add_dependency "activemodel", '>= 5.1'
1819
s.add_dependency "activesupport", '>= 5.1'
@@ -24,23 +25,21 @@ Gem::Specification.new do |s|
2425
s.add_dependency 'rsolr', '>= 1.1.2', '< 3'
2526
s.add_dependency "ruby-progressbar", '~> 1.0'
2627

28+
s.add_development_dependency "bixby"
2729
s.add_development_dependency "equivalent-xml"
2830
s.add_development_dependency 'fcrepo_wrapper', '~> 0.2'
2931
s.add_development_dependency "github_changelog_generator"
3032
s.add_development_dependency "rdoc"
31-
s.add_development_dependency "psych", "< 4" # Restricted because 4.0+ do not work with rubocop 0.56.x
3233
s.add_development_dependency "rails"
3334
s.add_development_dependency "rake"
3435
s.add_development_dependency "rspec", "~> 3.5"
3536
s.add_development_dependency "rspec-its"
36-
s.add_development_dependency "rubocop", '~> 0.56.0'
37-
s.add_development_dependency "rubocop-rspec", '~> 1.12.0'
3837
s.add_development_dependency "simplecov", '~> 0.8'
3938
s.add_development_dependency "solr_wrapper", "~> 4.0"
4039
s.add_development_dependency "yard"
4140

4241
s.files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR).select { |f| File.dirname(f) !~ %r{\A"?spec\/?} }
43-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
42+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
4443
s.extra_rdoc_files = [
4544
"LICENSE",
4645
"README.md"

lib/active_fedora.rb

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ def to_s
2525
@string ||= begin
2626
# Show nanoseconds but remove trailing zeros
2727
nano = @object.strftime('%N').sub(/0+\Z/, EMPTY)
28-
nano = DOT + nano unless nano.blank?
28+
nano = DOT + nano if nano.present?
2929
@object.strftime(ALTERNATIVE_FORMAT) + nano + @object.strftime(TIMEZONE_FORMAT)
3030
end
3131
end
3232
end
3333
end
3434
end
3535

36-
module ActiveFedora #:nodoc:
36+
module ActiveFedora # :nodoc:
3737
extend ActiveSupport::Autoload
3838

3939
eager_autoload do
@@ -156,7 +156,7 @@ module Scoping
156156
end
157157

158158
class << self
159-
attr_reader :fedora_config, :solr_config, :config_options
159+
attr_reader :solr_config, :config_options
160160
attr_accessor :configurator
161161

162162
def fedora_config
@@ -174,9 +174,7 @@ def init(options = {})
174174
options = {} if options.nil?
175175
# For backwards compatibility, handle cases where config_path (a String) is passed in as the argument rather than a config_options hash
176176
# In all other cases, set config_path to config_options[:config_path], which is ok if it's nil
177-
if options.is_a? String
178-
raise ArgumentError, "Calling ActiveFedora.init with a path as an argument has been removed. Use ActiveFedora.init(:fedora_config_path=>#{options})"
179-
end
177+
raise ArgumentError, "Calling ActiveFedora.init with a path as an argument has been removed. Use ActiveFedora.init(:fedora_config_path=>#{options})" if options.is_a? String
180178
@fedora_config = nil
181179
SolrService.reset!
182180
configurator.init(options)
@@ -199,7 +197,7 @@ def config
199197
def environment
200198
if config_options.fetch(:environment, nil)
201199
config_options[:environment]
202-
elsif defined?(Rails.env) && !Rails.env.nil?
200+
elsif defined?(Rails.env) && !Rails.env.nil? # rubocop:disable Rails/UnknownEnv
203201
Rails.env.to_s
204202
elsif defined?(ENV['environment']) && !ENV['environment'].nil?
205203
ENV['environment']

0 commit comments

Comments
 (0)