mirror of
https://github.com/hkalexling/Mango.git
synced 2025-08-03 03:15:31 -04:00
DRY when listing archive entries
This commit is contained in:
parent
5d7b8a1ef9
commit
67ef1f7112
@ -79,11 +79,9 @@ class Entry
|
|||||||
url
|
url
|
||||||
end
|
end
|
||||||
|
|
||||||
def read_page(page_num)
|
private def sorted_archive_entries
|
||||||
raise "Unreadble archive. #{@err_msg}" if @err_msg
|
|
||||||
img = nil
|
|
||||||
ArchiveFile.open @zip_path do |file|
|
ArchiveFile.open @zip_path do |file|
|
||||||
page = file.entries
|
entries = file.entries
|
||||||
.select { |e|
|
.select { |e|
|
||||||
SUPPORTED_IMG_TYPES.includes? \
|
SUPPORTED_IMG_TYPES.includes? \
|
||||||
MIME.from_filename? e.filename
|
MIME.from_filename? e.filename
|
||||||
@ -91,7 +89,15 @@ class Entry
|
|||||||
.sort { |a, b|
|
.sort { |a, b|
|
||||||
compare_numerically a.filename, b.filename
|
compare_numerically a.filename, b.filename
|
||||||
}
|
}
|
||||||
.[page_num - 1]
|
yield file, entries
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def read_page(page_num)
|
||||||
|
raise "Unreadble archive. #{@err_msg}" if @err_msg
|
||||||
|
img = nil
|
||||||
|
sorted_archive_entries do |file, entries|
|
||||||
|
page = entries[page_num - 1]
|
||||||
data = file.read_entry page
|
data = file.read_entry page
|
||||||
if data
|
if data
|
||||||
img = Image.new data, MIME.from_filename(page.filename), page.filename,
|
img = Image.new data, MIME.from_filename(page.filename), page.filename,
|
||||||
@ -103,16 +109,8 @@ class Entry
|
|||||||
|
|
||||||
def page_dimensions
|
def page_dimensions
|
||||||
sizes = [] of Hash(String, Int32)
|
sizes = [] of Hash(String, Int32)
|
||||||
ArchiveFile.open @zip_path do |file|
|
sorted_archive_entries do |file, entries|
|
||||||
file.entries
|
entries.each_with_index do |e, i|
|
||||||
.select { |e|
|
|
||||||
SUPPORTED_IMG_TYPES.includes? \
|
|
||||||
MIME.from_filename? e.filename
|
|
||||||
}
|
|
||||||
.sort { |a, b|
|
|
||||||
compare_numerically a.filename, b.filename
|
|
||||||
}
|
|
||||||
.each_with_index do |e, i|
|
|
||||||
begin
|
begin
|
||||||
data = file.read_entry(e).not_nil!
|
data = file.read_entry(e).not_nil!
|
||||||
size = ImageSize.get data
|
size = ImageSize.get data
|
||||||
|
Loading…
x
Reference in New Issue
Block a user