module Mireru::Widget
Public Instance Methods
binary?(file)
click to toggle source
# File lib/mireru/widget.rb, line 102 def binary?(file) if /\.(la|lo|o|so|a|dll|exe|msi|tar|gz|zip|7z|lzh|rar|iso)\z/i =~ file true else bytes = File.read(file, 512) return false if bytes.nil? return false if utf16?(bytes) bytes.count("\x00-\x07\x0b\x0e-\x1a\x1c-\x1f") > (bytes.size / 10) end end
check() { || ... }
click to toggle source
TODO: improve
# File lib/mireru/widget.rb, line 65 def check begin yield rescue LoadError $stderr.puts("Warning: #{$!.message}") end end
create(file, width, height, chupa=false)
click to toggle source
# File lib/mireru/widget.rb, line 24 def create(file, width, height, chupa=false) if chupa check do require "mireru/widget/extracted_text" return Widget::ExtractedText.new(file) end end if image?(file) return Widget::Image.new(file, width, height) end if video?(file) or music?(file) check do require "mireru/widget/video" return Widget::Video.new(file) end end if pdf?(file) check do require "mireru/widget/pdf" return Widget::PDF.new(file) end end if svg?(file) check do require "mireru/widget/svg" return Widget::SVG.new(file) end end if text?(file) return Widget::Text.new(file) end return Widget::Binary.new(file) end
document?(file)
click to toggle source
# File lib/mireru/widget.rb, line 93 def document?(file) /\.(odt|ods|odp|doc|xls|ppt|docx|xlsx|pptx)\z/i =~ file end
image?(file)
click to toggle source
# File lib/mireru/widget.rb, line 73 def image?(file) /\.(png|jpe?g|gif|ico|ani|bmp|pnm|ras|tga|tiff|xbm|xpm)\z/i =~ file end
music?(file)
click to toggle source
# File lib/mireru/widget.rb, line 77 def music?(file) /\.(og[ag]|wav|acc|mp3|m4a|wma|flac|tta|aiff|ape|tak)\z/i =~ file end
pdf?(file)
click to toggle source
# File lib/mireru/widget.rb, line 85 def pdf?(file) /\.pdf\z/i =~ file end
svg?(file)
click to toggle source
# File lib/mireru/widget.rb, line 89 def svg?(file) /\.svg\z/i =~ file end
text?(file)
click to toggle source
# File lib/mireru/widget.rb, line 97 def text?(file) return false if binary?(file) true end
utf16?(bytes)
click to toggle source
# File lib/mireru/widget.rb, line 113 def utf16?(bytes) # TODO: simplify (bytes.start_with?("\xff\xfe".force_encoding("ASCII-8BIT")) or bytes.start_with?("\xfe\xff".force_encoding("ASCII-8BIT"))) and bytes.count("\x01-\x07\x0b\x0e-\x1a\x1c-\x1f") < (bytes.size / 20) end
video?(file)
click to toggle source
# File lib/mireru/widget.rb, line 81 def video?(file) /\.(ogm|mp4|m4v|flv|mpe?g2?|ts|mov|avi|divx|mkv|wmv|asf|wmx)\z/i =~ file end