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: []