module Tight::Engine::Utils

Public Instance Methods

icon_for(filename) click to toggle source
# File lib/tight-engine/utils.rb, line 51
def icon_for(filename)
  iconfile = 'images/extname/16/file_extension_'+File.extname(filename)[1..-1]+'.png'
  iconpath = Padrino.root('public', iconfile)
  if File.file?(iconpath)
    image_tag '/'+iconfile
  else
    image_tag '/images/extname/16/file_extension_bin.png'
  end
end
mk_datetime(date, time) click to toggle source
# File lib/tight-engine/utils.rb, line 41
def mk_datetime(date, time)
  DateTime.new date.year, date.month, date.day, time.hour, time.min, time.sec
end
report_error( error, subsystem = 'system', fallback = nil ) click to toggle source
# File lib/tight-engine/utils.rb, line 7
def report_error( error, subsystem = 'system', fallback = nil )
  @_out_buf ||= ''.html_safe # !!! FIXME this might be fixed at tilt 1.3.8+
  if Padrino.env == :production
    messages = ''
    [ "Swift caught a runtime error at #{subsystem}",
      "Fallback for development was #{fallback||'empty'}, production displayed empty string.",
      error.message,
    ].each do |message|
      logger.error message
      messages << message + "\r\n"
    end
    error.backtrace.reject{ |e| e.match /phusion_passenger/ }.each do |step|
      logger << step
      messages << step + "\r\n"
    end
    swift.error_messages ||= []
    swift.error_messages << messages
    ''
  else
    fallback || raise
  end
end
show_asset(asset, options={}) click to toggle source
# File lib/tight-engine/utils.rb, line 45
def show_asset(asset, options={})
  @file = asset
  @opts = options
  element_view 'File/view'
end
url_replace( target, *args ) click to toggle source
# File lib/tight-engine/utils.rb, line 30
def url_replace( target, *args )
  uri = URI.parse(URI::DEFAULT_PARSER.escape target)
  uri.path = CGI.escape(args.first)  if args.first.kind_of?(String)
  if args.last.kind_of?(Hash)
    query = uri.query ? CGI.parse(uri.query) : {}
    args.last.each{ |k,v| v ? query[k.to_s] = v.to_s : query.delete(k.to_s) }
    uri.query = query.any? && URI.encode_www_form(query)
  end
  CGI.unescape(uri.to_s)
end