Class: Blobsterix::Storage::FileSystemMetaData
Instance Method Summary
collapse
Methods included from Logable
#logger, #logger=
#read, #response, #valid?
Constructor Details
Returns a new instance of FileSystemMetaData.
6
7
8
9
10
11
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 6
def initialize(path_, payload={})
@payload=payload
@path = path_
@last_modified = ""
load_meta_file
end
|
Instance Method Details
#accept_type ⇒ Object
65
66
67
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 65
def accept_type
@accept_type ||= AcceptType.new(get_mime().to_s)
end
|
#as_json ⇒ Object
102
103
104
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 102
def as_json
{'mimetype' => mimetype, 'mediatype' => mediatype, 'etag' => etag, 'size' => size,'payload' => @payload.to_json}
end
|
#check(key) ⇒ Object
17
18
19
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 17
def check(key)
@key === key
end
|
#data ⇒ Object
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 38
def data
File.exists?(path) ? File.read(path) : ""
end
|
#delete ⇒ Object
93
94
95
96
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 93
def delete
File.delete(meta_path) if File.exists?(meta_path)
File.delete(path) if valid
end
|
#etag ⇒ Object
21
22
23
24
25
26
27
28
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 21
def etag
if @last_modified === last_modified
@etag ||= Digest::MD5.hexdigest(data)
else
@last_modified = last_modified
@etag = Digest::MD5.hexdigest(data)
end
end
|
69
70
71
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 69
def ()
{"Etag" => etag, "Content-Type" => mimetype, "Last-Modified" => last_modified.strftime("%Y-%m-%dT%H:%M:%S.000Z"), "Cache-Control" => "max-age=#{60*60*24}", "Expires" => (Time.new+(60*60*24)).strftime("%Y-%m-%dT%H:%M:%S.000Z")}
end
|
#last_accessed ⇒ Object
61
62
63
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 61
def last_accessed
File.atime(path)
end
|
#last_modified ⇒ Object
57
58
59
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 57
def last_modified
File.ctime(path)
end
|
34
35
36
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 34
def mediatype
(@mediatype ||= get_mime.mediatype)
end
|
#mimetype ⇒ Object
30
31
32
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 30
def mimetype
(@mimetype ||= get_mime.type)
end
|
#path ⇒ Object
49
50
51
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 49
def path
@path
end
|
#payload ⇒ Object
77
78
79
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 77
def payload
@payload
end
|
#size ⇒ Object
53
54
55
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 53
def size
@size ||= File.exists?(path) ? File.size(path) : 0
end
|
#to_json ⇒ Object
98
99
100
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 98
def to_json
as_json.to_json
end
|
#to_s ⇒ Object
13
14
15
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 13
def to_s
@path
end
|
#valid ⇒ Object
73
74
75
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 73
def valid
File.exists?(path)
end
|
#write ⇒ Object
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/blobsterix/storage/file_system_meta_data.rb', line 81
def write
if block_given?
FileUtils.mkdir_p(File.dirname(path))
delete
f = File.open(path, "wb")
yield f
f.close
end
save_meta_file
self
end
|