diff options
author | Nicholas Seckar <nseckar@gmail.com> | 2006-03-19 18:45:26 +0000 |
---|---|---|
committer | Nicholas Seckar <nseckar@gmail.com> | 2006-03-19 18:45:26 +0000 |
commit | 5ff59bff822055793412c93d345c42c371eb4824 (patch) | |
tree | 8a5bf13a769170a15e4fccc56824fdfcbe098955 /railties/lib | |
parent | b42195cdb7c150626af1fe9cb720be14df5638ac (diff) | |
download | rails-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.rb | 10 | ||||
-rw-r--r-- | railties/lib/rails_info.rb | 122 |
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 |