aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorNicholas Seckar <nseckar@gmail.com>2006-03-19 18:45:26 +0000
committerNicholas Seckar <nseckar@gmail.com>2006-03-19 18:45:26 +0000
commit5ff59bff822055793412c93d345c42c371eb4824 (patch)
tree8a5bf13a769170a15e4fccc56824fdfcbe098955 /railties/lib
parentb42195cdb7c150626af1fe9cb720be14df5638ac (diff)
downloadrails-5ff59bff822055793412c93d345c42c371eb4824.tar.gz
rails-5ff59bff822055793412c93d345c42c371eb4824.tar.bz2
rails-5ff59bff822055793412c93d345c42c371eb4824.zip
Remove explicit loading of RailsInfo and RailsInfoController.
Move RailsInfo and RailsInfoController to Rails::Info and Rails::InfoController. Extend load path with Railties' builtin directory to make adding support code easy. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3981 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/initializer.rb10
-rw-r--r--railties/lib/rails_info.rb122
2 files changed, 5 insertions, 127 deletions
diff --git a/railties/lib/initializer.rb b/railties/lib/initializer.rb
index 6a2e765dbf..132c70cd21 100644
--- a/railties/lib/initializer.rb
+++ b/railties/lib/initializer.rb
@@ -96,7 +96,7 @@ module Rails
# the individual base class configurations.
load_environment
- load_framework_info
+ add_support_load_paths
load_plugins
@@ -129,10 +129,10 @@ module Rails
configuration.frameworks.each { |framework| require(framework.to_s) }
end
- # Loads Rails::VERSION and Rails::Info.
- # TODO: Make this work via dependencies.rb/const_missing instead.
- def load_framework_info
- require 'rails_info'
+ # Add the load paths used by support functions such as the info controller
+ def add_support_load_paths
+ builtins = File.join(File.dirname(File.dirname(__FILE__)), 'builtin', '*')
+ $LOAD_PATH.concat(Dir[builtins])
end
# Loads all plugins in <tt>config.plugin_paths</tt>. <tt>plugin_paths</tt>
diff --git a/railties/lib/rails_info.rb b/railties/lib/rails_info.rb
deleted file mode 100644
index 86c3fec841..0000000000
--- a/railties/lib/rails_info.rb
+++ /dev/null
@@ -1,122 +0,0 @@
-require 'rails_version'
-require File.join(File.dirname(File.dirname(__FILE__)), 'builtin/controllers/rails_info_controller')
-
-module Rails
- module Info
- mattr_accessor :properties
- class << (@@properties = [])
- def names
- map {|(name, )| name}
- end
-
- def value_for(property_name)
- find {|(name, )| name == property_name}.last rescue nil
- end
- end
-
- class << self #:nodoc:
- def property(name, value = nil)
- value ||= yield
- properties << [name, value] if value
- rescue Exception
- end
-
- def components
- %w( active_record action_pack action_web_service action_mailer active_support )
- end
-
- def component_version(component)
- require "#{component}/version"
- "#{component.classify}::VERSION::STRING".constantize
- end
-
- def edge_rails_revision(info = svn_info)
- info[/^Revision: (\d+)/, 1] || freeze_edge_version
- end
-
- def freeze_edge_version
- if File.exists?(rails_vendor_root)
- Dir[File.join(rails_vendor_root, 'REVISION_*')].first.scan(/_(\d+)$/).first.first rescue 'unknown'
- end
- end
-
- def to_s
- column_width = properties.names.map {|name| name.length}.max
- ["About your application's environment", *properties.map do |property|
- "%-#{column_width}s %s" % property
- end] * "\n"
- end
-
- alias inspect to_s
-
- def to_html
- returning table = '<table>' do
- properties.each do |(name, value)|
- table << %(<tr><td class="name">#{CGI.escapeHTML(name)}</td>)
- table << %(<td class="value">#{CGI.escapeHTML(value)}</td></tr>)
- end
- table << '</table>'
- end
- end
-
- protected
- def rails_vendor_root
- @rails_vendor_root ||= "#{RAILS_ROOT}/vendor/rails"
- end
-
- def svn_info
- env_lang, ENV['LC_ALL'] = ENV['LC_ALL'], 'C'
- Dir.chdir(rails_vendor_root) do
- silence_stderr { `svn info` }
- end
- ensure
- ENV['LC_ALL'] = env_lang
- end
- end
-
- # The Ruby version and platform, e.g. "1.8.2 (powerpc-darwin8.2.0)".
- property 'Ruby version', "#{RUBY_VERSION} (#{RUBY_PLATFORM})"
-
- # The RubyGems version, if it's installed.
- property 'RubyGems version' do
- Gem::RubyGemsVersion
- end
-
- # The Rails version.
- property 'Rails version' do
- Rails::VERSION::STRING
- end
-
- # Versions of each Rails component (Active Record, Action Pack,
- # Action Web Service, Action Mailer, and Active Support).
- components.each do |component|
- property "#{component.titlecase} version" do
- component_version(component)
- end
- end
-
- # The Rails SVN revision, if it's checked out into vendor/rails.
- property 'Edge Rails revision' do
- edge_rails_revision
- end
-
- # The application's location on the filesystem.
- property 'Application root' do
- File.expand_path(RAILS_ROOT)
- end
-
- # The current Rails environment (development, test, or production).
- property 'Environment' do
- RAILS_ENV
- end
-
- # The name of the database adapter for the current environment.
- property 'Database adapter' do
- ActiveRecord::Base.configurations[RAILS_ENV]['adapter']
- end
-
- property 'Database schema version' do
- ActiveRecord::Migrator.current_version rescue nil
- end
- end
-end