assembly-objectfile 1.11.0 → 2.0.0

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +14 -0
  3. data/.github/pull_request_template.md +3 -5
  4. data/.gitignore +0 -1
  5. data/.rubocop.yml +87 -15
  6. data/.rubocop_todo.yml +19 -74
  7. data/Gemfile +2 -0
  8. data/Gemfile.lock +106 -0
  9. data/README.md +1 -1
  10. data/assembly-objectfile.gemspec +5 -6
  11. data/lib/assembly-objectfile/object_file.rb +253 -3
  12. data/lib/assembly-objectfile/version.rb +2 -2
  13. data/lib/assembly-objectfile.rb +0 -5
  14. data/spec/object_file_spec.rb +411 -167
  15. data/spec/spec_helper.rb +3 -31
  16. data/spec/test_data/empty.txt +0 -0
  17. metadata +35 -121
  18. data/.travis.yml +0 -20
  19. data/lib/assembly-objectfile/content_metadata/config.rb +0 -26
  20. data/lib/assembly-objectfile/content_metadata/file.rb +0 -63
  21. data/lib/assembly-objectfile/content_metadata/file_set.rb +0 -73
  22. data/lib/assembly-objectfile/content_metadata/file_set_builder.rb +0 -65
  23. data/lib/assembly-objectfile/content_metadata/nokogiri_builder.rb +0 -57
  24. data/lib/assembly-objectfile/content_metadata.rb +0 -117
  25. data/lib/assembly-objectfile/object_fileable.rb +0 -278
  26. data/spec/content_metadata_spec.rb +0 -791
  27. data/spec/test_data/input/oo000oo0001/00/oo000oo0001_00_001.tif +0 -0
  28. data/spec/test_data/input/oo000oo0001/00/oo000oo0001_00_002.tif +0 -0
  29. data/spec/test_data/input/oo000oo0001/05/oo000oo0001_05_001.jp2 +0 -0
  30. data/spec/test_data/input/oo000oo0001/05/oo000oo0001_05_002.jp2 +0 -0
  31. data/spec/test_data/input/oo000oo0001/15/oo000oo0001_15_001.pdf +0 -1
  32. data/spec/test_data/input/oo000oo0001/15/oo000oo0001_15_002.pdf +0 -1
  33. data/spec/test_data/input/oo000oo0001/31/oo000oo0001_31_001.pdf +0 -1
  34. data/spec/test_data/input/oo000oo0001/50/oo000oo0001_50_001.tif +0 -0
  35. data/spec/test_data/input/oo000oo0001/oo000oo0001_book.pdf +0 -1
  36. data/spec/test_data/input/res1_image1.jp2 +0 -0
  37. data/spec/test_data/input/res1_image2.jp2 +0 -0
  38. data/spec/test_data/input/res1_image2.tif +0 -0
  39. data/spec/test_data/input/res1_teifile.txt +0 -1
  40. data/spec/test_data/input/res2_image1.jp2 +0 -0
  41. data/spec/test_data/input/res2_image1.tif +0 -0
  42. data/spec/test_data/input/res2_image2.jp2 +0 -0
  43. data/spec/test_data/input/res2_image2.tif +0 -0
  44. data/spec/test_data/input/res2_teifile.txt +0 -1
  45. data/spec/test_data/input/res2_textfile.txt +0 -1
  46. data/spec/test_data/input/res3_image1.jp2 +0 -0
  47. data/spec/test_data/input/res3_image1.tif +0 -0
  48. data/spec/test_data/input/res3_teifile.txt +0 -1
  49. data/spec/test_data/input/test.pdf +0 -1
  50. data/spec/test_data/input/test2.jp2 +0 -0
  51. data/spec/test_data/input/test2.tif +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f0c15e9e8be693ac604d4f4f440a62b8c91d4e10e1605d78ecf487b45aa231b
