Module: Rails::Info

Defined in:
lib/rails/info.rb

Class Method Summary collapse

Class Method Details

.framework_version(framework) ⇒ Object



30
31
32
33
34
35
# File 'lib/rails/info.rb', line 30

def framework_version(framework)
  if Object.const_defined?(framework.classify)
    require "#{framework}/version"
    "#{framework.classify}::VERSION::STRING".constantize
  end
end

.frameworksObject



26
27
28
# File 'lib/rails/info.rb', line 26

def frameworks
  %w( active_record action_pack active_resource action_mailer active_support )
end

.property(name, value = nil) ⇒ Object



20
21
22
23
24
# File 'lib/rails/info.rb', line 20

def property(name, value = nil)
  value ||= yield
  properties << [name, value] if value
rescue Exception
end

.to_htmlObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/rails/info.rb', line 49

def to_html
  (table = '<table>').tap do
    properties.each do |(name, value)|
      table << %(<tr><td class="name">#{CGI.escapeHTML(name.to_s)}</td>)
      formatted_value = if value.kind_of?(Array)
            "<ul>" + value.map { |v| "<li>#{CGI.escapeHTML(v.to_s)}</li>" }.join + "</ul>"
          else
            CGI.escapeHTML(value.to_s)
          end
      table << %(<td class="value">#{formatted_value}</td></tr>)
    end
    table << '</table>'
  end
end

.to_sObject Also known as: inspect



37
38
39
40
41
42
43
44
45
# File 'lib/rails/info.rb', line 37

def to_s
  column_width = properties.names.map {|name| name.length}.max
  info = properties.map do |name, value|
    value = value.join(", ") if value.is_a?(Array)
    "%-#{column_width}s   %s" % [name, value]
  end
  info.unshift "About your application's environment"
  info * "\n"
end