123456789_123456789_123456789_123456789_123456789_

Module: Rails::Info

Relationships & Source Files
Defined in: railties/lib/rails/info.rb

Overview

This module helps build the runtime properties that are displayed in InfoController responses. These include the active Rails version, Ruby version, Rack version, and so on.

Class Attribute Summary

Class Method Summary

Instance Attribute Summary

Class Attribute Details

.properties (rw) Also known as: #properties

[ GitHub ]

  
# File 'railties/lib/rails/info.rb', line 10

mattr_accessor :properties, default: []

Class Method Details

.inspect

Alias for .to_s.

[ GitHub ]

  
# File 'railties/lib/rails/info.rb', line 41

alias inspect to_s

.property(name, value = nil)

[ GitHub ]

  
# File 'railties/lib/rails/info.rb', line 25

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

.to_html

[ GitHub ]

  
# File 'railties/lib/rails/info.rb', line 43

def to_html
  (+"<table>").tap do |table|
    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_s Also known as: .inspect

[ GitHub ]

  
# File 'railties/lib/rails/info.rb', line 31

def to_s
  column_width = properties.names.map(&: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

Instance Attribute Details

#properties (rw)

[ GitHub ]

  
# File 'railties/lib/rails/info.rb', line 10

mattr_accessor :properties, default: []