4
- data.tar.gz: 1441b9f02785c6397cfee954382b4b0de92e006457b0a5bfce42111b4f1ee634
3
+ metadata.gz: c3c456d372ab0804ebcaad06ac2b8695376f9ffe57ccb8a23b8a57d711df5561
4
+ data.tar.gz: 1797606727f148ee128dedc102ad68480fbd9f55983c318b91c8f5f52a546a9b
5
5
  SHA512:
6
- metadata.gz: b12637ddf0e5110ada401dfd04f35072a42046c02fabd1446139f5c387f31bf82fb82ff6b95621f1f182f839ad50b2f66f529ddff61c79979a0c248659dd7947
7
- data.tar.gz: f2bf8dcce09af5ac5f499ffff3abafd8ef01b03a30ceb249a590da75b594fd96dcd8a0e73b295ff37ca52825941c5b2892ed05c1746a9de5d85e048138f7e67b
6
+ metadata.gz: c927cb2cffef41a699c0f2e1f0fa0d8e6d4b1cc92c9fdb26b80ca5c9e851d7de0a9b1204cc4a4290213a9d7a642c2d3233db56396efb3b626cdd4d6e7b3bfdda
7
+ data.tar.gz: 473f2ead345feaf0afd518da399751a86f526f27b19dd0bfd75fb55354bd055d00ccbbb06a96ca905f2e0de6fcdbf25d4e42e8da23fc167225afb8a9958038e3
@@ -0,0 +1,14 @@
1
+ version: 2.1
2
+ orbs:
3
+ ruby-rails: sul-dlss/ruby-rails@3.0.1
4
+ workflows:
5
+ build:
6
+ jobs:
7
+ - ruby-rails/lint-gem:
8
+ name: lint
9
+ - ruby-rails/test-gem:
10
+ name: test
11
+ before-test:
12
+ - run:
13
+ name: Install exiftool
14
+ command: curl -L http://cpanmin.us | perl - --sudo Image::ExifTool
@@ -1,12 +1,10 @@
1
- ## Why was this change made?
1
+ ## Why was this change made? 🤔
2
2
 
3
3
 
4
4
 
5
- ## How was this change tested?
5
+ ## How was this change tested? 🤨
6
6
 
