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/thumbnail.rb

Defined Under Namespace

Classes: Binary, Image, PDF, SVG, Text, Thumbnail, Video

Class Method Summary collapse

Class Method Details

.create(file, width = 10000, height = 10000) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/mireru/widget.rb', line 12

def create(file, width=10000, height=10000)
  if image?(file)
    widget = Mireru::Widget::Image.create(file, width, height)
  elsif video?(file)
    widget = Mireru::Widget::Video.create(file)
  elsif pdf?(file)
    widget = Mireru::Widget::PDF.create(file)
  elsif svg?(file)
    widget = Mireru::Widget::SVG.create(file)
  elsif text?(file)
    widget = Mireru::Widget::Text.create(file)
  elsif file.is_a?(Enumerable)
    widget = Mireru::Widget::Thumbnail.create(file, width, height)
  else
    widget = Mireru::Widget::Binary.create(file)
  end
  widget
end

.image?(file) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/mireru/widget.rb', line 31

def image?(file)
  /\.(png|jpe?g|gif|ico|ani|bmp|pnm|ras|tga|tiff|xbm|xpm)\z/i =~ file
end

.pdf?(file) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/mireru/widget.rb', line 39

def pdf?(file)
  /\.pdf\z/i =~ file
end

.svg?(file) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/mireru/widget.rb', line 43

def svg?(file)
  /\.svg\z/i =~ file
end

.text?(file) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/mireru/widget.rb', line 47

def text?(file)
  File.read(file).valid_encoding?
end

.video?(file) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/mireru/widget.rb', line 35

def video?(file)
  /\.(ogm|mp4|flv|mpe?g2?|ts|mov|avi|divx|mkv|wmv|asf|wmx)\z/i =~ file
end