Class: MDQT::Client::MetadataFile
- Inherits:
-
Object
- Object
- MDQT::Client::MetadataFile
- Defined in:
- lib/mdqt/client/metadata_file.rb
Instance Method Summary collapse
- #canonical_filename ⇒ Object
- #data ⇒ Object
- #etag ⇒ Object
- #expires ⇒ Object
- #filename ⇒ Object
- #identifier ⇒ Object
-
#initialize(filename, options = {}) ⇒ MetadataFile
constructor
A new instance of MetadataFile.
- #last_modified ⇒ Object
- #ok? ⇒ Boolean
- #readable? ⇒ Boolean
- #signed? ⇒ Boolean
- #type ⇒ Object
- #valid? ⇒ Boolean
- #validation_error ⇒ Object
- #verified_signature?(certs = [], _ = {}) ⇒ Boolean
Constructor Details
#initialize(filename, options = {}) ⇒ MetadataFile
Returns a new instance of MetadataFile.
8 9 10 11 12 13 14 15 16 |
# File 'lib/mdqt/client/metadata_file.rb', line 8 def initialize(filename, = {}) @filename = filename @identifier = nil @data = nil @expires = nil @etag = nil @last_modified = nil @explanation = {} end |
Instance Method Details
#canonical_filename ⇒ Object
73 74 75 76 77 78 79 80 81 |
# File 'lib/mdqt/client/metadata_file.rb', line 73 def canonical_filename if identifier.empty? @filename = "aggregate-#{Digest::SHA1.hexdigest(@service)}.xml" else @filename ||= identifier.start_with?("{sha1}") ? "#{@identifier.gsub("{sha1}","")}.xml" : "#{Digest::SHA1.hexdigest(@identifier)}.xml" end end |
#data ⇒ Object
26 27 28 |
# File 'lib/mdqt/client/metadata_file.rb', line 26 def data @data ||= File.read(filename) end |
#etag ⇒ Object
42 43 44 |
# File 'lib/mdqt/client/metadata_file.rb', line 42 def etag @etag end |
#expires ⇒ Object
38 39 40 |
# File 'lib/mdqt/client/metadata_file.rb', line 38 def expires @expires end |
#filename ⇒ Object
18 19 20 |
# File 'lib/mdqt/client/metadata_file.rb', line 18 def filename @filename end |
#identifier ⇒ Object
22 23 24 |
# File 'lib/mdqt/client/metadata_file.rb', line 22 def identifier @identifier end |
#last_modified ⇒ Object
46 47 48 |
# File 'lib/mdqt/client/metadata_file.rb', line 46 def last_modified @last_modified end |
#ok? ⇒ Boolean
50 51 52 |
# File 'lib/mdqt/client/metadata_file.rb', line 50 def ok? @ok end |
#readable? ⇒ Boolean
30 31 32 |
# File 'lib/mdqt/client/metadata_file.rb', line 30 def readable? File.readable?(filename) end |
#signed? ⇒ Boolean
54 55 56 |
# File 'lib/mdqt/client/metadata_file.rb', line 54 def signed? @data.include? "Signature" # This is... not great end |
#type ⇒ Object
34 35 36 |
# File 'lib/mdqt/client/metadata_file.rb', line 34 def type @type end |
#valid? ⇒ Boolean
63 64 65 66 |
# File 'lib/mdqt/client/metadata_file.rb', line 63 def valid? validator = MetadataValidator.new validator.valid?(self) end |
#validation_error ⇒ Object
68 69 70 71 |
# File 'lib/mdqt/client/metadata_file.rb', line 68 def validation_error validator = MetadataValidator.new validator.validation_error(self) end |
#verified_signature?(certs = [], _ = {}) ⇒ Boolean
58 59 60 61 |
# File 'lib/mdqt/client/metadata_file.rb', line 58 def verified_signature?(certs = [], _ = {}) validator = MetadataValidator.new(certs: [certs].flatten) validator.verified_signature?(self) end |