longleaf 0.2.0.pre.1 → 0.3.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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +84 -0
- data/.gitignore +4 -2
- data/.rubocop.yml +42 -2
- data/.rubocop_todo.yml +390 -311
- data/.yardopts +1 -0
- data/Gemfile +16 -1
- data/README.md +67 -13
- data/Rakefile +6 -0
- data/bin/setup +16 -1
- data/docs/aboutlongleaf.md +28 -0
- data/docs/extra.css +32 -0
- data/docs/img/change-file.png +0 -0
- data/docs/img/ll-example-preserved.png +0 -0
- data/docs/index.md +19 -0
- data/docs/install.md +66 -0
- data/docs/ll-example/config-example-relative.yml +33 -0
- data/docs/ll-example/files-dir/LLexample-PDF.pdf +0 -0
- data/docs/ll-example/files-dir/LLexample-TOCHANGE.txt +15 -0
- data/docs/ll-example/files-dir/LLexample-tokeep.txt +10 -0
- data/docs/ll-example/metadata-dir/.gitkeep +0 -0
- data/docs/ll-example/replica-files/.gitkeep +0 -0
- data/docs/ll-example/replica-metadata/.gitkeep +0 -0
- data/docs/quickstart.md +270 -0
- data/docs/rdocs/Longleaf.html +135 -0
- data/docs/rdocs/Longleaf/AppFields.html +178 -0
- data/docs/rdocs/Longleaf/ApplicationConfigDeserializer.html +631 -0
- data/docs/rdocs/Longleaf/ApplicationConfigManager.html +610 -0
- data/docs/rdocs/Longleaf/ApplicationConfigValidator.html +238 -0
- data/docs/rdocs/Longleaf/CLI.html +909 -0
- data/docs/rdocs/Longleaf/ChecksumMismatchError.html +151 -0
- data/docs/rdocs/Longleaf/ConfigBuilder.html +1339 -0
- data/docs/rdocs/Longleaf/ConfigurationError.html +143 -0
- data/docs/rdocs/Longleaf/ConfigurationValidator.html +227 -0
- data/docs/rdocs/Longleaf/DeregisterCommand.html +420 -0
- data/docs/rdocs/Longleaf/DeregisterEvent.html +453 -0
- data/docs/rdocs/Longleaf/DeregistrationError.html +151 -0
- data/docs/rdocs/Longleaf/DigestHelper.html +419 -0
- data/docs/rdocs/Longleaf/EventError.html +147 -0
- data/docs/rdocs/Longleaf/EventNames.html +163 -0
- data/docs/rdocs/Longleaf/EventStatusTracking.html +656 -0
- data/docs/rdocs/Longleaf/FileCheckService.html +540 -0
- data/docs/rdocs/Longleaf/FileHelpers.html +520 -0
- data/docs/rdocs/Longleaf/FileRecord.html +716 -0
- data/docs/rdocs/Longleaf/FileSelector.html +901 -0
- data/docs/rdocs/Longleaf/FixityCheckService.html +691 -0
- data/docs/rdocs/Longleaf/IndexManager.html +1155 -0
- data/docs/rdocs/Longleaf/InvalidDigestAlgorithmError.html +143 -0
- data/docs/rdocs/Longleaf/InvalidStoragePathError.html +143 -0
- data/docs/rdocs/Longleaf/Logging.html +405 -0
- data/docs/rdocs/Longleaf/Logging/RedirectingLogger.html +1213 -0
- data/docs/rdocs/Longleaf/LongleafError.html +139 -0
- data/docs/rdocs/Longleaf/MDFields.html +193 -0
- data/docs/rdocs/Longleaf/MetadataBuilder.html +787 -0
- data/docs/rdocs/Longleaf/MetadataDeserializer.html +537 -0
- data/docs/rdocs/Longleaf/MetadataError.html +143 -0
- data/docs/rdocs/Longleaf/MetadataPersistenceManager.html +539 -0
- data/docs/rdocs/Longleaf/MetadataRecord.html +1411 -0
- data/docs/rdocs/Longleaf/MetadataSerializer.html +786 -0
- data/docs/rdocs/Longleaf/PreservationServiceError.html +147 -0
- data/docs/rdocs/Longleaf/PreserveCommand.html +410 -0
- data/docs/rdocs/Longleaf/PreserveEvent.html +491 -0
- data/docs/rdocs/Longleaf/RegisterCommand.html +428 -0
- data/docs/rdocs/Longleaf/RegisterEvent.html +628 -0
- data/docs/rdocs/Longleaf/RegisteredFileSelector.html +446 -0
- data/docs/rdocs/Longleaf/RegistrationError.html +151 -0
- data/docs/rdocs/Longleaf/ReindexCommand.html +576 -0
- data/docs/rdocs/Longleaf/RsyncReplicationService.html +1180 -0
- data/docs/rdocs/Longleaf/SequelIndexDriver.html +1978 -0
- data/docs/rdocs/Longleaf/ServiceCandidateFilesystemIterator.html +572 -0
- data/docs/rdocs/Longleaf/ServiceCandidateIndexIterator.html +532 -0
- data/docs/rdocs/Longleaf/ServiceCandidateLocator.html +333 -0
- data/docs/rdocs/Longleaf/ServiceClassCache.html +725 -0
- data/docs/rdocs/Longleaf/ServiceDateHelper.html +425 -0
- data/docs/rdocs/Longleaf/ServiceDefinition.html +683 -0
- data/docs/rdocs/Longleaf/ServiceDefinitionManager.html +371 -0
- data/docs/rdocs/Longleaf/ServiceDefinitionValidator.html +269 -0
- data/docs/rdocs/Longleaf/ServiceFields.html +173 -0
- data/docs/rdocs/Longleaf/ServiceManager.html +1229 -0
- data/docs/rdocs/Longleaf/ServiceMappingManager.html +410 -0
- data/docs/rdocs/Longleaf/ServiceMappingValidator.html +347 -0
- data/docs/rdocs/Longleaf/ServiceRecord.html +821 -0
- data/docs/rdocs/Longleaf/StorageLocation.html +985 -0
- data/docs/rdocs/Longleaf/StorageLocationManager.html +729 -0
- data/docs/rdocs/Longleaf/StorageLocationUnavailableError.html +143 -0
- data/docs/rdocs/Longleaf/StorageLocationValidator.html +373 -0
- data/docs/rdocs/Longleaf/StoragePathValidator.html +253 -0
- data/docs/rdocs/Longleaf/SystemConfigBuilder.html +441 -0
- data/docs/rdocs/Longleaf/SystemConfigFields.html +163 -0
- data/docs/rdocs/Longleaf/ValidateConfigCommand.html +451 -0
- data/docs/rdocs/Longleaf/ValidateMetadataCommand.html +408 -0
- data/docs/rdocs/_index.html +660 -0
- data/docs/rdocs/class_list.html +51 -0
- data/docs/rdocs/css/common.css +1 -0
- data/docs/rdocs/css/full_list.css +58 -0
- data/docs/rdocs/css/style.css +496 -0
- data/docs/rdocs/file.README.html +165 -0
- data/docs/rdocs/file_list.html +56 -0
- data/docs/rdocs/frames.html +17 -0
- data/docs/rdocs/index.html +165 -0
- data/docs/rdocs/js/app.js +303 -0
- data/docs/rdocs/js/full_list.js +216 -0
- data/docs/rdocs/js/jquery.js +4 -0
- data/docs/rdocs/method_list.html +2051 -0
- data/docs/rdocs/top-level-namespace.html +110 -0
- data/lib/longleaf/candidates/file_selector.rb +47 -15
- data/lib/longleaf/candidates/registered_file_selector.rb +67 -0
- data/lib/longleaf/candidates/service_candidate_filesystem_iterator.rb +29 -35
- data/lib/longleaf/candidates/service_candidate_index_iterator.rb +84 -0
- data/lib/longleaf/candidates/service_candidate_locator.rb +9 -4
- data/lib/longleaf/cli.rb +162 -80
- data/lib/longleaf/commands/deregister_command.rb +12 -11
- data/lib/longleaf/commands/preserve_command.rb +13 -8
- data/lib/longleaf/commands/register_command.rb +9 -6
- data/lib/longleaf/commands/reindex_command.rb +92 -0
- data/lib/longleaf/commands/validate_config_command.rb +27 -6
- data/lib/longleaf/commands/validate_metadata_command.rb +11 -9
- data/lib/longleaf/errors.rb +12 -12
- data/lib/longleaf/events/deregister_event.rb +13 -15
- data/lib/longleaf/events/event_status_tracking.rb +7 -7
- data/lib/longleaf/events/preserve_event.rb +24 -14
- data/lib/longleaf/events/register_event.rb +21 -35
- data/lib/longleaf/helpers/digest_helper.rb +4 -4
- data/lib/longleaf/helpers/service_date_helper.rb +5 -6
- data/lib/longleaf/indexing/index_manager.rb +101 -0
- data/lib/longleaf/indexing/sequel_index_driver.rb +324 -0
- data/lib/longleaf/logging.rb +4 -4
- data/lib/longleaf/logging/redirecting_logger.rb +20 -20
- data/lib/longleaf/models/app_fields.rb +2 -1
- data/lib/longleaf/models/file_record.rb +10 -6
- data/lib/longleaf/models/md_fields.rb +1 -1
- data/lib/longleaf/models/metadata_record.rb +22 -12
- data/lib/longleaf/models/service_definition.rb +3 -3
- data/lib/longleaf/models/service_fields.rb +1 -1
- data/lib/longleaf/models/service_record.rb +6 -5
- data/lib/longleaf/models/storage_location.rb +26 -7
- data/lib/longleaf/models/system_config_fields.rb +9 -0
- data/lib/longleaf/preservation_services/file_check_service.rb +58 -0
- data/lib/longleaf/preservation_services/fixity_check_service.rb +16 -14
- data/lib/longleaf/preservation_services/rsync_replication_service.rb +32 -31
- data/lib/longleaf/services/application_config_deserializer.rb +55 -18
- data/lib/longleaf/services/application_config_manager.rb +16 -4
- data/lib/longleaf/services/application_config_validator.rb +1 -2
- data/lib/longleaf/services/configuration_validator.rb +6 -4
- data/lib/longleaf/services/metadata_deserializer.rb +40 -38
- data/lib/longleaf/services/metadata_persistence_manager.rb +46 -0
- data/lib/longleaf/services/metadata_serializer.rb +23 -22
- data/lib/longleaf/services/service_class_cache.rb +15 -15
- data/lib/longleaf/services/service_definition_manager.rb +5 -6
- data/lib/longleaf/services/service_definition_validator.rb +5 -6
- data/lib/longleaf/services/service_manager.rb +37 -17
- data/lib/longleaf/services/service_mapping_manager.rb +9 -9
- data/lib/longleaf/services/service_mapping_validator.rb +9 -10
- data/lib/longleaf/services/storage_location_manager.rb +22 -8
- data/lib/longleaf/services/storage_location_validator.rb +11 -8
- data/lib/longleaf/services/storage_path_validator.rb +1 -1
- data/lib/longleaf/specs/config_builder.rb +30 -17
- data/lib/longleaf/specs/custom_matchers.rb +1 -1
- data/lib/longleaf/specs/file_helpers.rb +15 -14
- data/lib/longleaf/specs/metadata_builder.rb +91 -0
- data/lib/longleaf/specs/system_config_builder.rb +27 -0
- data/lib/longleaf/version.rb +1 -1
- data/longleaf.gemspec +17 -7
- data/mkdocs.yml +20 -0
- metadata +233 -22
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>
|
|
7
|
+
Class: Longleaf::MetadataDeserializer
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.9.19
|
|
10
|
+
|
|
11
|
+
</title>
|
|
12
|
+
|
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
|
16
|
+
|
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
|
18
|
+
pathId = "Longleaf::MetadataDeserializer";
|
|
19
|
+
relpath = '../';
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
|
24
|
+
|
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="nav_wrap">
|
|
31
|
+
<iframe id="nav" src="../class_list.html?1"></iframe>
|
|
32
|
+
<div id="resizer"></div>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div id="main" tabindex="-1">
|
|
36
|
+
<div id="header">
|
|
37
|
+
<div id="menu">
|
|
38
|
+
|
|
39
|
+
<a href="../_index.html">Index (M)</a> »
|
|
40
|
+
<span class='title'><span class='object_link'><a href="../Longleaf.html" title="Longleaf (module)">Longleaf</a></span></span>
|
|
41
|
+
»
|
|
42
|
+
<span class="title">MetadataDeserializer</span>
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<div id="search">
|
|
47
|
+
|
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
|
49
|
+
href="../class_list.html">
|
|
50
|
+
|
|
51
|
+
<svg width="24" height="24">
|
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
|
55
|
+
</svg>
|
|
56
|
+
</a>
|
|
57
|
+
|
|
58
|
+
</div>
|
|
59
|
+
<div class="clear"></div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div id="content"><h1>Class: Longleaf::MetadataDeserializer
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
</h1>
|
|
67
|
+
<div class="box_info">
|
|
68
|
+
|
|
69
|
+
<dl>
|
|
70
|
+
<dt>Inherits:</dt>
|
|
71
|
+
<dd>
|
|
72
|
+
<span class="inheritName">Object</span>
|
|
73
|
+
|
|
74
|
+
<ul class="fullTree">
|
|
75
|
+
<li>Object</li>
|
|
76
|
+
|
|
77
|
+
<li class="next">Longleaf::MetadataDeserializer</li>
|
|
78
|
+
|
|
79
|
+
</ul>
|
|
80
|
+
<a href="#" class="inheritanceTree">show all</a>
|
|
81
|
+
|
|
82
|
+
</dd>
|
|
83
|
+
</dl>
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
<dl>
|
|
89
|
+
<dt>Extended by:</dt>
|
|
90
|
+
<dd><span class='object_link'><a href="Logging.html" title="Longleaf::Logging (module)">Logging</a></span></dd>
|
|
91
|
+
</dl>
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
<dl>
|
|
101
|
+
<dt>Defined in:</dt>
|
|
102
|
+
<dd>lib/longleaf/services/metadata_deserializer.rb</dd>
|
|
103
|
+
</dl>
|
|
104
|
+
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
<h2>Overview</h2><div class="docstring">
|
|
108
|
+
<div class="discussion">
|
|
109
|
+
|
|
110
|
+
<p>Service which deserializes metadata files into MetadataRecord objects</p>
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
<div class="tags">
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
<h2>
|
|
127
|
+
Class Method Summary
|
|
128
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
|
129
|
+
</h2>
|
|
130
|
+
|
|
131
|
+
<ul class="summary">
|
|
132
|
+
|
|
133
|
+
<li class="public ">
|
|
134
|
+
<span class="summary_signature">
|
|
135
|
+
|
|
136
|
+
<a href="#deserialize-class_method" title="deserialize (class method)">.<strong>deserialize</strong>(file_path:, format: 'yaml', digest_algs: []) ⇒ Object </a>
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
</span>
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
<span class="summary_desc"><div class='inline'>
|
|
151
|
+
<p>Deserialize a file into a MetadataRecord object.</p>
|
|
152
|
+
</div></span>
|
|
153
|
+
|
|
154
|
+
</li>
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
<li class="public ">
|
|
158
|
+
<span class="summary_signature">
|
|
159
|
+
|
|
160
|
+
<a href="#from_yaml-class_method" title="from_yaml (class method)">.<strong>from_yaml</strong>(file_path, digest_algs) ⇒ Object </a>
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
</span>
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
<span class="summary_desc"><div class='inline'>
|
|
175
|
+
<p>Load configuration a yaml encoded configuration file.</p>
|
|
176
|
+
</div></span>
|
|
177
|
+
|
|
178
|
+
</li>
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
<li class="public ">
|
|
182
|
+
<span class="summary_signature">
|
|
183
|
+
|
|
184
|
+
<a href="#verify_digests-class_method" title="verify_digests (class method)">.<strong>verify_digests</strong>(file_path, contents, digest_algs) ⇒ Object </a>
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
</span>
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
199
|
+
|
|
200
|
+
</li>
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
</ul>
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
<h3 class="inherited">Methods included from <span class='object_link'><a href="Logging.html" title="Longleaf::Logging (module)">Logging</a></span></h3>
|
|
216
|
+
<p class="inherited"><span class='object_link'><a href="Logging.html#initialize_logger-instance_method" title="Longleaf::Logging#initialize_logger (method)">initialize_logger</a></span>, <span class='object_link'><a href="Logging.html#initialize_logger-class_method" title="Longleaf::Logging.initialize_logger (method)">initialize_logger</a></span>, <span class='object_link'><a href="Logging.html#logger-instance_method" title="Longleaf::Logging#logger (method)">logger</a></span>, <span class='object_link'><a href="Logging.html#logger-class_method" title="Longleaf::Logging.logger (method)">logger</a></span></p>
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
<div id="class_method_details" class="method_details_list">
|
|
220
|
+
<h2>Class Method Details</h2>
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
<div class="method_details first">
|
|
224
|
+
<h3 class="signature first" id="deserialize-class_method">
|
|
225
|
+
|
|
226
|
+
.<strong>deserialize</strong>(file_path:, format: 'yaml', digest_algs: []) ⇒ <tt>Object</tt>
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
</h3><div class="docstring">
|
|
233
|
+
<div class="discussion">
|
|
234
|
+
|
|
235
|
+
<p>Deserialize a file into a MetadataRecord object</p>
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
<div class="tags">
|
|
241
|
+
<p class="tag_title">Parameters:</p>
|
|
242
|
+
<ul class="param">
|
|
243
|
+
|
|
244
|
+
<li>
|
|
245
|
+
|
|
246
|
+
<span class='name'>file_path</span>
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
—
|
|
254
|
+
<div class='inline'>
|
|
255
|
+
<p>path of the file to read. Required.</p>
|
|
256
|
+
</div>
|
|
257
|
+
|
|
258
|
+
</li>
|
|
259
|
+
|
|
260
|
+
<li>
|
|
261
|
+
|
|
262
|
+
<span class='name'>format</span>
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
—
|
|
270
|
+
<div class='inline'>
|
|
271
|
+
<p>format the file is stored in. Default is 'yaml'.</p>
|
|
272
|
+
</div>
|
|
273
|
+
|
|
274
|
+
</li>
|
|
275
|
+
|
|
276
|
+
</ul>
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
</div><table class="source_code">
|
|
280
|
+
<tr>
|
|
281
|
+
<td>
|
|
282
|
+
<pre class="lines">
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
17
|
|
286
|
+
18
|
|
287
|
+
19
|
|
288
|
+
20
|
|
289
|
+
21
|
|
290
|
+
22
|
|
291
|
+
23
|
|
292
|
+
24
|
|
293
|
+
25
|
|
294
|
+
26
|
|
295
|
+
27
|
|
296
|
+
28
|
|
297
|
+
29
|
|
298
|
+
30
|
|
299
|
+
31
|
|
300
|
+
32
|
|
301
|
+
33
|
|
302
|
+
34
|
|
303
|
+
35
|
|
304
|
+
36
|
|
305
|
+
37
|
|
306
|
+
38
|
|
307
|
+
39
|
|
308
|
+
40
|
|
309
|
+
41
|
|
310
|
+
42
|
|
311
|
+
43
|
|
312
|
+
44
|
|
313
|
+
45
|
|
314
|
+
46
|
|
315
|
+
47
|
|
316
|
+
48
|
|
317
|
+
49
|
|
318
|
+
50
|
|
319
|
+
51
|
|
320
|
+
52
|
|
321
|
+
53
|
|
322
|
+
54
|
|
323
|
+
55
|
|
324
|
+
56
|
|
325
|
+
57
|
|
326
|
+
58
|
|
327
|
+
59
|
|
328
|
+
60
|
|
329
|
+
61
|
|
330
|
+
62</pre>
|
|
331
|
+
</td>
|
|
332
|
+
<td>
|
|
333
|
+
<pre class="code"><span class="info file"># File 'lib/longleaf/services/metadata_deserializer.rb', line 17</span>
|
|
334
|
+
|
|
335
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_deserialize'>deserialize</span><span class='lparen'>(</span><span class='label'>file_path:</span><span class='comma'>,</span> <span class='label'>format:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>yaml</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>digest_algs:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
|
336
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_format'>format</span>
|
|
337
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>yaml</span><span class='tstring_end'>'</span></span>
|
|
338
|
+
<span class='id identifier rubyid_md'>md</span> <span class='op'>=</span> <span class='id identifier rubyid_from_yaml'>from_yaml</span><span class='lparen'>(</span><span class='id identifier rubyid_file_path'>file_path</span><span class='comma'>,</span> <span class='id identifier rubyid_digest_algs'>digest_algs</span><span class='rparen'>)</span>
|
|
339
|
+
<span class='kw'>else</span>
|
|
340
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid deserialization format </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_format'>format</span><span class='embexpr_end'>}</span><span class='tstring_content'> specified</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
341
|
+
<span class='kw'>end</span>
|
|
342
|
+
|
|
343
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_md'>md</span> <span class='op'>||</span> <span class='op'>!</span><span class='id identifier rubyid_md'>md</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='op'>!</span><span class='id identifier rubyid_md'>md</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='const'>MDF</span><span class='op'>::</span><span class='const'>DATA</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='op'>!</span><span class='id identifier rubyid_md'>md</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='const'>MDF</span><span class='op'>::</span><span class='const'>SERVICES</span><span class='rparen'>)</span>
|
|
344
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../Longleaf.html" title="Longleaf (module)">Longleaf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MetadataError.html" title="Longleaf::MetadataError (class)">MetadataError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid metadata file, did not contain data or services fields: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_file_path'>file_path</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
345
|
+
<span class='kw'>end</span>
|
|
346
|
+
|
|
347
|
+
<span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_md'>md</span><span class='lbracket'>[</span><span class='const'>MDF</span><span class='op'>::</span><span class='const'>DATA</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
|
348
|
+
<span class='comment'># Extract reserved properties for submission as separate parameters
|
|
349
|
+
</span> <span class='id identifier rubyid_registered'>registered</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="MDFields.html" title="Longleaf::MDFields (class)">MDFields</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MDFields.html#REGISTERED_TIMESTAMP-constant" title="Longleaf::MDFields::REGISTERED_TIMESTAMP (constant)">REGISTERED_TIMESTAMP</a></span></span><span class='rparen'>)</span>
|
|
350
|
+
<span class='id identifier rubyid_deregistered'>deregistered</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="MDFields.html" title="Longleaf::MDFields (class)">MDFields</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MDFields.html#DEREGISTERED_TIMESTAMP-constant" title="Longleaf::MDFields::DEREGISTERED_TIMESTAMP (constant)">DEREGISTERED_TIMESTAMP</a></span></span><span class='rparen'>)</span>
|
|
351
|
+
<span class='id identifier rubyid_checksums'>checksums</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="MDFields.html" title="Longleaf::MDFields (class)">MDFields</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MDFields.html#CHECKSUMS-constant" title="Longleaf::MDFields::CHECKSUMS (constant)">CHECKSUMS</a></span></span><span class='rparen'>)</span>
|
|
352
|
+
<span class='id identifier rubyid_file_size'>file_size</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="MDFields.html" title="Longleaf::MDFields (class)">MDFields</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MDFields.html#FILE_SIZE-constant" title="Longleaf::MDFields::FILE_SIZE (constant)">FILE_SIZE</a></span></span><span class='rparen'>)</span>
|
|
353
|
+
<span class='id identifier rubyid_last_modified'>last_modified</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="MDFields.html" title="Longleaf::MDFields (class)">MDFields</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MDFields.html#LAST_MODIFIED-constant" title="Longleaf::MDFields::LAST_MODIFIED (constant)">LAST_MODIFIED</a></span></span><span class='rparen'>)</span>
|
|
354
|
+
|
|
355
|
+
<span class='id identifier rubyid_services'>services</span> <span class='op'>=</span> <span class='id identifier rubyid_md'>md</span><span class='lbracket'>[</span><span class='const'>MDF</span><span class='op'>::</span><span class='const'>SERVICES</span><span class='rbracket'>]</span>
|
|
356
|
+
<span class='id identifier rubyid_service_records'>service_records</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
357
|
+
<span class='id identifier rubyid_services'>services</span><span class='op'>&.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_props'>props</span><span class='op'>|</span>
|
|
358
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../Longleaf.html" title="Longleaf (module)">Longleaf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MetadataError.html" title="Longleaf::MetadataError (class)">MetadataError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Value of service </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'> must be a hash</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_props'>props</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Hash</span>
|
|
359
|
+
|
|
360
|
+
<span class='id identifier rubyid_service_props'>service_props</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_props'>props</span><span class='rparen'>)</span>
|
|
361
|
+
|
|
362
|
+
<span class='id identifier rubyid_stale_replicas'>stale_replicas</span> <span class='op'>=</span> <span class='id identifier rubyid_service_props'>service_props</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="MDFields.html" title="Longleaf::MDFields (class)">MDFields</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MDFields.html#STALE_REPLICAS-constant" title="Longleaf::MDFields::STALE_REPLICAS (constant)">STALE_REPLICAS</a></span></span><span class='rparen'>)</span>
|
|
363
|
+
<span class='id identifier rubyid_timestamp'>timestamp</span> <span class='op'>=</span> <span class='id identifier rubyid_service_props'>service_props</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="MDFields.html" title="Longleaf::MDFields (class)">MDFields</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MDFields.html#SERVICE_TIMESTAMP-constant" title="Longleaf::MDFields::SERVICE_TIMESTAMP (constant)">SERVICE_TIMESTAMP</a></span></span><span class='rparen'>)</span>
|
|
364
|
+
<span class='id identifier rubyid_run_needed'>run_needed</span> <span class='op'>=</span> <span class='id identifier rubyid_service_props'>service_props</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="MDFields.html" title="Longleaf::MDFields (class)">MDFields</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MDFields.html#RUN_NEEDED-constant" title="Longleaf::MDFields::RUN_NEEDED (constant)">RUN_NEEDED</a></span></span><span class='rparen'>)</span>
|
|
365
|
+
|
|
366
|
+
<span class='id identifier rubyid_service_records'>service_records</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="ServiceRecord.html" title="Longleaf::ServiceRecord (class)">ServiceRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="ServiceRecord.html#initialize-instance_method" title="Longleaf::ServiceRecord#initialize (method)">new</a></span></span><span class='lparen'>(</span>
|
|
367
|
+
<span class='label'>properties:</span> <span class='id identifier rubyid_service_props'>service_props</span><span class='comma'>,</span>
|
|
368
|
+
<span class='label'>stale_replicas:</span> <span class='id identifier rubyid_stale_replicas'>stale_replicas</span><span class='comma'>,</span>
|
|
369
|
+
<span class='label'>timestamp:</span> <span class='id identifier rubyid_timestamp'>timestamp</span><span class='comma'>,</span>
|
|
370
|
+
<span class='label'>run_needed:</span> <span class='id identifier rubyid_run_needed'>run_needed</span><span class='rparen'>)</span>
|
|
371
|
+
<span class='kw'>end</span>
|
|
372
|
+
|
|
373
|
+
<span class='const'><span class='object_link'><a href="MetadataRecord.html" title="Longleaf::MetadataRecord (class)">MetadataRecord</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="MetadataRecord.html#initialize-instance_method" title="Longleaf::MetadataRecord#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>properties:</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span>
|
|
374
|
+
<span class='label'>services:</span> <span class='id identifier rubyid_service_records'>service_records</span><span class='comma'>,</span>
|
|
375
|
+
<span class='label'>registered:</span> <span class='id identifier rubyid_registered'>registered</span><span class='comma'>,</span>
|
|
376
|
+
<span class='label'>deregistered:</span> <span class='id identifier rubyid_deregistered'>deregistered</span><span class='comma'>,</span>
|
|
377
|
+
<span class='label'>checksums:</span> <span class='id identifier rubyid_checksums'>checksums</span><span class='comma'>,</span>
|
|
378
|
+
<span class='label'>file_size:</span> <span class='id identifier rubyid_file_size'>file_size</span><span class='comma'>,</span>
|
|
379
|
+
<span class='label'>last_modified:</span> <span class='id identifier rubyid_last_modified'>last_modified</span><span class='rparen'>)</span>
|
|
380
|
+
<span class='kw'>end</span></pre>
|
|
381
|
+
</td>
|
|
382
|
+
</tr>
|
|
383
|
+
</table>
|
|
384
|
+
</div>
|
|
385
|
+
|
|
386
|
+
<div class="method_details ">
|
|
387
|
+
<h3 class="signature " id="from_yaml-class_method">
|
|
388
|
+
|
|
389
|
+
.<strong>from_yaml</strong>(file_path, digest_algs) ⇒ <tt>Object</tt>
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
</h3><div class="docstring">
|
|
396
|
+
<div class="discussion">
|
|
397
|
+
|
|
398
|
+
<p>Load configuration a yaml encoded configuration file</p>
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
</div>
|
|
402
|
+
</div>
|
|
403
|
+
<div class="tags">
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
</div><table class="source_code">
|
|
407
|
+
<tr>
|
|
408
|
+
<td>
|
|
409
|
+
<pre class="lines">
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
65
|
|
413
|
+
66
|
|
414
|
+
67
|
|
415
|
+
68
|
|
416
|
+
69
|
|
417
|
+
70
|
|
418
|
+
71
|
|
419
|
+
72
|
|
420
|
+
73
|
|
421
|
+
74
|
|
422
|
+
75
|
|
423
|
+
76
|
|
424
|
+
77</pre>
|
|
425
|
+
</td>
|
|
426
|
+
<td>
|
|
427
|
+
<pre class="code"><span class="info file"># File 'lib/longleaf/services/metadata_deserializer.rb', line 65</span>
|
|
428
|
+
|
|
429
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_from_yaml'>from_yaml</span><span class='lparen'>(</span><span class='id identifier rubyid_file_path'>file_path</span><span class='comma'>,</span> <span class='id identifier rubyid_digest_algs'>digest_algs</span><span class='rparen'>)</span>
|
|
430
|
+
<span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_file_path'>file_path</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>r:bom|utf-8</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span>
|
|
431
|
+
<span class='id identifier rubyid_contents'>contents</span> <span class='op'>=</span> <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span>
|
|
432
|
+
|
|
433
|
+
<span class='id identifier rubyid_verify_digests'>verify_digests</span><span class='lparen'>(</span><span class='id identifier rubyid_file_path'>file_path</span><span class='comma'>,</span> <span class='id identifier rubyid_contents'>contents</span><span class='comma'>,</span> <span class='id identifier rubyid_digest_algs'>digest_algs</span><span class='rparen'>)</span>
|
|
434
|
+
|
|
435
|
+
<span class='kw'>begin</span>
|
|
436
|
+
<span class='const'>YAML</span><span class='period'>.</span><span class='id identifier rubyid_safe_load'>safe_load</span><span class='lparen'>(</span><span class='id identifier rubyid_contents'>contents</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
|
437
|
+
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_err'>err</span>
|
|
438
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../Longleaf.html" title="Longleaf (module)">Longleaf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="MetadataError.html" title="Longleaf::MetadataError (class)">MetadataError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Failed to parse metadata file </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_file_path'>file_path</span><span class='embexpr_end'>}</span><span class='tstring_content'>: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_err'>err</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
439
|
+
<span class='kw'>end</span>
|
|
440
|
+
<span class='kw'>end</span>
|
|
441
|
+
<span class='kw'>end</span></pre>
|
|
442
|
+
</td>
|
|
443
|
+
</tr>
|
|
444
|
+
</table>
|
|
445
|
+
</div>
|
|
446
|
+
|
|
447
|
+
<div class="method_details ">
|
|
448
|
+
<h3 class="signature " id="verify_digests-class_method">
|
|
449
|
+
|
|
450
|
+
.<strong>verify_digests</strong>(file_path, contents, digest_algs) ⇒ <tt>Object</tt>
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
</h3><table class="source_code">
|
|
457
|
+
<tr>
|
|
458
|
+
<td>
|
|
459
|
+
<pre class="lines">
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
79
|
|
463
|
+
80
|
|
464
|
+
81
|
|
465
|
+
82
|
|
466
|
+
83
|
|
467
|
+
84
|
|
468
|
+
85
|
|
469
|
+
86
|
|
470
|
+
87
|
|
471
|
+
88
|
|
472
|
+
89
|
|
473
|
+
90
|
|
474
|
+
91
|
|
475
|
+
92
|
|
476
|
+
93
|
|
477
|
+
94
|
|
478
|
+
95
|
|
479
|
+
96
|
|
480
|
+
97
|
|
481
|
+
98
|
|
482
|
+
99
|
|
483
|
+
100
|
|
484
|
+
101
|
|
485
|
+
102
|
|
486
|
+
103
|
|
487
|
+
104
|
|
488
|
+
105</pre>
|
|
489
|
+
</td>
|
|
490
|
+
<td>
|
|
491
|
+
<pre class="code"><span class="info file"># File 'lib/longleaf/services/metadata_deserializer.rb', line 79</span>
|
|
492
|
+
|
|
493
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_verify_digests'>verify_digests</span><span class='lparen'>(</span><span class='id identifier rubyid_file_path'>file_path</span><span class='comma'>,</span> <span class='id identifier rubyid_contents'>contents</span><span class='comma'>,</span> <span class='id identifier rubyid_digest_algs'>digest_algs</span><span class='rparen'>)</span>
|
|
494
|
+
<span class='kw'>return</span> <span class='kw'>if</span> <span class='id identifier rubyid_digest_algs'>digest_algs</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_digest_algs'>digest_algs</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
|
495
|
+
|
|
496
|
+
<span class='id identifier rubyid_digest_algs'>digest_algs</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_alg'>alg</span><span class='op'>|</span>
|
|
497
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_file_path'>file_path</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:path</span><span class='rparen'>)</span>
|
|
498
|
+
<span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='id identifier rubyid_file_path'>file_path</span><span class='period'>.</span><span class='id identifier rubyid_path'>path</span>
|
|
499
|
+
<span class='kw'>else</span>
|
|
500
|
+
<span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='id identifier rubyid_file_path'>file_path</span>
|
|
501
|
+
<span class='kw'>end</span>
|
|
502
|
+
<span class='id identifier rubyid_digest_path'>digest_path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_path'>path</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_alg'>alg</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
|
503
|
+
<span class='kw'>unless</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span><span class='id identifier rubyid_digest_path'>digest_path</span><span class='rparen'>)</span>
|
|
504
|
+
<span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_warn'>warn</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Missing expected </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_alg'>alg</span><span class='embexpr_end'>}</span><span class='tstring_content'> digest for </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_path'>path</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
505
|
+
<span class='kw'>next</span>
|
|
506
|
+
<span class='kw'>end</span>
|
|
507
|
+
|
|
508
|
+
<span class='id identifier rubyid_digest'>digest</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="DigestHelper.html" title="Longleaf::DigestHelper (class)">DigestHelper</a></span></span><span class='op'>::</span><span class='id identifier rubyid_start_digest'><span class='object_link'><a href="DigestHelper.html#start_digest-class_method" title="Longleaf::DigestHelper.start_digest (method)">start_digest</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_alg'>alg</span><span class='rparen'>)</span>
|
|
509
|
+
<span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_digest'>digest</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='id identifier rubyid_contents'>contents</span><span class='rparen'>)</span>
|
|
510
|
+
<span class='id identifier rubyid_existing_digest'>existing_digest</span> <span class='op'>=</span> <span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_digest_path'>digest_path</span><span class='rparen'>)</span>
|
|
511
|
+
|
|
512
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_result'>result</span> <span class='op'>==</span> <span class='id identifier rubyid_existing_digest'>existing_digest</span>
|
|
513
|
+
<span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Metadata fixity check using algorithm '</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_alg'>alg</span><span class='embexpr_end'>}</span><span class='tstring_content'>' succeeded for file </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_path'>path</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
514
|
+
<span class='kw'>else</span>
|
|
515
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="ChecksumMismatchError.html" title="Longleaf::ChecksumMismatchError (class)">ChecksumMismatchError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Metadata digest of type </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_alg'>alg</span><span class='embexpr_end'>}</span><span class='tstring_content'> did not match the contents of </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_path'>path</span><span class='embexpr_end'>}</span><span class='tstring_content'>:</span><span class='tstring_end'>"</span></span> \
|
|
516
|
+
<span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'> expected </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_existing_digest'>existing_digest</span><span class='embexpr_end'>}</span><span class='tstring_content'>, calculated </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_result'>result</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
517
|
+
<span class='kw'>end</span>
|
|
518
|
+
<span class='kw'>end</span>
|
|
519
|
+
<span class='kw'>end</span></pre>
|
|
520
|
+
</td>
|
|
521
|
+
</tr>
|
|
522
|
+
</table>
|
|
523
|
+
</div>
|
|
524
|
+
|
|
525
|
+
</div>
|
|
526
|
+
|
|
527
|
+
</div>
|
|
528
|
+
|
|
529
|
+
<div id="footer">
|
|
530
|
+
Generated on Tue May 28 15:48:02 2019 by
|
|
531
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
532
|
+
0.9.19 (ruby-2.6.3).
|
|
533
|
+
</div>
|
|
534
|
+
|
|
535
|
+
</div>
|
|
536
|
+
</body>
|
|
537
|
+
</html>
|