Module: Seamus

Defined in:
lib/seamus.rb,
lib/seamus/builder.rb,
lib/seamus/file/text.rb,
lib/seamus/file/audio.rb,
lib/seamus/file/image.rb,
lib/seamus/file/video.rb,
lib/seamus/file/application.rb,
lib/seamus/standard_additions.rb,
lib/seamus/inspector/text_inspector.rb,
lib/seamus/processor/text_processor.rb,
lib/seamus/inspector/audio_inspector.rb,
lib/seamus/inspector/image_inspector.rb,
lib/seamus/inspector/video_inspector.rb,
lib/seamus/processor/audio_processor.rb,
lib/seamus/processor/image_processor.rb,
lib/seamus/processor/video_processor.rb,
lib/seamus/inspector/application_inspector.rb,
lib/seamus/processor/application_processor.rb

Overview

Seamus - The File Inspector

Seamus inspects your file and discovers useful attributes. It is at its best with rich digital media - video, audio and image files - but is suitable for use with any file type. Just provide a path to Seamus::Builder.new for an enhanced File object that knows about your file.

movie = Seamus::Builder.new("/path/to/my/movie.mov")

movie.width
# => 720

movie.video_codec
# => 'h264'

Or if you prefer, include Seamus in a class and use the has_file :file_attribute class method for attachments.

class Upload
  include Seamus
  has_file :file
end

u = Upload.new
u.file = "/path/to/image.jpg"
u.file.width
# => 3284

Seamus supports thumbnail creation for visual media types. The #thumbnail method returns an IO instance.

u.file.thumbnail
# => #<IO:0x357898>

Defined Under Namespace

Modules: ApplicationInspector, ApplicationProcessor, AudioInspector, AudioProcessor, Builder, ClassMethods, File, ImageInspector, ImageProcessor, InstanceMethods, StandardAdditions, TextInspector, TextProcessor, VideoInspector, VideoProcessor

Class Method Summary collapse

Class Method Details

.included(receiver) ⇒ Object



88
89
90
91
# File 'lib/seamus.rb', line 88

def self.included(receiver)
  receiver.extend         ClassMethods
  receiver.send :include, InstanceMethods
end