Sha256: ab18244a61e0dcb0843fe55bbedf4f0d365dba2ce460768b5683e419e3777a5a
Contents?: true
Size: 1.71 KB
Versions: 2
Compression:
Stored size: 1.71 KB
Contents
class MimeType @@all=[] def self.all @@all end def self.add(exts,mime_name) all<<new(exts,mime_name) end attr_reader :exts, :name def initialize(exts,mime_name) @exts,@name=exts,mime_name end end class String # Creates a "probably unique" id with the desired length, composed only of lowercase letters. def base26_hash(length=Picolena::HashLength) Digest::MD5.hexdigest(self).to_i(16).to_s(26).tr('0-9a-p', 'a-z')[-length,length] end end module Enumerable def each_with_thread(&block) tds=self.collect{|elem| Thread.new(elem) {|elem| block.call(elem) } } tds.each{|aThread| aThread.join} end end class Array def in_transposed_chunks(n) s=self.size i=n-s%n (self+[nil]*i).enum_slice(n).to_a.transpose.collect{|e| e.compact} end end class File def self.ext_as_sym(filename) File.extname(filename).sub(/^\./,'').downcase.to_sym rescue :no_extension end def self.mime(filename) ext=ext_as_sym(filename) m=MimeType.all.find{|m| m.exts.include?(ext)} m ? m.name : 'application/octet-stream' end def self.encoding(source) parse_for_charset="grep -io charset=[a-z0-9\\-]* | sed 's/charset=//i'" if File.extname(source)[0,4]==".htm" then enc=%x{head -n20 \"#{source}\" | #{parse_for_charset}}.chomp else enc=%x{file -i \"#{source}\" | #{parse_for_charset}}.chomp end #iso-8859-15 should be used instead of iso-8859-1, for € char case enc when "iso-8859-1" "iso-8859-15" when "unknown" "" else enc end end def self.read_and_remove(filename) content=read(filename) FileUtils.rm filename, :force=>true content end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
picolena-0.1.2 | lib/picolena/templates/lib/core_exts.rb |
picolena-0.1.3 | lib/picolena/templates/lib/core_exts.rb |