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:
parent
9fd35fc2d8
commit
133925804f
2 changed files with 20 additions and 1 deletions
|
@ -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
|
||||
|
|
15
activesupport/lib/active_support/minimalistic.rb
Normal file
15
activesupport/lib/active_support/minimalistic.rb
Normal 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
|
Loading…
Reference in a new issue