Sha256: fe479a6e1cc850c8168027258c0a6ce8689dbccb3c808b1b9e54aa1fd4e91d38
Contents?: true
Size: 1.41 KB
Versions: 2
Compression:
Stored size: 1.41 KB
Contents
class Servel::PathnameDecorator < SimpleDelegator def initialize(pathname, parent) super(pathname) @parent = parent end def decorate self end def image? file? && extname && %w(.jpg .jpeg .png .gif).include?(extname.downcase) end def video? file? && extname && %w(.webm).include?(extname.downcase) end def audio? file? && extname && %w(.mp3 .m4a .wav).include?(extname.downcase) end def media? image? || video? || audio? end def type if directory? "Dir" elsif file? extname.sub(/^\./, "") else "" end end def media_type return "video" if video? return "image" if image? return "audio" if audio? "unknown" end def listing_classes klasses = [] klasses << "media" if media? klasses << "image" if image? klasses << "video" if video? klasses << "audio" if audio? klasses.join(" ") end def listing_attrs { class: listing_classes, data: { type: media_type } } end def parent? @parent end def icon if @parent "🔝" elsif directory? "📁" else "" end end def href if @parent "../" else basename end end def name if @parent "(Parent Directory)" else basename end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
servel-0.4.0 | lib/servel/pathname_decorator.rb |
servel-0.3.0 | lib/servel/pathname_decorator.rb |