Module: Mireru::Widget
- Defined in:
- lib/mireru/widget.rb,
lib/mireru/widget/pdf.rb,
lib/mireru/widget/svg.rb,
lib/mireru/widget/text.rb,
lib/mireru/widget/image.rb,
lib/mireru/widget/video.rb,
lib/mireru/widget/binary.rb,
lib/mireru/widget/extracted_text.rb
Defined Under Namespace
Classes: Binary, ExtractedText, Image, PDF, SVG, Text, Video
Class Method Summary
collapse
Class Method Details
.binary?(file) ⇒ Boolean
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/mireru/widget.rb', line 76
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
|
.create(file, width, height, chupa = false) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/mireru/widget.rb', line 28
def create(file, width, height, chupa=false)
if chupa
widget = Widget::ExtractedText.new(file)
elsif image?(file)
widget = Widget::Image.new(file, width, height)
elsif video?(file) or music?(file)
widget = Widget::Video.new(file)
elsif pdf?(file)
widget = Widget::PDF.new(file)
elsif svg?(file)
widget = Widget::SVG.new(file)
elsif text?(file)
widget = Widget::Text.new(file)
else
widget = Widget::Binary.new(file)
end
widget
end
|
.document?(file) ⇒ Boolean
67
68
69
|
# File 'lib/mireru/widget.rb', line 67
def document?(file)
/\.(odt|ods|odp|doc|xls|ppt|docx|xlsx|pptx)\z/i =~ file
end
|
.image?(file) ⇒ Boolean
47
48
49
|
# File 'lib/mireru/widget.rb', line 47
def image?(file)
/\.(png|jpe?g|gif|ico|ani|bmp|pnm|ras|tga|tiff|xbm|xpm)\z/i =~ file
end
|
.music?(file) ⇒ Boolean
51
52
53
|
# File 'lib/mireru/widget.rb', line 51
def music?(file)
/\.(og[ag]|wav|acc|mp3|m4a|wma|flac|tta|aiff|ape|tak)\z/i =~ file
end
|
.pdf?(file) ⇒ Boolean
59
60
61
|
# File 'lib/mireru/widget.rb', line 59
def pdf?(file)
/\.pdf\z/i =~ file
end
|
.svg?(file) ⇒ Boolean
63
64
65
|
# File 'lib/mireru/widget.rb', line 63
def svg?(file)
/\.svg\z/i =~ file
end
|
.text?(file) ⇒ Boolean
71
72
73
74
|
# File 'lib/mireru/widget.rb', line 71
def text?(file)
return false if binary?(file)
true
end
|
.utf16?(bytes) ⇒ Boolean
87
88
89
90
91
92
|
# File 'lib/mireru/widget.rb', line 87
def utf16?(bytes)
(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) ⇒ Boolean
55
56
57
|
# File 'lib/mireru/widget.rb', line 55
def video?(file)
/\.(ogm|mp4|m4v|flv|mpe?g2?|ts|mov|avi|divx|mkv|wmv|asf|wmx)\z/i =~ file
end
|