Module: Tight::Engine::Utils

Defined in:
lib/tight-engine/utils.rb

Instance Method Summary collapse

Instance Method Details

#icon_for(filename) ⇒ Object



51
52
53
54
55
56
57
58
59
# 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) ⇒ Object



41
42
43
# 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) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 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 = {}) ⇒ Object



45
46
47
48
49
# 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) ⇒ Object



30
31
32
33
34
35
36
37
38
39
# 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