1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Introduce minimalistic package for ActiveSupport.

To simplify using of ActiveSupport in 3rd party libraries,
a simple way to require only minimum of commonly used extensions
(multibyte, inflections, array and hash extensions, #blank?, and a few
others) is needed. For exactly this reason some out-of-Rails-space
libraries adopted Extlib, originally from DataMapper.

To keep it 2067% backwards compatible, and still available
to everyone even in 2.x releases, active_support/minimalistic.rb
was added.

Use it like this:

gem 'active_support', '>=2.3'
require 'active_support/minimalistic'

instead of

require 'activesupport'

Right now this package with RubyGems uses about 10 megs of RAM
(10.01 or so). It can be further slimmed down though, once we simplify
multibyte implementation that right now uses advanced accessors
from Module extensions.

To compare RAM usage with previous ActiveSupport versions and Extlib,
at the time of writing, see http://gist.github.com/40401.
This commit is contained in:
Michael S. Klishin 2008-12-28 11:26:57 +03:00
parent 9fd35fc2d8
commit 133925804f
2 changed files with 20 additions and 1 deletions

View file

@ -55,7 +55,11 @@ module ActiveSupport #:nodoc:
unless '1.8.7 and later'.respond_to?(:chars)
def chars
ActiveSupport::Deprecation.warn('String#chars has been deprecated in favor of String#mb_chars.', caller)
# FIXME:
# ActiveSupport::Deprecation refers to RAILS_ENV
# and is a show stopper for 3rd party applications
# that only want ActiveSupport
ActiveSupport::Deprecation.warn('String#chars has been deprecated in favor of String#mb_chars.', caller) if defined?(ActiveSupport::Deprecation)
mb_chars
end
end

View file

@ -0,0 +1,15 @@
$LOAD_PATH.unshift File.dirname(__FILE__)
require "core_ext/blank"
# whole object.rb pulls up rare used introspection extensions
require "core_ext/object/metaclass"
require 'core_ext/array'
require 'core_ext/hash'
require 'core_ext/module/attribute_accessors'
require 'multibyte'
require 'core_ext/string/multibyte'
require 'core_ext/string/inflections'
class String
include ActiveSupport::CoreExtensions::String::Multibyte
end