7
-
8
-
9
- ## Which documentation and/or configurations were updated?
7
+ ⚡ ⚠ If this change has cross service impact, ***run [integration tests](https://github.com/sul-dlss/infrastructure-integration-test) that do file accessioning*** (e.g. create_preassembly_image_spec) and/or test in [stage|qa] environment, in addition to specs. ⚡
10
8
 
11
9
 
12
10
 
data/.gitignore CHANGED
@@ -10,4 +10,3 @@ log/*
10
10
  pkg/*
11
11
  tags
12
12
  tmp
13
- Gemfile.lock
data/.rubocop.yml CHANGED
@@ -2,27 +2,19 @@ inherit_from: .rubocop_todo.yml
2
2
  require: rubocop-rspec
3
3
 
4
4
  AllCops:
5
- TargetRubyVersion: 2.5
6
-
7
- RSpec/ContextWording:
8
- Enabled: false # too dogmatic
9
-
10
- RSpec/ExampleLength:
11
- Max: 25
12
-
13
- # we like 'expect(x).to receive' better than 'have_received'
14
- RSpec/MessageSpies:
15
- Enabled: false
16
-
17
- RSpec/NestedGroups:
18
- Max: 4 # default: 3
5
+ TargetRubyVersion: 3.0
6
+ DisplayCopNames: true
7
+ Exclude:
8
+ - 'Gemfile.lock'
9
+ - '**/*.md'
10
+ - 'vendor/**/*' # avoid running rubocop on cached bundler
19
11
 
20
12
  Metrics/BlockLength:
21
13
  Exclude:
22
14
  - 'spec/**/*.rb'
23
15
  - '**/*.gemspec'
24
16
 
25
- Gemspec/DateAssignment: # (new in 1.10)
17
+ Gemspec/DeprecatedAttributeAssignment: # (new in 1.10)
26
18
  Enabled: true
27
19
 
28
20
  Layout/SpaceAroundMethodCallOperator:
@@ -135,3 +127,83 @@ Style/RedundantArgument: # (new in 1.4)
135
127
 
136
128
  Style/SwapValues: # (new in 1.1)
137
129
  Enabled: true
130
+
131
+ Gemspec/RequireMFA: # new in 1.23
132
+ Enabled: true
133
+ Layout/LineEndStringConcatenationIndentation: # new in 1.18
134
+ Enabled: true
135
+ Lint/AmbiguousOperatorPrecedence: # new in 1.21
136
+ Enabled: true
137
+ Lint/AmbiguousRange: # new in 1.19
138
+ Enabled: true
139
+ Lint/EmptyInPattern: # new in 1.16
140
+ Enabled: true
141
+ Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
142
+ Enabled: true
143
+ Lint/RequireRelativeSelfPath: # new in 1.22
144
+ Enabled: true
145
+ Lint/UselessRuby2Keywords: # new in 1.23
146
+ Enabled: true
147
+ Naming/BlockForwarding: # new in 1.24
148
+ Enabled: true
149
+ Security/IoMethods: # new in 1.22
150
+ Enabled: true
151
+ Style/FileRead: # new in 1.24
152
+ Enabled: true
153
+ Style/FileWrite: # new in 1.24
154
+ Enabled: true
155
+ Style/InPatternThen: # new in 1.16
156
+ Enabled: true
157
+ Style/MapToHash: # new in 1.24
158
+ Enabled: true
159
+ Style/MultilineInPatternThen: # new in 1.16
160
+ Enabled: true
161
+ Style/NumberedParameters: # new in 1.22
162
+ Enabled: true
163
+ Style/NumberedParametersLimit: # new in 1.22
164
+ Enabled: true
165
+ Style/OpenStructUse: # new in 1.23
166
+ Enabled: true
167
+ Style/QuotedSymbols: # new in 1.16
168
+ Enabled: true
169
+ Style/RedundantSelfAssignmentBranch: # new in 1.19
170
+ Enabled: true
171
+ Style/SelectByRegexp: # new in 1.22
172
+ Enabled: true
173
+ Style/StringChars: # new in 1.12
174
+ Enabled: true
175
+ RSpec/BeEq: # new in 2.9.0
176
+ Enabled: true
177
+ RSpec/BeNil: # new in 2.9.0
178
+ Enabled: true
179
+ RSpec/ExcessiveDocstringSpacing: # new in 2.5
180
+ Enabled: true
181
+ RSpec/IdenticalEqualityAssertion: # new in 2.4
182
+ Enabled: true
183
+ RSpec/SubjectDeclaration: # new in 2.5
184
+ Enabled: true
185
+ RSpec/FactoryBot/SyntaxMethods: # new in 2.7
186
+ Enabled: true
187
+ RSpec/Rails/AvoidSetupHook: # new in 2.4
188
+ Enabled: true
189
+
190
+ Lint/RefinementImportMethods: # new in 1.27
191
+ Enabled: true
192
+ Security/CompoundHash: # new in 1.28
193
+ Enabled: true
194
+ Style/EnvHome: # new in 1.29
195
+ Enabled: true
196
+ Style/FetchEnvVar: # new in 1.28
197
+ Enabled: true
198
+ Style/MapCompactWithConditionalBlock: # new in 1.30
199
+ Enabled: true
200
+ Style/NestedFileDirname: # new in 1.26
201
+ Enabled: true
202
+ Style/ObjectThen: # new in 1.28
203
+ Enabled: true
204
+ Style/RedundantInitialize: # new in 1.27
205
+ Enabled: true
206
+ RSpec/ChangeByZero: # new in 2.11.0
207
+ Enabled: true
208
+ RSpec/VerifiedDoubleReference: # new in 2.10.0
209
+ Enabled: true
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2021-04-26 18:43:37 UTC using RuboCop version 1.11.0.
3
+ # on 2022-07-07 21:26:21 UTC using RuboCop version 1.31.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -11,44 +11,14 @@ Lint/UselessAssignment:
11
11
  Exclude:
12
12
  - 'config/boot.rb'
13
13
 
14
- # Offense count: 3
15
- # Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
16
- Metrics/AbcSize:
17
- Max: 55
18
-
19
- # Offense count: 1
20
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
21
- # IgnoredMethods: refine
22
- Metrics/BlockLength:
23
- Max: 27
24
-
25
- # Offense count: 2
26
- # Configuration parameters: IgnoredMethods.
27
- Metrics/CyclomaticComplexity:
28
- Max: 14
29
-
30
- # Offense count: 4
31
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
32
- Metrics/MethodLength:
33
- Max: 31
34
-
35
14
  # Offense count: 1
36
15
  # Configuration parameters: CountComments, CountAsOne.
37
- Metrics/ModuleLength:
38
- Max: 120
16
+ Metrics/ClassLength:
17
+ Max: 122
39
18
 
40
19
  # Offense count: 1
41
- # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
42
- Metrics/ParameterLists:
43
- Max: 12
44
-
45
- # Offense count: 2
46
- # Configuration parameters: IgnoredMethods.
47
- Metrics/PerceivedComplexity:
48
- Max: 15
49
-
50
- # Offense count: 1
51
- # Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, Regex, IgnoreExecutableScripts, AllowedAcronyms.
20
+ # Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, CheckDefinitionPathHierarchyRoots, Regex, IgnoreExecutableScripts, AllowedAcronyms.
21
+ # CheckDefinitionPathHierarchyRoots: lib, spec, test, src
52
22
  # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
53
23
  Naming/FileName:
54
24
  Exclude:
@@ -63,56 +33,31 @@ Naming/FileName:
63
33
  Naming/PredicateName:
64
34
  Exclude:
65
35
  - 'spec/**/*'
66
- - 'lib/assembly-objectfile/object_fileable.rb'
36
+ - 'lib/assembly-objectfile/object_file.rb'
67
37
 
68
- # Offense count: 9
69
- # Configuration parameters: Max.
38
+ # Offense count: 2
39
+ # Configuration parameters: CountAsOne.
70
40
  RSpec/ExampleLength:
71
- Exclude:
72
- - 'spec/content_metadata_spec.rb'
41
+ Max: 7
73
42
 
74
- # Offense count: 2
43
+ # Offense count: 1
75
44
  # Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
76
45
  # Include: **/*_spec*rb*, **/spec/**/*
77
46
  RSpec/FilePath:
78
- Exclude:
79
- - 'spec/content_metadata_spec.rb'
80
- - 'spec/object_file_spec.rb'
81
-
82
- # Offense count: 74
83
- # Configuration parameters: AssignmentOnly.
84
- RSpec/InstanceVariable:
85
- Exclude:
86
- - 'spec/object_file_spec.rb'
87
-
88
- # Offense count: 40
89
- RSpec/MultipleExpectations:
90
- Max: 29
91
-
92
- # Offense count: 2
93
- RSpec/RepeatedDescription:
94
- Exclude:
95
- - 'spec/object_file_spec.rb'
96
-
97
- # Offense count: 2
98
- RSpec/RepeatedExample:
99
47
  Exclude:
100
48
  - 'spec/object_file_spec.rb'
101
49
 
102
50
  # Offense count: 8
103
- RSpec/RepeatedExampleGroupDescription:
104
- Exclude:
105
- - 'spec/content_metadata_spec.rb'
51
+ RSpec/MultipleExpectations:
52
+ Max: 6
106
53
 
107
- # Offense count: 2
108
- # Cop supports --auto-correct.
109
- Style/CommentedKeyword:
110
- Exclude:
111
- - 'lib/assembly-objectfile/content_metadata.rb'
54
+ # Offense count: 3
55
+ RSpec/NestedGroups:
56
+ Max: 4
112
57
 
113
- # Offense count: 122
114
- # Cop supports --auto-correct.
115
- # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
58
+ # Offense count: 24
59
+ # This cop supports safe autocorrection (--autocorrect).
60
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns.
116
61
  # URISchemes: http, https
117
62
  Layout/LineLength:
118
- Max: 277
63
+ Max: 187
data/Gemfile CHANGED
@@ -4,3 +4,5 @@ source 'http://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in .gemspec
6
6
  gemspec
7
+
8
+ gem 'byebug'
data/Gemfile.lock ADDED
@@ -0,0 +1,106 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ assembly-objectfile (2.0.0)
5
+ activesupport (>= 5.2.0)
6
+ deprecation
7
+ mime-types (> 3)
8
+ mini_exiftool
9
+ nokogiri
10
+
11
+ GEM
12
+ remote: http://rubygems.org/
13
+ specs:
14
+ activesupport (7.0.3)
15
+ concurrent-ruby (~> 1.0, >= 1.0.2)
16
+ i18n (>= 1.6, < 2)
17
+ minitest (>= 5.1)
18
+ tzinfo (~> 2.0)
19
+ ast (2.4.2)
20
+ byebug (11.1.3)
21
+ coderay (1.1.3)
22
+ concurrent-ruby (1.1.10)
23
+ deprecation (1.1.0)
24
+ activesupport
25
+ diff-lcs (1.5.0)
26
+ docile (1.4.0)
27
+ i18n (1.10.0)
28
+ concurrent-ruby (~> 1.0)
29
+ json (2.6.2)
30
+ method_source (1.0.0)
31
+ mime-types (3.4.1)
32
+ mime-types-data (~> 3.2015)
33
+ mime-types-data (3.2022.0105)
34
+ mini_exiftool (2.10.2)
35
+ mini_portile2 (2.8.0)
36
+ minitest (5.16.2)
37
+ nokogiri (1.13.6)
38
+ mini_portile2 (~> 2.8.0)
39
+ racc (~> 1.4)
40
+ parallel (1.22.1)
41
+ parser (3.1.2.0)
42
+ ast (~> 2.4.1)
43
+ pry (0.13.1)
44
+ coderay (~> 1.1)
45
+ method_source (~> 1.0)
46
+ pry-byebug (3.9.0)
47
+ byebug (~> 11.0)
48
+ pry (~> 0.13.0)
49
+ racc (1.6.0)
50
+ rainbow (3.1.1)
51
+ rake (13.0.6)
52
+ regexp_parser (2.5.0)
53
+ rexml (3.2.5)
54
+ rspec (3.11.0)
55
+ rspec-core (~> 3.11.0)
56
+ rspec-expectations (~> 3.11.0)
57
+ rspec-mocks (~> 3.11.0)
58
+ rspec-core (3.11.0)
59
+ rspec-support (~> 3.11.0)
60
+ rspec-expectations (3.11.0)
61
+ diff-lcs (>= 1.2.0, < 2.0)
62
+ rspec-support (~> 3.11.0)
63
+ rspec-mocks (3.11.1)
64
+ diff-lcs (>= 1.2.0, < 2.0)
65
+ rspec-support (~> 3.11.0)
66
+ rspec-support (3.11.0)
67
+ rubocop (1.31.0)
68
+ parallel (~> 1.10)
69
+ parser (>= 3.1.0.0)
70
+ rainbow (>= 2.2.2, < 4.0)
71
+ regexp_parser (>= 1.8, < 3.0)
72
+ rexml (>= 3.2.5, < 4.0)
73
+ rubocop-ast (>= 1.18.0, < 2.0)
74
+ ruby-progressbar (~> 1.7)
75
+ unicode-display_width (>= 1.4.0, < 3.0)
76
+ rubocop-ast (1.18.0)
77
+ parser (>= 3.1.1.0)
78
+ rubocop-rspec (2.11.1)
79
+ rubocop (~> 1.19)
80
+ ruby-progressbar (1.11.0)
81
+ simplecov (0.21.2)
82
+ docile (~> 1.1)
83
+ simplecov-html (~> 0.11)
84
+ simplecov_json_formatter (~> 0.1)
85
+ simplecov-html (0.12.3)
86
+ simplecov_json_formatter (0.1.4)
87
+ tzinfo (2.0.4)
88
+ concurrent-ruby (~> 1.0)
89
+ unicode-display_width (2.2.0)
90
+
91
+ PLATFORMS
92
+ ruby
93
+
94
+ DEPENDENCIES
95
+ assembly-objectfile!
96
+ byebug
97
+ json
98
+ pry-byebug
99
+ rake
100
+ rspec (~> 3.0)
101
+ rubocop (~> 1.25)
102
+ rubocop-rspec
103
+ simplecov
104
+
105
+ BUNDLED WITH
106
+ 2.3.4
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Build Status](https://travis-ci.com/sul-dlss/assembly-objectfile.svg?branch=main)](https://travis-ci.com/sul-dlss/assembly-objectfile)
1
+ [![CircleCI](https://circleci.com/gh/sul-dlss/assembly-objectfile/tree/main.svg?style=svg)](https://circleci.com/gh/sul-dlss/assembly-objectfile/tree/main)
2
2
  [![Test Coverage](https://api.codeclimate.com/v1/badges/2310962acce78d78e76c/test_coverage)](https://codeclimate.com/github/sul-dlss/assembly-objectfile/test_coverage)
3
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/2310962acce78d78e76c/maintainability)](https://codeclimate.com/github/sul-dlss/assembly-objectfile/maintainability)
4
4
  [![Gem Version](https://badge.fury.io/rb/assembly-objectfile.svg)](https://badge.fury.io/rb/assembly-objectfile)
@@ -13,27 +13,26 @@ Gem::Specification.new do |s|
13
13
  s.summary = 'Ruby immplementation of file services needed to prepare objects to be accessioned in SULAIR digital library'
14
14
  s.description = 'Get exif data, file sizes and more.'
15
15
  s.license = 'ALv2'
16
+ s.metadata['rubygems_mfa_required'] = 'true'
16
17
 
17
18
  s.files = `git ls-files`.split("\n")
18
- s.test_files = `git ls-files -- spec/*`.split("\n")
19
19
  s.bindir = 'exe'
20
20
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  s.require_paths = ['lib']
22
22
 
23
- s.required_ruby_version = '>= 2.5', '< 4'
23
+ s.required_ruby_version = '>= 3.0'
24
24
 
25
25
  s.add_dependency 'activesupport', '>= 5.2.0'
26
26
  s.add_dependency 'deprecation'
27
- s.add_dependency 'dry-struct', '~> 1.0'
28
- s.add_dependency 'dry-types', '~> 1.1'
29
27
  s.add_dependency 'mime-types', '> 3'
30
28
  s.add_dependency 'mini_exiftool'
31
29
  s.add_dependency 'nokogiri'
32
30
 
33
31
  s.add_development_dependency 'json'
32
+ s.add_development_dependency 'pry-byebug'
34
33
  s.add_development_dependency 'rake'
35
34
  s.add_development_dependency 'rspec', '~> 3.0'
36
- s.add_development_dependency 'rubocop'
35
+ s.add_development_dependency 'rubocop', '~> 1.25'
37
36
  s.add_development_dependency 'rubocop-rspec'
38
- s.add_development_dependency 'simplecov', '~> 0.17.0' # CodeClimate cannot use SimpleCov >= 0.18.0 for generating test coverage
37
+ s.add_development_dependency 'simplecov'
39
38
  end