class Object
Ruby on Rails 3.0.20
Since v2.2.3Most objects are cloneable, but not all. For example you can’t dup nil:
nil.dup # => TypeError: can't dup NilClass
Classes may signal their instances are not duplicable removing dup/clone or raising exceptions from them. So, to dup an arbitrary object you normally use an optimistic approach and are ready to catch an exception, say:
arbitrary_object.dup rescue object
Rails dups objects in a few critical spots where they are not that arbitrary. That rescue is very expensive (like 40 times slower than a predicate), and it is often triggered.
That’s why we hardcode the following cases and check duplicable? instead of using that rescue idiom.
Inherits from
Includes
Constants
Methods (defined here)
- # acts_like?
- # app
- # blank?
- # controller
- # create
- # create_fixtures
- # destroy
- # duplicable?
- # edit
- # helper
- # html_safe?
- # index
- # instance_variable_names
- # new
- # new_session
- # presence
- # present?
- # reload!
- # returning
- # show
- # to_param
- # to_query
- # try
- # unescape
- # update
- # with_options
Used by
Subclasses (132)
- AbstractController::Base
- ActionController::Caching::Actions::ActionCachePath
- ActionController::Dispatcher
- ActionController::Middleware::ActionMiddleware
- ActionController::Responder
- ActionController::UrlRewriter
- ActionDispatch::BestStandardsSupport
- ActionDispatch::Callbacks
- ActionDispatch::Cookies
- ActionDispatch::Flash
- ActionDispatch::Head
- ActionDispatch::Http::ParameterFilter
- ActionDispatch::Http::UploadedFile
- ActionDispatch::Integration::Session
- ActionDispatch::MiddlewareStack::Middleware
- ActionDispatch::ParamsParser
- ActionDispatch::RemoteIp
- ActionDispatch::RemoteIp::RemoteIpGetter
- ActionDispatch::Rescue
- ActionDispatch::Routing::Mapper
- ActionDispatch::Routing::RouteSet
- ActionDispatch::Session::AbstractStore
- ActionDispatch::ShowExceptions
- ActionDispatch::Static
- ActionMailer::Collector
- ActionView::Base
- ActionView::Helpers::AtomFeedHelper::AtomBuilder
- ActionView::Helpers::FormBuilder
- ActionView::Helpers::InstanceTag
- ActionView::Helpers::PrototypeHelper::JavaScriptGenerator
- ActionView::LookupContext
- ActionView::Partials::PartialRenderer
- ActionView::Resolver
- ActionView::Template
- ActionView::Template::Handler
- ActiveModel::AttributeMethods::ClassMethods::AttributeMethodMatcher
- ActiveModel::Observer
- ActiveModel::Validator
- ActiveRecord::Base
- ActiveRecord::ConnectionAdapters::AbstractAdapter
- ActiveRecord::ConnectionAdapters::Column
- ActiveRecord::ConnectionAdapters::ConnectionHandler
- ActiveRecord::ConnectionAdapters::ConnectionManagement
- ActiveRecord::ConnectionAdapters::ConnectionPool
- ActiveRecord::ConnectionAdapters::SQLiteAdapter::Version
- ActiveRecord::ConnectionAdapters::Table
- ActiveRecord::ConnectionAdapters::TableDefinition
- ActiveRecord::DynamicFinderMatch
- ActiveRecord::DynamicScopeMatch
- ActiveRecord::Migration
- ActiveRecord::MigrationProxy
- ActiveRecord::PredicateBuilder
- ActiveRecord::QueryCache
- ActiveRecord::Reflection::MacroReflection
- ActiveRecord::Relation
- ActiveRecord::SessionStore::SqlBypass
- ActiveSupport::BacktraceCleaner
- ActiveSupport::BufferedLogger
- ActiveSupport::Cache::Entry
- ActiveSupport::Cache::Store
- ActiveSupport::Callbacks::Callback
- ActiveSupport::Dependencies::Reference
- ActiveSupport::FileUpdateChecker
- ActiveSupport::Inflector::Inflections
- ActiveSupport::JSON::Encoding::Encoder
- ActiveSupport::LogSubscriber
- ActiveSupport::LogSubscriber::TestHelper::MockLogger
- ActiveSupport::MessageEncryptor
- ActiveSupport::MessageVerifier
- ActiveSupport::Multibyte::Chars
- ActiveSupport::Multibyte::Unicode::Codepoint
- ActiveSupport::Multibyte::Unicode::UnicodeDatabase
- ActiveSupport::Notifications::Event
- ActiveSupport::Notifications::Fanout
- ActiveSupport::Notifications::Instrumenter
- ActiveSupport::Testing::Performance::Metrics::Base
- ActiveSupport::Testing::Performance::Performer
- ActiveSupport::Testing::ProxyTestResult
- ActiveSupport::TimeWithZone
- ActiveSupport::TimeZone
- ActiveSupport::XmlMini_LibXMLSAX::HashBuilder
- Array
- BigDecimal
- Class
- Commands::Info
- Commands::Install
- Commands::Plugin
- Commands::Remove
- Date
- DateTime
- ERB
- FalseClass
- File
- Fixnum
- Float
- Hash
- HTML::Sanitizer
- HTML::Selector
- I18n::ExceptionHandler
- Integer
- LoadError
- Logger
- Mail::Message
- Mime::Type
- MissingSourceFile
- Module
- NameError
- NilClass
- Numeric
- Plugin
- Rails::AppBuilder
- Rails::Application::Railties
- Rails::Console
- Rails::DBConsole
- RailsEnvironment
- Rails::Generators::ActiveModel
- Rails::Generators::GeneratedAttribute
- Rails::Initializable::Initializer
- Rails::Paths::Path
- Rails::Paths::Root
- Rails::Rack::Debugger
- Rails::Rack::LogTailer
- Rails::Railtie
- Rails::Railtie::Configuration
- Rails::Server::Options
- Range
- RecursiveHTTPFetcher
- SourceAnnotationExtractor
- String
- Test::Unit::Collector::ObjectSpace
- Time
- TrueClass