assembly-objectfile 1.8.3 → 1.10.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/ISSUE_TEMPLATE/bug_report.md +30 -0
- data/.github/pull_request_template.md +12 -0
- data/.rubocop.yml +121 -6
- data/.rubocop_todo.yml +50 -64
- data/.travis.yml +3 -4
- data/Gemfile +2 -0
- data/README.md +1 -1
- data/Rakefile +2 -0
- data/assembly-objectfile.gemspec +9 -3
- data/config/boot.rb +4 -2
- data/lib/assembly-objectfile.rb +3 -20
- data/lib/assembly-objectfile/content_metadata.rb +56 -176
- data/lib/assembly-objectfile/content_metadata/config.rb +26 -0
- data/lib/assembly-objectfile/content_metadata/file.rb +63 -0
- data/lib/assembly-objectfile/content_metadata/file_set.rb +73 -0
- data/lib/assembly-objectfile/content_metadata/file_set_builder.rb +65 -0
- data/lib/assembly-objectfile/content_metadata/nokogiri_builder.rb +57 -0
- data/lib/assembly-objectfile/object_file.rb +5 -3
- data/lib/assembly-objectfile/object_fileable.rb +43 -19
- data/lib/assembly-objectfile/version.rb +3 -1
- data/spec/content_metadata_spec.rb +750 -568
- data/spec/object_file_spec.rb +14 -0
- data/spec/spec_helper.rb +6 -4
- metadata +75 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 925ceb88bbc6d965b3ab9be3695e7ec318c65a11716cb5cdb2d1178af1a08174
|
|
4
|
+
data.tar.gz: bbc6282d8d375dd0cf49a55519563abff44429f012221dfc1b4cf0219de47aa9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 997b90f28dd603f11cabc20d2dc598eaf60a5f3c1b3b168b770748f6ce48377e15e8665824976a4838be52e35a54bafb508c42aca6ddaa3c6f8e31c3f627b1b2
|
|
7
|
+
data.tar.gz: 1033e903f01344e8944ed681e61debb128603b3b3d898269cad582d7a1a0b674fd837e4114a81033b2cbfff97da6c9d9ee17a27cfad606622eacf768436c22fc
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: File a bug report
|
|
4
|
+
title: ''
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Describe the bug**
|
|
11
|
+
A clear and concise description of what the bug is.
|
|
12
|
+
|
|
13
|
+
**User Impact**
|
|
14
|
+
A description of the impact of this bug on an end-user (or your own work).
|
|
15
|
+
|
|
16
|
+
**To Reproduce**
|
|
17
|
+
Steps to reproduce the behavior:
|
|
18
|
+
1. Go to '...'
|
|
19
|
+
2. Click on '....'
|
|
20
|
+
3. Scroll down to '....'
|
|
21
|
+
4. See error
|
|
22
|
+
|
|
23
|
+
**Expected behavior**
|
|
24
|
+
A clear and concise description of what you expected to happen.
|
|
25
|
+
|
|
26
|
+
**Screenshots**
|
|
27
|
+
If applicable, add screenshots to help explain your problem.
|
|
28
|
+
|
|
29
|
+
**Additional context**
|
|
30
|
+
Add any other context about the problem here.
|
data/.rubocop.yml
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
|
2
2
|
require: rubocop-rspec
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Max: 200
|
|
4
|
+
AllCops:
|
|
5
|
+
TargetRubyVersion: 2.5
|
|
7
6
|
|
|
8
7
|
RSpec/ContextWording:
|
|
9
8
|
Enabled: false # too dogmatic
|
|
@@ -15,8 +14,124 @@ RSpec/ExampleLength:
|
|
|
15
14
|
RSpec/MessageSpies:
|
|
16
15
|
Enabled: false
|
|
17
16
|
|
|
18
|
-
RSpec/MultipleExpectations:
|
|
19
|
-
Max: 5
|
|
20
|
-
|
|
21
17
|
RSpec/NestedGroups:
|
|
22
18
|
Max: 4 # default: 3
|
|
19
|
+
|
|
20
|
+
Metrics/BlockLength:
|
|
21
|
+
Exclude:
|
|
22
|
+
- 'spec/**/*.rb'
|
|
23
|
+
- '**/*.gemspec'
|
|
24
|
+
|
|
25
|
+
Gemspec/DateAssignment: # (new in 1.10)
|
|
26
|
+
Enabled: true
|
|
27
|
+
|
|
28
|
+
Layout/SpaceAroundMethodCallOperator:
|
|
29
|
+
Enabled: true
|
|
30
|
+
|
|
31
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
|
32
|
+
Enabled: true
|
|
33
|
+
|
|
34
|
+
Layout/SpaceBeforeBrackets: # (new in 1.7)
|
|
35
|
+
Enabled: true
|
|
36
|
+
|
|
37
|
+
Lint/AmbiguousAssignment: # (new in 1.7)
|
|
38
|
+
Enabled: true
|
|
39
|
+
|
|
40
|
+
Lint/DeprecatedConstants: # (new in 1.8)
|
|
41
|
+
Enabled: true
|
|
42
|
+
|
|
43
|
+
Lint/DuplicateBranch: # (new in 1.3)
|
|
44
|
+
Enabled: true
|
|
45
|
+
|
|
46
|
+
Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
|
|
47
|
+
Enabled: true
|
|
48
|
+
|
|
49
|
+
Lint/EmptyBlock: # (new in 1.1)
|
|
50
|
+
Enabled: true
|
|
51
|
+
|
|
52
|
+
Lint/EmptyClass: # (new in 1.3)
|
|
53
|
+
Enabled: true
|
|
54
|
+
|
|
55
|
+
Lint/LambdaWithoutLiteralBlock: # (new in 1.8)
|
|
56
|
+
Enabled: true
|
|
57
|
+
|
|
58
|
+
Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
|
|
59
|
+
Enabled: true
|
|
60
|
+
|
|
61
|
+
Lint/NumberedParameterAssignment: # (new in 1.9)
|
|
62
|
+
Enabled: true
|
|
63
|
+
|
|
64
|
+
Lint/OrAssignmentToConstant: # (new in 1.9)
|
|
65
|
+
Enabled: true
|
|
66
|
+
|
|
67
|
+
Lint/RedundantDirGlobSort: # (new in 1.8)
|
|
68
|
+
Enabled: true
|
|
69
|
+
|
|
70
|
+
Lint/SymbolConversion: # (new in 1.9)
|
|
71
|
+
Enabled: true
|
|
72
|
+
|
|
73
|
+
Lint/ToEnumArguments: # (new in 1.1)
|
|
74
|
+
Enabled: true
|
|
75
|
+
|
|
76
|
+
Lint/TripleQuotes: # (new in 1.9)
|
|
77
|
+
Enabled: true
|
|
78
|
+
|
|
79
|
+
Lint/UnexpectedBlockArity: # (new in 1.5)
|
|
80
|
+
Enabled: true
|
|
81
|
+
|
|
82
|
+
Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
|
|
83
|
+
Enabled: true
|
|
84
|
+
|
|
85
|
+
Lint/RaiseException:
|
|
86
|
+
Enabled: true
|
|
87
|
+
|
|
88
|
+
Lint/StructNewOverride:
|
|
89
|
+
Enabled: true
|
|
90
|
+
|
|
91
|
+
Style/ExponentialNotation:
|
|
92
|
+
Enabled: true
|
|
93
|
+
|
|
94
|
+
Style/HashEachMethods:
|
|
95
|
+
Enabled: true
|
|
96
|
+
|
|
97
|
+
Style/HashTransformKeys:
|
|
98
|
+
Enabled: true
|
|
99
|
+
|
|
100
|
+
Style/HashTransformValues:
|
|
101
|
+
Enabled: true
|
|
102
|
+
|
|
103
|
+
Style/SlicingWithRange:
|
|
104
|
+
Enabled: true
|
|
105
|
+
|
|
106
|
+
Style/ArgumentsForwarding: # (new in 1.1)
|
|
107
|
+
Enabled: true
|
|
108
|
+
|
|
109
|
+
Style/CollectionCompact: # (new in 1.2)
|
|
110
|
+
Enabled: true
|
|
111
|
+
|
|
112
|
+
Style/DocumentDynamicEvalDefinition: # (new in 1.1)
|
|
113
|
+
Enabled: true
|
|
114
|
+
|
|
115
|
+
Style/EndlessMethod: # (new in 1.8)
|
|
116
|
+
Enabled: true
|
|
117
|
+
|
|
118
|
+
Style/HashConversion: # (new in 1.10)
|
|
119
|
+
Enabled: true
|
|
120
|
+
|
|
121
|
+
Style/HashExcept: # (new in 1.7)
|
|
122
|
+
Enabled: true
|
|
123
|
+
|
|
124
|
+
Style/IfWithBooleanLiteralBranches: # (new in 1.9)
|
|
125
|
+
Enabled: true
|
|
126
|
+
|
|
127
|
+
Style/NegatedIfElseCondition: # (new in 1.2)
|
|
128
|
+
Enabled: true
|
|
129
|
+
|
|
130
|
+
Style/NilLambda: # (new in 1.3)
|
|
131
|
+
Enabled: true
|
|
132
|
+
|
|
133
|
+
Style/RedundantArgument: # (new in 1.4)
|
|
134
|
+
Enabled: true
|
|
135
|
+
|
|
136
|
+
Style/SwapValues: # (new in 1.1)
|
|
137
|
+
Enabled: true
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,110 +1,91 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on
|
|
3
|
+
# on 2021-03-16 21:16:42 UTC using RuboCop version 1.11.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
|
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
|
8
8
|
|
|
9
|
-
# Offense count: 1
|
|
10
|
-
# Cop supports --auto-correct.
|
|
11
|
-
# Configuration parameters: EnforcedStyleAlignWith, AutoCorrect, Severity.
|
|
12
|
-
# SupportedStylesAlignWith: keyword, variable, start_of_line
|
|
13
|
-
Layout/EndAlignment:
|
|
14
|
-
Exclude:
|
|
15
|
-
- 'lib/assembly-objectfile/content_metadata.rb'
|
|
16
|
-
|
|
17
9
|
# Offense count: 1
|
|
18
10
|
Lint/UselessAssignment:
|
|
19
11
|
Exclude:
|
|
20
12
|
- 'config/boot.rb'
|
|
21
13
|
|
|
22
|
-
# Offense count: 5
|
|
23
|
-
# Configuration parameters: CheckForMethodsWithNoSideEffects.
|
|
24
|
-
Lint/Void:
|
|
25
|
-
Exclude:
|
|
26
|
-
- 'spec/content_metadata_spec.rb'
|
|
27
|
-
|
|
28
14
|
# Offense count: 3
|
|
15
|
+
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
|
29
16
|
Metrics/AbcSize:
|
|
30
|
-
Max:
|
|
31
|
-
|
|
32
|
-
# Offense count: 15
|
|
33
|
-
# Configuration parameters: CountComments, ExcludedMethods.
|
|
34
|
-
# ExcludedMethods: refine
|
|
35
|
-
Metrics/BlockLength:
|
|
36
|
-
Max: 549
|
|
17
|
+
Max: 56
|
|
37
18
|
|
|
38
19
|
# Offense count: 1
|
|
39
|
-
# Configuration parameters: CountComments.
|
|
40
|
-
|
|
41
|
-
|
|
20
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
|
21
|
+
# IgnoredMethods: refine
|
|
22
|
+
Metrics/BlockLength:
|
|
23
|
+
Max: 27
|
|
42
24
|
|
|
43
|
-
# Offense count:
|
|
25
|
+
# Offense count: 2
|
|
26
|
+
# Configuration parameters: IgnoredMethods.
|
|
44
27
|
Metrics/CyclomaticComplexity:
|
|
45
|
-
Max:
|
|
28
|
+
Max: 14
|
|
46
29
|
|
|
47
|
-
# Offense count:
|
|
48
|
-
# Configuration parameters:
|
|
49
|
-
# URISchemes: http, https
|
|
50
|
-
Metrics/LineLength:
|
|
51
|
-
Max: 304
|
|
52
|
-
|
|
53
|
-
# Offense count: 1
|
|
54
|
-
# Configuration parameters: CountComments.
|
|
30
|
+
# Offense count: 4
|
|
31
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
|
55
32
|
Metrics/MethodLength:
|
|
56
|
-
Max:
|
|
33
|
+
Max: 31
|
|
57
34
|
|
|
58
35
|
# Offense count: 1
|
|
59
|
-
# Configuration parameters: CountComments.
|
|
36
|
+
# Configuration parameters: CountComments, CountAsOne.
|
|
60
37
|
Metrics/ModuleLength:
|
|
61
|
-
Max:
|
|
38
|
+
Max: 117
|
|
62
39
|
|
|
63
40
|
# Offense count: 1
|
|
64
|
-
|
|
65
|
-
|
|
41
|
+
# Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
|
|
42
|
+
Metrics/ParameterLists:
|
|
43
|
+
Max: 13
|
|
66
44
|
|
|
67
45
|
# Offense count: 2
|
|
68
|
-
# Configuration parameters:
|
|
46
|
+
# Configuration parameters: IgnoredMethods.
|
|
47
|
+
Metrics/PerceivedComplexity:
|
|
48
|
+
Max: 15
|
|
49
|
+
|
|
50
|
+
# Offense count: 1
|
|
51
|
+
# Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, Regex, IgnoreExecutableScripts, AllowedAcronyms.
|
|
69
52
|
# 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
|
|
70
53
|
Naming/FileName:
|
|
71
54
|
Exclude:
|
|
72
|
-
- 'assembly-objectfile.gemspec'
|
|
73
55
|
- 'lib/assembly-objectfile.rb'
|
|
74
56
|
|
|
75
|
-
# Offense count:
|
|
76
|
-
# Configuration parameters: NamePrefix,
|
|
57
|
+
# Offense count: 1
|
|
58
|
+
# Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
|
|
77
59
|
# NamePrefix: is_, has_, have_
|
|
78
|
-
#
|
|
79
|
-
#
|
|
60
|
+
# ForbiddenPrefixes: is_, has_, have_
|
|
61
|
+
# AllowedMethods: is_a?
|
|
80
62
|
# MethodDefinitionMacros: define_method, define_singleton_method
|
|
81
63
|
Naming/PredicateName:
|
|
82
64
|
Exclude:
|
|
83
65
|
- 'spec/**/*'
|
|
84
|
-
- 'lib/assembly-objectfile/content_metadata.rb'
|
|
85
66
|
- 'lib/assembly-objectfile/object_fileable.rb'
|
|
86
67
|
|
|
87
|
-
# Offense count:
|
|
68
|
+
# Offense count: 9
|
|
88
69
|
# Configuration parameters: Max.
|
|
89
70
|
RSpec/ExampleLength:
|
|
90
71
|
Exclude:
|
|
91
72
|
- 'spec/content_metadata_spec.rb'
|
|
92
73
|
|
|
93
74
|
# Offense count: 2
|
|
94
|
-
# Configuration parameters: CustomTransform, IgnoreMethods.
|
|
75
|
+
# Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
|
|
76
|
+
# Include: **/*_spec*rb*, **/spec/**/*
|
|
95
77
|
RSpec/FilePath:
|
|
96
78
|
Exclude:
|
|
97
79
|
- 'spec/content_metadata_spec.rb'
|
|
98
80
|
- 'spec/object_file_spec.rb'
|
|
99
81
|
|
|
100
|
-
# Offense count:
|
|
82
|
+
# Offense count: 71
|
|
101
83
|
# Configuration parameters: AssignmentOnly.
|
|
102
84
|
RSpec/InstanceVariable:
|
|
103
85
|
Exclude:
|
|
104
86
|
- 'spec/object_file_spec.rb'
|
|
105
87
|
|
|
106
|
-
# Offense count:
|
|
107
|
-
# Configuration parameters: AggregateFailuresByDefault.
|
|
88
|
+
# Offense count: 39
|
|
108
89
|
RSpec/MultipleExpectations:
|
|
109
90
|
Max: 29
|
|
110
91
|
|
|
@@ -113,20 +94,25 @@ RSpec/RepeatedDescription:
|
|
|
113
94
|
Exclude:
|
|
114
95
|
- 'spec/object_file_spec.rb'
|
|
115
96
|
|
|
116
|
-
# Offense count:
|
|
117
|
-
|
|
97
|
+
# Offense count: 2
|
|
98
|
+
RSpec/RepeatedExample:
|
|
118
99
|
Exclude:
|
|
119
|
-
- '
|
|
100
|
+
- 'spec/object_file_spec.rb'
|
|
120
101
|
|
|
121
|
-
# Offense count:
|
|
122
|
-
|
|
102
|
+
# Offense count: 8
|
|
103
|
+
RSpec/RepeatedExampleGroupDescription:
|
|
123
104
|
Exclude:
|
|
124
|
-
- 'spec
|
|
125
|
-
- 'test/**/*'
|
|
126
|
-
- 'lib/assembly-objectfile.rb'
|
|
105
|
+
- 'spec/content_metadata_spec.rb'
|
|
127
106
|
|
|
128
|
-
# Offense count:
|
|
129
|
-
#
|
|
130
|
-
Style/
|
|
107
|
+
# Offense count: 2
|
|
108
|
+
# Cop supports --auto-correct.
|
|
109
|
+
Style/CommentedKeyword:
|
|
131
110
|
Exclude:
|
|
132
|
-
- 'lib/assembly-objectfile/
|
|
111
|
+
- 'lib/assembly-objectfile/content_metadata.rb'
|
|
112
|
+
|
|
113
|
+
# Offense count: 116
|
|
114
|
+
# Cop supports --auto-correct.
|
|
115
|
+
# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
|
116
|
+
# URISchemes: http, https
|
|
117
|
+
Layout/LineLength:
|
|
118
|
+
Max: 277
|
data/.travis.yml
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
1
|
language: ruby
|
|
3
2
|
rvm:
|
|
4
|
-
- 2.
|
|
5
|
-
- 2.
|
|
6
|
-
- 2.5.3
|
|
3
|
+
- 2.5.7
|
|
4
|
+
- 2.6.5
|
|
7
5
|
addons:
|
|
8
6
|
apt:
|
|
9
7
|
packages:
|
|
@@ -13,6 +11,7 @@ before_script:
|
|
|
13
11
|
- chmod +x ./cc-test-reporter
|
|
14
12
|
- ./cc-test-reporter before-build
|
|
15
13
|
script:
|
|
14
|
+
- bundle exec rubocop
|
|
16
15
|
- bundle exec rake
|
|
17
16
|
after_script:
|
|
18
17
|
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[](https://travis-ci.com/sul-dlss/assembly-objectfile)
|
|
2
2
|
[](https://codeclimate.com/github/sul-dlss/assembly-objectfile/test_coverage)
|
|
3
3
|
[](https://codeclimate.com/github/sul-dlss/assembly-objectfile/maintainability)
|
|
4
4
|
[](https://badge.fury.io/rb/assembly-objectfile)
|
data/Rakefile
CHANGED
data/assembly-objectfile.gemspec
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
|
2
4
|
require 'assembly-objectfile/version'
|
|
3
5
|
|
|
@@ -12,14 +14,18 @@ Gem::Specification.new do |s|
|
|
|
12
14
|
s.description = 'Get exif data, file sizes and more.'
|
|
13
15
|
s.license = 'ALv2'
|
|
14
16
|
|
|
15
|
-
s.rubyforge_project = 'assembly-objectfile'
|
|
16
|
-
|
|
17
17
|
s.files = `git ls-files`.split("\n")
|
|
18
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'
|
|
24
|
+
|
|
25
|
+
s.add_dependency 'activesupport', '>= 5.2.0'
|
|
26
|
+
s.add_dependency 'deprecation'
|
|
27
|
+
s.add_dependency 'dry-struct', '~> 1.0'
|
|
28
|
+
s.add_dependency 'dry-types', '~> 1.1'
|
|
23
29
|
s.add_dependency 'mime-types', '> 3'
|
|
24
30
|
s.add_dependency 'mini_exiftool'
|
|
25
31
|
s.add_dependency 'nokogiri'
|
|
@@ -29,5 +35,5 @@ Gem::Specification.new do |s|
|
|
|
29
35
|
s.add_development_dependency 'rspec', '~> 3.0'
|
|
30
36
|
s.add_development_dependency 'rubocop'
|
|
31
37
|
s.add_development_dependency 'rubocop-rspec'
|
|
32
|
-
s.add_development_dependency 'simplecov'
|
|
38
|
+
s.add_development_dependency 'simplecov', '~> 0.17.0' # CodeClimate cannot use SimpleCov >= 0.18.0 for generating test coverage
|
|
33
39
|
end
|