# typed: false # DO NOT EDIT MANUALLY # This is an autogenerated file for types exported from the `activesupport` gem. # Please instead update this file by running `bin/tapioca gem activesupport`. # :include: activesupport/README.rdoc # # source://activesupport//lib/active_support/core_ext/object/try.rb#5 module ActiveSupport extend ::ActiveSupport::LazyLoadHooks extend ::ActiveSupport::Autoload # source://activesupport//lib/active_support/json/decoding.rb#9 def parse_json_times; end # source://activesupport//lib/active_support/json/decoding.rb#9 def parse_json_times=(val); end # source://activesupport//lib/active_support.rb#98 def test_order; end # source://activesupport//lib/active_support.rb#98 def test_order=(val); end # source://activesupport//lib/active_support.rb#99 def test_parallelization_threshold; end # source://activesupport//lib/active_support.rb#99 def test_parallelization_threshold=(val); end class << self # source://activesupport//lib/active_support.rb#104 def cache_format_version; end # source://activesupport//lib/active_support.rb#108 def cache_format_version=(value); end # source://activesupport//lib/active_support/deprecator.rb#4 def deprecator; end # source://activesupport//lib/active_support.rb#92 def eager_load!; end # source://activesupport//lib/active_support.rb#102 def error_reporter; end # source://activesupport//lib/active_support.rb#102 def error_reporter=(_arg0); end # source://activesupport//lib/active_support/json/encoding.rb#8 def escape_html_entities_in_json(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/json/encoding.rb#8 def escape_html_entities_in_json=(arg); end # Returns the currently loaded version of Active Support as a +Gem::Version+. # # source://activesupport//lib/active_support/gem_version.rb#5 def gem_version; end # source://activesupport//lib/active_support/json/encoding.rb#8 def json_encoder(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/json/encoding.rb#8 def json_encoder=(arg); end # source://activesupport//lib/active_support/json/decoding.rb#9 def parse_json_times; end # source://activesupport//lib/active_support/json/decoding.rb#9 def parse_json_times=(val); end # source://activesupport//lib/active_support.rb#98 def test_order; end # source://activesupport//lib/active_support.rb#98 def test_order=(val); end # source://activesupport//lib/active_support.rb#99 def test_parallelization_threshold; end # source://activesupport//lib/active_support.rb#99 def test_parallelization_threshold=(val); end # source://activesupport//lib/active_support/json/encoding.rb#8 def time_precision(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/json/encoding.rb#8 def time_precision=(arg); end # source://activesupport//lib/active_support.rb#112 def to_time_preserves_timezone; end # source://activesupport//lib/active_support.rb#116 def to_time_preserves_timezone=(value); end # source://activesupport//lib/active_support/json/encoding.rb#8 def use_standard_json_time_format(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/json/encoding.rb#8 def use_standard_json_time_format=(arg); end # source://activesupport//lib/active_support.rb#126 def utc_to_local_returns_utc_offset_times; end # source://activesupport//lib/active_support.rb#130 def utc_to_local_returns_utc_offset_times=(value); end # Returns the currently loaded version of Active Support as a +Gem::Version+. # # source://activesupport//lib/active_support/version.rb#7 def version; end end end # = Actionable Errors # # Actionable errors lets you define actions to resolve an error. # # To make an error actionable, include the +ActiveSupport::ActionableError+ # module and invoke the +action+ class macro to define the action. An action # needs a name and a block to execute. # # source://activesupport//lib/active_support/actionable_error.rb#11 module ActiveSupport::ActionableError extend ::ActiveSupport::Concern include GeneratedInstanceMethods mixes_in_class_methods GeneratedClassMethods mixes_in_class_methods ::ActiveSupport::ActionableError::ClassMethods class << self # source://activesupport//lib/active_support/actionable_error.rb#20 def actions(error); end # source://activesupport//lib/active_support/actionable_error.rb#29 def dispatch(error, name); end end module GeneratedClassMethods def _actions; end def _actions=(value); end def _actions?; end end module GeneratedInstanceMethods def _actions; end def _actions=(value); end def _actions?; end end end # source://activesupport//lib/active_support/actionable_error.rb#35 module ActiveSupport::ActionableError::ClassMethods # Defines an action that can resolve the error. # # class PendingMigrationError < MigrationError # include ActiveSupport::ActionableError # # action "Run pending migrations" do # ActiveRecord::Tasks::DatabaseTasks.migrate # end # end # # source://activesupport//lib/active_support/actionable_error.rb#45 def action(name, &block); end end # source://activesupport//lib/active_support/actionable_error.rb#14 class ActiveSupport::ActionableError::NonActionable < ::StandardError; end # = \Array Inquirer # # Wrapping an array in an +ArrayInquirer+ gives a friendlier way to check # its string-like contents: # # variants = ActiveSupport::ArrayInquirer.new([:phone, :tablet]) # # variants.phone? # => true # variants.tablet? # => true # variants.desktop? # => false # # source://activesupport//lib/active_support/array_inquirer.rb#26 class ActiveSupport::ArrayInquirer < ::Array # Passes each element of +candidates+ collection to ArrayInquirer collection. # The method returns true if any element from the ArrayInquirer collection # is equal to the stringified or symbolized form of any element in the +candidates+ collection. # # If +candidates+ collection is not given, method returns true. # # variants = ActiveSupport::ArrayInquirer.new([:phone, :tablet]) # # variants.any? # => true # variants.any?(:phone, :tablet) # => true # variants.any?('phone', 'desktop') # => true # variants.any?(:desktop, :watch) # => false # # @return [Boolean] # # source://activesupport//lib/active_support/array_inquirer.rb#27 def any?(*candidates); end private # source://activesupport//lib/active_support/array_inquirer.rb#42 def method_missing(name, *args); end # @return [Boolean] # # source://activesupport//lib/active_support/array_inquirer.rb#38 def respond_to_missing?(name, include_private = T.unsafe(nil)); end end # = Active Support \Autoload # # Autoload and eager load conveniences for your library. # # This module allows you to define autoloads based on # \Rails conventions (i.e. no need to define the path # it is automatically guessed based on the filename) # and also define a set of constants that needs to be # eager loaded: # # module MyLib # extend ActiveSupport::Autoload # # autoload :Model # # eager_autoload do # autoload :Cache # end # end # # Then your library can be eager loaded by simply calling: # # MyLib.eager_load! # # source://activesupport//lib/active_support/dependencies/autoload.rb#29 module ActiveSupport::Autoload # source://activesupport//lib/active_support/dependencies/autoload.rb#42 def autoload(const_name, path = T.unsafe(nil)); end # source://activesupport//lib/active_support/dependencies/autoload.rb#63 def autoload_at(path); end # source://activesupport//lib/active_support/dependencies/autoload.rb#56 def autoload_under(path); end # source://activesupport//lib/active_support/dependencies/autoload.rb#70 def eager_autoload; end # source://activesupport//lib/active_support/dependencies/autoload.rb#77 def eager_load!; end class << self # source://activesupport//lib/active_support/dependencies/autoload.rb#30 def extended(base); end end end # = Backtrace Cleaner # # Backtraces often include many lines that are not relevant for the context # under review. This makes it hard to find the signal amongst the backtrace # noise, and adds debugging time. With a BacktraceCleaner, filters and # silencers are used to remove the noisy lines, so that only the most relevant # lines remain. # # Filters are used to modify lines of data, while silencers are used to remove # lines entirely. The typical filter use case is to remove lengthy path # information from the start of each line, and view file paths relevant to the # app directory instead of the file system root. The typical silencer use case # is to exclude the output of a noisy library from the backtrace, so that you # can focus on the rest. # # bc = ActiveSupport::BacktraceCleaner.new # bc.add_filter { |line| line.gsub(Rails.root.to_s, '') } # strip the Rails.root prefix # bc.add_silencer { |line| /puma|rubygems/.match?(line) } # skip any lines from puma or rubygems # bc.clean(exception.backtrace) # perform the cleanup # # To reconfigure an existing BacktraceCleaner (like the default one in \Rails) # and show as much data as possible, you can always call # BacktraceCleaner#remove_silencers!, which will restore the # backtrace to a pristine state. If you need to reconfigure an existing # BacktraceCleaner so that it does not filter or modify the paths of any lines # of the backtrace, you can call BacktraceCleaner#remove_filters! # These two methods will give you a completely untouched backtrace. # # Inspired by the Quiet Backtrace gem by thoughtbot. # # source://activesupport//lib/active_support/backtrace_cleaner.rb#33 class ActiveSupport::BacktraceCleaner # @return [BacktraceCleaner] a new instance of BacktraceCleaner # # source://activesupport//lib/active_support/backtrace_cleaner.rb#34 def initialize; end # Adds a filter from the block provided. Each line in the backtrace will be # mapped against this filter. # # # Will turn "/my/rails/root/app/models/person.rb" into "/app/models/person.rb" # backtrace_cleaner.add_filter { |line| line.gsub(Rails.root.to_s, '') } # # source://activesupport//lib/active_support/backtrace_cleaner.rb#80 def add_filter(&block); end # Adds a silencer from the block provided. If the silencer returns +true+ # for a given line, it will be excluded from the clean backtrace. # # # Will reject all lines that include the word "puma", like "/gems/puma/server.rb" or "/app/my_puma_server/rb" # backtrace_cleaner.add_silencer { |line| /puma/.match?(line) } # # source://activesupport//lib/active_support/backtrace_cleaner.rb#89 def add_silencer(&block); end # Returns the backtrace after all filters and silencers have been run # against it. Filters run first, then silencers. # # source://activesupport//lib/active_support/backtrace_cleaner.rb#43 def clean(backtrace, kind = T.unsafe(nil)); end # Returns the frame with all filters applied. # returns +nil+ if the frame was silenced. # # source://activesupport//lib/active_support/backtrace_cleaner.rb#59 def clean_frame(frame, kind = T.unsafe(nil)); end # Returns the backtrace after all filters and silencers have been run # against it. Filters run first, then silencers. # # source://activesupport//lib/active_support/backtrace_cleaner.rb#43 def filter(backtrace, kind = T.unsafe(nil)); end # Removes all filters, but leaves in the silencers. Useful if you suddenly # need to see entire filepaths in the backtrace that you had already # filtered out. # # source://activesupport//lib/active_support/backtrace_cleaner.rb#103 def remove_filters!; end # Removes all silencers, but leaves in the filters. Useful if your # context of debugging suddenly expands as you suspect a bug in one of # the libraries you use. # # source://activesupport//lib/active_support/backtrace_cleaner.rb#96 def remove_silencers!; end private # source://activesupport//lib/active_support/backtrace_cleaner.rb#110 def add_gem_filter; end # source://activesupport//lib/active_support/backtrace_cleaner.rb#119 def add_gem_silencer; end # source://activesupport//lib/active_support/backtrace_cleaner.rb#123 def add_stdlib_silencer; end # source://activesupport//lib/active_support/backtrace_cleaner.rb#127 def filter_backtrace(backtrace); end # source://activesupport//lib/active_support/backtrace_cleaner.rb#143 def noise(backtrace); end # source://activesupport//lib/active_support/backtrace_cleaner.rb#135 def silence(backtrace); end end # source://activesupport//lib/active_support/backtrace_cleaner.rb#108 ActiveSupport::BacktraceCleaner::FORMATTED_GEMS_PATTERN = T.let(T.unsafe(nil), Regexp) # = \Benchmarkable # # source://activesupport//lib/active_support/benchmarkable.rb#8 module ActiveSupport::Benchmarkable # Allows you to measure the execution time of a block in a template and # records the result to the log. Wrap this block around expensive operations # or possible bottlenecks to get a time reading for the operation. For # example, let's say you thought your file processing method was taking too # long; you could wrap it in a benchmark block. # # <% benchmark 'Process data files' do %> # <%= expensive_files_operation %> # <% end %> # # That would add something like "Process data files (345.2ms)" to the log, # which you can then use to compare timings when optimizing your code. # # You may give an optional logger level (:debug, :info, # :warn, :error) as the :level option. The # default logger level value is :info. # # <% benchmark 'Low-level files', level: :debug do %> # <%= lowlevel_files_operation %> # <% end %> # # Finally, you can pass true as the third argument to silence all log # activity (other than the timing information) from inside the block. This # is great for boiling down a noisy block to just a single statement that # produces one log line: # # <% benchmark 'Process data files', level: :info, silence: true do %> # <%= expensive_and_chatty_files_operation %> # <% end %> # # source://activesupport//lib/active_support/benchmarkable.rb#38 def benchmark(message = T.unsafe(nil), options = T.unsafe(nil), &block); end end # source://activesupport//lib/active_support/core_ext/big_decimal/conversions.rb#7 module ActiveSupport::BigDecimalWithDefaultFormat # source://activesupport//lib/active_support/core_ext/big_decimal/conversions.rb#8 def to_s(format = T.unsafe(nil)); end end # = Active Support Broadcast Logger # # The Broadcast logger is a logger used to write messages to multiple IO. It is commonly used # in development to display messages on STDOUT and also write them to a file (development.log). # With the Broadcast logger, you can broadcast your logs to a unlimited number of sinks. # # The BroadcastLogger acts as a standard logger and all methods you are used to are available. # However, all the methods on this logger will propagate and be delegated to the other loggers # that are part of the broadcast. # # Broadcasting your logs. # # stdout_logger = Logger.new(STDOUT) # file_logger = Logger.new("development.log") # broadcast = BroadcastLogger.new(stdout_logger, file_logger) # # broadcast.info("Hello world!") # Writes the log to STDOUT and the development.log file. # # Add a logger to the broadcast. # # stdout_logger = Logger.new(STDOUT) # broadcast = BroadcastLogger.new(stdout_logger) # file_logger = Logger.new("development.log") # broadcast.broadcast_to(file_logger) # # broadcast.info("Hello world!") # Writes the log to STDOUT and the development.log file. # # Modifying the log level for all broadcasted loggers. # # stdout_logger = Logger.new(STDOUT) # file_logger = Logger.new("development.log") # broadcast = BroadcastLogger.new(stdout_logger, file_logger) # # broadcast.level = Logger::FATAL # Modify the log level for the whole broadcast. # # Stop broadcasting log to a sink. # # stdout_logger = Logger.new(STDOUT) # file_logger = Logger.new("development.log") # broadcast = BroadcastLogger.new(stdout_logger, file_logger) # broadcast.info("Hello world!") # Writes the log to STDOUT and the development.log file. # # broadcast.stop_broadcasting_to(file_logger) # broadcast.info("Hello world!") # Writes the log *only* to STDOUT. # # At least one sink has to be part of the broadcast. Otherwise, your logs will not # be written anywhere. For instance: # # broadcast = BroadcastLogger.new # broadcast.info("Hello world") # The log message will appear nowhere. # # If you are adding a custom logger with custom methods to the broadcast, # the `BroadcastLogger` will proxy them and return the raw value, or an array # of raw values, depending on how many loggers in the broadcasts responded to # the method: # # class MyLogger < ::Logger # def loggable? # true # end # end # # logger = BroadcastLogger.new # logger.loggable? # => A NoMethodError exception is raised because no loggers in the broadcasts could respond. # # logger.broadcast_to(MyLogger.new(STDOUT)) # logger.loggable? # => true # logger.broadcast_to(MyLogger.new(STDOUT)) # puts logger.broadcasts # => [MyLogger, MyLogger] # logger.loggable? # [true, true] # # source://activesupport//lib/active_support/broadcast_logger.rb#74 class ActiveSupport::BroadcastLogger include ::ActiveSupport::LoggerSilence include ::ActiveSupport::LoggerThreadSafeLevel # @return [BroadcastLogger] a new instance of BroadcastLogger # # source://activesupport//lib/active_support/broadcast_logger.rb#82 def initialize(*loggers); end # source://activesupport//lib/active_support/broadcast_logger.rb#112 def <<(message); end # source://activesupport//lib/active_support/broadcast_logger.rb#116 def add(*args, &block); end # Add logger(s) to the broadcast. # # broadcast_logger = ActiveSupport::BroadcastLogger.new # broadcast_logger.broadcast_to(Logger.new(STDOUT), Logger.new(STDERR)) # # source://activesupport//lib/active_support/broadcast_logger.rb#93 def broadcast_to(*loggers); end # Returns all the logger that are part of this broadcast. # # source://activesupport//lib/active_support/broadcast_logger.rb#78 def broadcasts; end # source://activesupport//lib/active_support/broadcast_logger.rb#162 def close; end # source://activesupport//lib/active_support/broadcast_logger.rb#121 def debug(*args, &block); end # Sets the log level to Logger::DEBUG for the whole broadcast. # # source://activesupport//lib/active_support/broadcast_logger.rb#173 def debug!; end # +True+ if the log level allows entries with severity Logger::DEBUG to be written # to at least one broadcast. +False+ otherwise. # # @return [Boolean] # # source://activesupport//lib/active_support/broadcast_logger.rb#168 def debug?; end # source://activesupport//lib/active_support/broadcast_logger.rb#133 def error(*args, &block); end # Sets the log level to Logger::ERROR for the whole broadcast. # # source://activesupport//lib/active_support/broadcast_logger.rb#206 def error!; end # +True+ if the log level allows entries with severity Logger::ERROR to be written # to at least one broadcast. +False+ otherwise. # # @return [Boolean] # # source://activesupport//lib/active_support/broadcast_logger.rb#201 def error?; end # source://activesupport//lib/active_support/broadcast_logger.rb#137 def fatal(*args, &block); end # Sets the log level to Logger::FATAL for the whole broadcast. # # source://activesupport//lib/active_support/broadcast_logger.rb#217 def fatal!; end # +True+ if the log level allows entries with severity Logger::FATAL to be written # to at least one broadcast. +False+ otherwise. # # @return [Boolean] # # source://activesupport//lib/active_support/broadcast_logger.rb#212 def fatal?; end # Returns the value of attribute formatter. # # source://activesupport//lib/active_support/broadcast_logger.rb#79 def formatter; end # source://activesupport//lib/active_support/broadcast_logger.rb#145 def formatter=(formatter); end # source://activesupport//lib/active_support/broadcast_logger.rb#125 def info(*args, &block); end # Sets the log level to Logger::INFO for the whole broadcast. # # source://activesupport//lib/active_support/broadcast_logger.rb#184 def info!; end # +True+ if the log level allows entries with severity Logger::INFO to be written # to at least one broadcast. +False+ otherwise. # # @return [Boolean] # # source://activesupport//lib/active_support/broadcast_logger.rb#179 def info?; end # source://activesupport//lib/active_support/broadcast_logger.rb#108 def level; end # source://activesupport//lib/active_support/broadcast_logger.rb#151 def level=(level); end # source://activesupport//lib/active_support/broadcast_logger.rb#156 def local_level=(level); end # source://activesupport//lib/active_support/broadcast_logger.rb#116 def log(*args, &block); end # Returns the value of attribute progname. # # source://activesupport//lib/active_support/broadcast_logger.rb#80 def progname; end # Sets the attribute progname # # @param value the value to set the attribute progname to. # # source://activesupport//lib/active_support/broadcast_logger.rb#80 def progname=(_arg0); end # source://activesupport//lib/active_support/broadcast_logger.rb#151 def sev_threshold=(level); end # source://activesupport//lib/active_support/logger_silence.rb#12 def silencer; end # source://activesupport//lib/active_support/logger_silence.rb#12 def silencer=(val); end # Remove a logger from the broadcast. When a logger is removed, messages sent to # the broadcast will no longer be written to its sink. # # sink = Logger.new(STDOUT) # broadcast_logger = ActiveSupport::BroadcastLogger.new # # broadcast_logger.stop_broadcasting_to(sink) # # source://activesupport//lib/active_support/broadcast_logger.rb#104 def stop_broadcasting_to(logger); end # source://activesupport//lib/active_support/broadcast_logger.rb#141 def unknown(*args, &block); end # source://activesupport//lib/active_support/broadcast_logger.rb#129 def warn(*args, &block); end # Sets the log level to Logger::WARN for the whole broadcast. # # source://activesupport//lib/active_support/broadcast_logger.rb#195 def warn!; end # +True+ if the log level allows entries with severity Logger::WARN to be written # to at least one broadcast. +False+ otherwise. # # @return [Boolean] # # source://activesupport//lib/active_support/broadcast_logger.rb#190 def warn?; end private # source://activesupport//lib/active_support/broadcast_logger.rb#230 def dispatch(&block); end # source://activesupport//lib/active_support/broadcast_logger.rb#221 def initialize_copy(other); end # source://activesupport//lib/active_support/broadcast_logger.rb#234 def method_missing(name, *args, **kwargs, &block); end # @return [Boolean] # # source://activesupport//lib/active_support/broadcast_logger.rb#246 def respond_to_missing?(method, include_all); end class << self # source://activesupport//lib/active_support/logger_silence.rb#12 def silencer; end # source://activesupport//lib/active_support/logger_silence.rb#12 def silencer=(val); end end end # See ActiveSupport::Cache::Store for documentation. # # source://activesupport//lib/active_support/cache/entry.rb#6 module ActiveSupport::Cache class << self # Expands out the +key+ argument into a key that can be used for the # cache store. Optionally accepts a namespace, and all keys will be # scoped within that namespace. # # If the +key+ argument provided is an array, or responds to +to_a+, then # each of elements in the array will be turned into parameters/keys and # concatenated into a single key. For example: # # ActiveSupport::Cache.expand_cache_key([:foo, :bar]) # => "foo/bar" # ActiveSupport::Cache.expand_cache_key([:foo, :bar], "namespace") # => "namespace/foo/bar" # # The +key+ argument can also respond to +cache_key+ or +to_param+. # # source://activesupport//lib/active_support/cache.rb#117 def expand_cache_key(key, namespace = T.unsafe(nil)); end # Returns the value of attribute format_version. # # source://activesupport//lib/active_support/cache.rb#58 def format_version; end # Sets the attribute format_version # # @param value the value to set the attribute format_version to. # # source://activesupport//lib/active_support/cache.rb#58 def format_version=(_arg0); end # Creates a new Store object according to the given options. # # If no arguments are passed to this method, then a new # ActiveSupport::Cache::MemoryStore object will be returned. # # If you pass a Symbol as the first argument, then a corresponding cache # store class under the ActiveSupport::Cache namespace will be created. # For example: # # ActiveSupport::Cache.lookup_store(:memory_store) # # => returns a new ActiveSupport::Cache::MemoryStore object # # ActiveSupport::Cache.lookup_store(:mem_cache_store) # # => returns a new ActiveSupport::Cache::MemCacheStore object # # Any additional arguments will be passed to the corresponding cache store # class's constructor: # # ActiveSupport::Cache.lookup_store(:file_store, '/tmp/cache') # # => same as: ActiveSupport::Cache::FileStore.new('/tmp/cache') # # If the first argument is not a Symbol, then it will simply be returned: # # ActiveSupport::Cache.lookup_store(MyOwnCacheStore.new) # # => returns MyOwnCacheStore.new # # source://activesupport//lib/active_support/cache.rb#85 def lookup_store(store = T.unsafe(nil), *parameters); end private # source://activesupport//lib/active_support/cache.rb#129 def retrieve_cache_key(key); end # Obtains the specified cache store class, given the name of the +store+. # Raises an error when the store class cannot be found. # # source://activesupport//lib/active_support/cache.rb#141 def retrieve_store_class(store); end end end # source://activesupport//lib/active_support/cache/coder.rb#7 class ActiveSupport::Cache::Coder # @return [Coder] a new instance of Coder # # source://activesupport//lib/active_support/cache/coder.rb#8 def initialize(serializer, compressor, legacy_serializer: T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/coder.rb#14 def dump(entry); end # source://activesupport//lib/active_support/cache/coder.rb#20 def dump_compressed(entry, threshold); end # source://activesupport//lib/active_support/cache/coder.rb#48 def load(dumped); end private # source://activesupport//lib/active_support/cache/coder.rb#136 def dump_version(version); end # source://activesupport//lib/active_support/cache/coder.rb#144 def load_version(dumped_version); end # @return [Boolean] # # source://activesupport//lib/active_support/cache/coder.rb#121 def signature?(dumped); end # source://activesupport//lib/active_support/cache/coder.rb#129 def try_compress(string, threshold); end # source://activesupport//lib/active_support/cache/coder.rb#125 def type_for_string(value); end end # source://activesupport//lib/active_support/cache/coder.rb#76 ActiveSupport::Cache::Coder::COMPRESSED_FLAG = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/cache/coder.rb#98 class ActiveSupport::Cache::Coder::LazyEntry < ::ActiveSupport::Cache::Entry # @return [LazyEntry] a new instance of LazyEntry # # source://activesupport//lib/active_support/cache/coder.rb#99 def initialize(serializer, compressor, payload, **options); end # @return [Boolean] # # source://activesupport//lib/active_support/cache/coder.rb#114 def mismatched?(version); end # source://activesupport//lib/active_support/cache/coder.rb#106 def value; end end # source://activesupport//lib/active_support/cache/coder.rb#84 ActiveSupport::Cache::Coder::MARSHAL_SIGNATURE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/coder.rb#68 ActiveSupport::Cache::Coder::OBJECT_DUMP_TYPE = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/cache/coder.rb#80 ActiveSupport::Cache::Coder::PACKED_EXPIRES_AT_TEMPLATE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/coder.rb#78 ActiveSupport::Cache::Coder::PACKED_TEMPLATE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/coder.rb#79 ActiveSupport::Cache::Coder::PACKED_TYPE_TEMPLATE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/coder.rb#82 ActiveSupport::Cache::Coder::PACKED_VERSION_INDEX = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/cache/coder.rb#81 ActiveSupport::Cache::Coder::PACKED_VERSION_LENGTH_TEMPLATE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/coder.rb#66 ActiveSupport::Cache::Coder::SIGNATURE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/coder.rb#96 ActiveSupport::Cache::Coder::STRING_DESERIALIZERS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/cache/coder.rb#70 ActiveSupport::Cache::Coder::STRING_ENCODINGS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/cache/coder.rb#86 class ActiveSupport::Cache::Coder::StringDeserializer # @return [StringDeserializer] a new instance of StringDeserializer # # source://activesupport//lib/active_support/cache/coder.rb#87 def initialize(encoding); end # source://activesupport//lib/active_support/cache/coder.rb#91 def load(payload); end end # source://activesupport//lib/active_support/cache.rb#45 ActiveSupport::Cache::DEFAULT_COMPRESS_LIMIT = T.let(T.unsafe(nil), Integer) # Raised by coders when the cache entry can't be deserialized. # This error is treated as a cache miss. # # source://activesupport//lib/active_support/cache.rb#49 class ActiveSupport::Cache::DeserializationError < ::StandardError; end # This class is used to represent cache entries. Cache entries have a value, an optional # expiration time, and an optional version. The expiration time is used to support the :race_condition_ttl option # on the cache. The version is used to support the :version option on the cache for rejecting # mismatches. # # Since cache entries in most instances will be serialized, the internals of this class are highly optimized # using short instance variable names that are lazily defined. # # source://activesupport//lib/active_support/cache/entry.rb#14 class ActiveSupport::Cache::Entry # Creates a new cache entry for the specified value. Options supported are # +:compressed+, +:version+, +:expires_at+ and +:expires_in+. # # @return [Entry] a new instance of Entry # # source://activesupport//lib/active_support/cache/entry.rb#25 def initialize(value, compressed: T.unsafe(nil), version: T.unsafe(nil), expires_in: T.unsafe(nil), expires_at: T.unsafe(nil), **_arg5); end # Returns the size of the cached value. This could be less than # value.bytesize if the data is compressed. # # source://activesupport//lib/active_support/cache/entry.rb#61 def bytesize; end # source://activesupport//lib/active_support/cache/entry.rb#76 def compressed(compress_threshold); end # @return [Boolean] # # source://activesupport//lib/active_support/cache/entry.rb#72 def compressed?; end # Duplicates the value in a class. This is used by cache implementations that don't natively # serialize entries to protect against accidental cache modifications. # # source://activesupport//lib/active_support/cache/entry.rb#106 def dup_value!; end # Checks if the entry is expired. The +expires_in+ parameter can override # the value set when the entry was created. # # @return [Boolean] # # source://activesupport//lib/active_support/cache/entry.rb#43 def expired?; end # source://activesupport//lib/active_support/cache/entry.rb#47 def expires_at; end # source://activesupport//lib/active_support/cache/entry.rb#51 def expires_at=(value); end # @return [Boolean] # # source://activesupport//lib/active_support/cache/entry.rb#100 def local?; end # @return [Boolean] # # source://activesupport//lib/active_support/cache/entry.rb#37 def mismatched?(version); end # source://activesupport//lib/active_support/cache/entry.rb#116 def pack; end # source://activesupport//lib/active_support/cache/entry.rb#33 def value; end # Returns the value of attribute version. # # source://activesupport//lib/active_support/cache/entry.rb#21 def version; end private # source://activesupport//lib/active_support/cache/entry.rb#127 def marshal_load(payload); end # source://activesupport//lib/active_support/cache/entry.rb#123 def uncompress(value); end class << self # source://activesupport//lib/active_support/cache/entry.rb#16 def unpack(members); end end end # = \File \Cache \Store # # A cache store implementation which stores everything on the filesystem. # # source://activesupport//lib/active_support/cache/file_store.rb#12 class ActiveSupport::Cache::FileStore < ::ActiveSupport::Cache::Store # @return [FileStore] a new instance of FileStore # # source://activesupport//lib/active_support/cache/file_store.rb#20 def initialize(cache_path, **options); end # Returns the value of attribute cache_path. # # source://activesupport//lib/active_support/cache/file_store.rb#13 def cache_path; end # Preemptively iterates through all stored keys and removes the ones which have expired. # # source://activesupport//lib/active_support/cache/file_store.rb#40 def cleanup(options = T.unsafe(nil)); end # Deletes all items from the cache. In this case it deletes all the entries in the specified # file store directory except for .keep or .gitkeep. Be careful which directory is specified in your # config file when using +FileStore+ because everything in that directory will be deleted. # # source://activesupport//lib/active_support/cache/file_store.rb#33 def clear(options = T.unsafe(nil)); end # Decrement a cached integer value. Returns the updated value. # # If the key is unset, it will be set to +-amount+. # # cache.decrement("foo") # => -1 # # To set a specific value, call #write: # # cache.write("baz", 5) # cache.decrement("baz") # => 4 # # source://activesupport//lib/active_support/cache/file_store.rb#75 def decrement(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/file_store.rb#79 def delete_matched(matcher, options = T.unsafe(nil)); end # Increment a cached integer value. Returns the updated value. # # If the key is unset, it starts from +0+: # # cache.increment("foo") # => 1 # cache.increment("bar", 100) # => 100 # # To set a specific value, call #write: # # cache.write("baz", 5) # cache.increment("baz") # => 6 # # source://activesupport//lib/active_support/cache/file_store.rb#60 def increment(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/file_store.rb#90 def inspect; end private # Delete empty directories in the cache. # # source://activesupport//lib/active_support/cache/file_store.rb#184 def delete_empty_directories(dir); end # source://activesupport//lib/active_support/cache/file_store.rb#120 def delete_entry(key, **options); end # Make sure a file path's directories exist. # # source://activesupport//lib/active_support/cache/file_store.rb#193 def ensure_cache_path(path); end # Translate a file path into a key. # # source://activesupport//lib/active_support/cache/file_store.rb#178 def file_path_key(path); end # Lock a file for a block so only one process can modify it at a time. # # source://activesupport//lib/active_support/cache/file_store.rb#137 def lock_file(file_name, &block); end # Modifies the amount of an integer value that is stored in the cache. # If the key is not found it is created and set to +amount+. # # source://activesupport//lib/active_support/cache/file_store.rb#211 def modify_value(name, amount, options); end # Translate a key into a file path. # # source://activesupport//lib/active_support/cache/file_store.rb#151 def normalize_key(key, options); end # source://activesupport//lib/active_support/cache/file_store.rb#95 def read_entry(key, **options); end # source://activesupport//lib/active_support/cache/file_store.rb#102 def read_serialized_entry(key, **_arg1); end # source://activesupport//lib/active_support/cache/file_store.rb#197 def search_dir(dir, &callback); end # source://activesupport//lib/active_support/cache/file_store.rb#109 def write_entry(key, entry, **options); end # source://activesupport//lib/active_support/cache/file_store.rb#113 def write_serialized_entry(key, payload, **options); end class << self # Advertise cache versioning support. # # @return [Boolean] # # source://activesupport//lib/active_support/cache/file_store.rb#26 def supports_cache_versioning?; end end end # source://activesupport//lib/active_support/cache/file_store.rb#15 ActiveSupport::Cache::FileStore::DIR_FORMATTER = T.let(T.unsafe(nil), String) # max filename size on file system is 255, minus room for timestamp, pid, and random characters appended by Tempfile (used by atomic write) # # source://activesupport//lib/active_support/cache/file_store.rb#16 ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE = T.let(T.unsafe(nil), Integer) # max is 1024, plus some room # # source://activesupport//lib/active_support/cache/file_store.rb#17 ActiveSupport::Cache::FileStore::FILEPATH_MAX_SIZE = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/cache/file_store.rb#18 ActiveSupport::Cache::FileStore::GITKEEP_FILES = T.let(T.unsafe(nil), Array) # = Memory \Cache \Store # # A cache store implementation which stores everything into memory in the # same process. If you're running multiple Ruby on \Rails server processes # (which is the case if you're using Phusion Passenger or puma clustered mode), # then this means that \Rails server process instances won't be able # to share cache data with each other and this may not be the most # appropriate cache in that scenario. # # This cache has a bounded size specified by the +:size+ options to the # initializer (default is 32Mb). When the cache exceeds the allotted size, # a cleanup will occur which tries to prune the cache down to three quarters # of the maximum size by removing the least recently used entries. # # Unlike other Cache store implementations, +MemoryStore+ does not compress # values by default. +MemoryStore+ does not benefit from compression as much # as other Store implementations, as it does not send data over a network. # However, when compression is enabled, it still pays the full cost of # compression in terms of cpu use. # # +MemoryStore+ is thread-safe. # # source://activesupport//lib/active_support/cache/memory_store.rb#28 class ActiveSupport::Cache::MemoryStore < ::ActiveSupport::Cache::Store # @return [MemoryStore] a new instance of MemoryStore # # source://activesupport//lib/active_support/cache/memory_store.rb#73 def initialize(options = T.unsafe(nil)); end # Preemptively iterates through all stored keys and removes the ones which have expired. # # source://activesupport//lib/active_support/cache/memory_store.rb#101 def cleanup(options = T.unsafe(nil)); end # Delete all data stored in a given cache store. # # source://activesupport//lib/active_support/cache/memory_store.rb#93 def clear(options = T.unsafe(nil)); end # Decrement a cached integer value. Returns the updated value. # # If the key is unset or has expired, it will be set to +-amount+. # # cache.decrement("foo") # => -1 # # To set a specific value, call #write: # # cache.write("baz", 5) # cache.decrement("baz") # => 4 # # source://activesupport//lib/active_support/cache/memory_store.rb#164 def decrement(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # Deletes cache entries if the cache key matches a given pattern. # # source://activesupport//lib/active_support/cache/memory_store.rb#169 def delete_matched(matcher, options = T.unsafe(nil)); end # Increment a cached integer value. Returns the updated value. # # If the key is unset, it will be set to +amount+: # # cache.increment("foo") # => 1 # cache.increment("bar", 100) # => 100 # # To set a specific value, call #write: # # cache.write("baz", 5) # cache.increment("baz") # => 6 # # source://activesupport//lib/active_support/cache/memory_store.rb#149 def increment(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/memory_store.rb#180 def inspect; end # To ensure entries fit within the specified memory prune the cache by removing the least # recently accessed entries. # # source://activesupport//lib/active_support/cache/memory_store.rb#114 def prune(target_size, max_time = T.unsafe(nil)); end # Returns true if the cache is currently being pruned. # # @return [Boolean] # # source://activesupport//lib/active_support/cache/memory_store.rb#133 def pruning?; end # Synchronize calls to the cache. This should be called wherever the underlying cache implementation # is not thread safe. # # source://activesupport//lib/active_support/cache/memory_store.rb#186 def synchronize(&block); end private # source://activesupport//lib/active_support/cache/memory_store.rb#193 def cached_size(key, payload); end # source://activesupport//lib/active_support/cache/memory_store.rb#226 def delete_entry(key, **options); end # Modifies the amount of an integer value that is stored in the cache. # If the key is not found it is created and set to +amount+. # # source://activesupport//lib/active_support/cache/memory_store.rb#236 def modify_value(name, amount, options); end # source://activesupport//lib/active_support/cache/memory_store.rb#197 def read_entry(key, **options); end # source://activesupport//lib/active_support/cache/memory_store.rb#209 def write_entry(key, entry, **options); end class << self # Advertise cache versioning support. # # @return [Boolean] # # source://activesupport//lib/active_support/cache/memory_store.rb#88 def supports_cache_versioning?; end end end # source://activesupport//lib/active_support/cache/memory_store.rb#29 module ActiveSupport::Cache::MemoryStore::DupCoder extend ::ActiveSupport::Cache::MemoryStore::DupCoder # source://activesupport//lib/active_support/cache/memory_store.rb#32 def dump(entry); end # source://activesupport//lib/active_support/cache/memory_store.rb#40 def dump_compressed(entry, threshold); end # source://activesupport//lib/active_support/cache/memory_store.rb#45 def load(entry); end private # source://activesupport//lib/active_support/cache/memory_store.rb#56 def dump_value(value); end # source://activesupport//lib/active_support/cache/memory_store.rb#64 def load_value(string); end end # source://activesupport//lib/active_support/cache/memory_store.rb#54 ActiveSupport::Cache::MemoryStore::DupCoder::MARSHAL_SIGNATURE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/memory_store.rb#191 ActiveSupport::Cache::MemoryStore::PER_ENTRY_OVERHEAD = T.let(T.unsafe(nil), Integer) # = Null \Cache \Store # # A cache store implementation which doesn't actually store anything. Useful in # development and test environments where you don't want caching turned on but # need to go through the caching interface. # # This cache does implement the local cache strategy, so values will actually # be cached inside blocks that utilize this strategy. See # ActiveSupport::Cache::Strategy::LocalCache for more details. # # source://activesupport//lib/active_support/cache/null_store.rb#14 class ActiveSupport::Cache::NullStore < ::ActiveSupport::Cache::Store include ::ActiveSupport::Cache::Strategy::LocalCache # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#85 def cleanup(options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#79 def clear(options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#108 def decrement(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#91 def delete_matched(matcher, options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#97 def increment(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/null_store.rb#37 def inspect; end private # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#162 def delete_entry(key, **_arg1); end # source://activesupport//lib/active_support/cache/null_store.rb#42 def read_entry(key, **s); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#120 def read_serialized_entry(key, raw: T.unsafe(nil), **options); end # source://activesupport//lib/active_support/cache/null_store.rb#49 def write_entry(key, entry, **_arg2); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#153 def write_serialized_entry(key, payload, **_arg2); end class << self # Advertise cache versioning support. # # @return [Boolean] # # source://activesupport//lib/active_support/cache/null_store.rb#18 def supports_cache_versioning?; end end end # Mapping of canonical option names to aliases that a store will recognize. # # source://activesupport//lib/active_support/cache.rb#41 ActiveSupport::Cache::OPTION_ALIASES = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#8 module ActiveSupport::Cache::SerializerWithFallback # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#17 def load(dumped); end private # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#39 def marshal_load(payload); end class << self # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#9 def [](format); end end end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#66 module ActiveSupport::Cache::SerializerWithFallback::Marshal61WithFallback include ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback::Marshal61WithFallback # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#39 def _load(payload); end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#72 def dump(entry); end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#76 def dump_compressed(entry, threshold); end # @return [Boolean] # # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#83 def dumped?(dumped); end end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#70 ActiveSupport::Cache::SerializerWithFallback::Marshal61WithFallback::MARSHAL_SIGNATURE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#88 module ActiveSupport::Cache::SerializerWithFallback::Marshal70WithFallback include ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback::Marshal70WithFallback # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#110 def _load(marked); end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#95 def dump(entry); end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#99 def dump_compressed(entry, threshold); end # @return [Boolean] # # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#116 def dumped?(dumped); end end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#93 ActiveSupport::Cache::SerializerWithFallback::Marshal70WithFallback::MARK_COMPRESSED = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#92 ActiveSupport::Cache::SerializerWithFallback::Marshal70WithFallback::MARK_UNCOMPRESSED = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#121 module ActiveSupport::Cache::SerializerWithFallback::Marshal71WithFallback include ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback::Marshal71WithFallback # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#131 def _load(dumped); end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#127 def dump(value); end # @return [Boolean] # # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#135 def dumped?(dumped); end end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#125 ActiveSupport::Cache::SerializerWithFallback::Marshal71WithFallback::MARSHAL_SIGNATURE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#140 module ActiveSupport::Cache::SerializerWithFallback::MessagePackWithFallback include ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback::MessagePackWithFallback # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#148 def _load(dumped); end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#144 def dump(value); end # @return [Boolean] # # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#152 def dumped?(dumped); end private # @return [Boolean] # # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#157 def available?; end end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#45 module ActiveSupport::Cache::SerializerWithFallback::PassthroughWithFallback include ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback extend ::ActiveSupport::Cache::SerializerWithFallback::PassthroughWithFallback # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#57 def _load(entry); end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#49 def dump(entry); end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#53 def dump_compressed(entry, threshold); end # @return [Boolean] # # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#61 def dumped?(dumped); end end # source://activesupport//lib/active_support/cache/serializer_with_fallback.rb#166 ActiveSupport::Cache::SerializerWithFallback::SERIALIZERS = T.let(T.unsafe(nil), Hash) # = Active Support \Cache \Store # # An abstract cache store class. There are multiple cache store # implementations, each having its own additional features. See the classes # under the ActiveSupport::Cache module, e.g. # ActiveSupport::Cache::MemCacheStore. MemCacheStore is currently the most # popular cache store for large production websites. # # Some implementations may not support all methods beyond the basic cache # methods of #fetch, #write, #read, #exist?, and #delete. # # +ActiveSupport::Cache::Store+ can store any Ruby object that is supported # by its +coder+'s +dump+ and +load+ methods. # # cache = ActiveSupport::Cache::MemoryStore.new # # cache.read('city') # => nil # cache.write('city', "Duckburgh") # cache.read('city') # => "Duckburgh" # # cache.write('not serializable', Proc.new {}) # => TypeError # # Keys are always translated into Strings and are case sensitive. When an # object is specified as a key and has a +cache_key+ method defined, this # method will be called to define the key. Otherwise, the +to_param+ # method will be called. Hashes and Arrays can also be used as keys. The # elements will be delimited by slashes, and the elements within a Hash # will be sorted by key so they are consistent. # # cache.read('city') == cache.read(:city) # => true # # Nil values can be cached. # # If your cache is on a shared infrastructure, you can define a namespace # for your cache entries. If a namespace is defined, it will be prefixed on # to every key. The namespace can be either a static value or a Proc. If it # is a Proc, it will be invoked when each key is evaluated so that you can # use application logic to invalidate keys. # # cache.namespace = -> { @last_mod_time } # Set the namespace to a variable # @last_mod_time = Time.now # Invalidate the entire cache by changing namespace # # source://activesupport//lib/active_support/cache.rb#194 class ActiveSupport::Cache::Store # Creates a new cache. # # ==== Options # # [+:namespace+] # Sets the namespace for the cache. This option is especially useful if # your application shares a cache with other applications. # # [+:serializer+] # The serializer for cached values. Must respond to +dump+ and +load+. # # The default serializer depends on the cache format version (set via # +config.active_support.cache_format_version+ when using Rails). The # default serializer for each format version includes a fallback # mechanism to deserialize values from any format version. This behavior # makes it easy to migrate between format versions without invalidating # the entire cache. # # You can also specify serializer: :message_pack to use a # preconfigured serializer based on ActiveSupport::MessagePack. The # +:message_pack+ serializer includes the same deserialization fallback # mechanism, allowing easy migration from (or to) the default # serializer. The +:message_pack+ serializer may improve performance, # but it requires the +msgpack+ gem. # # [+:compressor+] # The compressor for serialized cache values. Must respond to +deflate+ # and +inflate+. # # The default compressor is +Zlib+. To define a new custom compressor # that also decompresses old cache entries, you can check compressed # values for Zlib's "\x78" signature: # # module MyCompressor # def self.deflate(dumped) # # compression logic... (make sure result does not start with "\x78"!) # end # # def self.inflate(compressed) # if compressed.start_with?("\x78") # Zlib.inflate(compressed) # else # # decompression logic... # end # end # end # # ActiveSupport::Cache.lookup_store(:redis_cache_store, compressor: MyCompressor) # # [+:coder+] # The coder for serializing and (optionally) compressing cache entries. # Must respond to +dump+ and +load+. # # The default coder composes the serializer and compressor, and includes # some performance optimizations. If you only need to override the # serializer or compressor, you should specify the +:serializer+ or # +:compressor+ options instead. # # If the store can handle cache entries directly, you may also specify # coder: nil to omit the serializer, compressor, and coder. For # example, if you are using ActiveSupport::Cache::MemoryStore and can # guarantee that cache values will not be mutated, you can specify # coder: nil to avoid the overhead of safeguarding against # mutation. # # The +:coder+ option is mutally exclusive with the +:serializer+ and # +:compressor+ options. Specifying them together will raise an # +ArgumentError+. # # Any other specified options are treated as default options for the # relevant cache operations, such as #read, #write, and #fetch. # # @return [Store] a new instance of Store # # source://activesupport//lib/active_support/cache.rb#319 def initialize(options = T.unsafe(nil)); end # Cleans up the cache by removing expired entries. # # Options are passed to the underlying cache implementation. # # Some implementations may not support this method. # # @raise [NotImplementedError] # # source://activesupport//lib/active_support/cache.rb#747 def cleanup(options = T.unsafe(nil)); end # Clears the entire cache. Be careful with this method since it could # affect other processes if shared cache is being used. # # The options hash is passed to the underlying cache implementation. # # Some implementations may not support this method. # # @raise [NotImplementedError] # # source://activesupport//lib/active_support/cache.rb#757 def clear(options = T.unsafe(nil)); end # Decrements an integer value in the cache. # # Options are passed to the underlying cache implementation. # # Some implementations may not support this method. # # @raise [NotImplementedError] # # source://activesupport//lib/active_support/cache.rb#738 def decrement(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # Deletes an entry in the cache. Returns +true+ if an entry is deleted # and +false+ otherwise. # # Options are passed to the underlying cache implementation. # # source://activesupport//lib/active_support/cache.rb#676 def delete(name, options = T.unsafe(nil)); end # Deletes all entries with keys matching the pattern. # # Options are passed to the underlying cache implementation. # # Some implementations may not support this method. # # @raise [NotImplementedError] # # source://activesupport//lib/active_support/cache.rb#720 def delete_matched(matcher, options = T.unsafe(nil)); end # Deletes multiple entries in the cache. Returns the number of deleted # entries. # # Options are passed to the underlying cache implementation. # # source://activesupport//lib/active_support/cache.rb#688 def delete_multi(names, options = T.unsafe(nil)); end # Returns +true+ if the cache contains an entry for the given key. # # Options are passed to the underlying cache implementation. # # @return [Boolean] # # source://activesupport//lib/active_support/cache.rb#702 def exist?(name, options = T.unsafe(nil)); end # Fetches data from the cache, using the given key. If there is data in # the cache with the given key, then that data is returned. # # If there is no such data in the cache (a cache miss), then +nil+ will be # returned. However, if a block has been passed, that block will be passed # the key and executed in the event of a cache miss. The return value of the # block will be written to the cache under the given cache key, and that # return value will be returned. # # cache.write('today', 'Monday') # cache.fetch('today') # => "Monday" # # cache.fetch('city') # => nil # cache.fetch('city') do # 'Duckburgh' # end # cache.fetch('city') # => "Duckburgh" # # ==== Options # # Internally, +fetch+ calls +read_entry+, and calls +write_entry+ on a # cache miss. Thus, +fetch+ supports the same options as #read and #write. # Additionally, +fetch+ supports the following options: # # * force: true - Forces a cache "miss," meaning we treat the # cache value as missing even if it's present. Passing a block is # required when +force+ is true so this always results in a cache write. # # cache.write('today', 'Monday') # cache.fetch('today', force: true) { 'Tuesday' } # => 'Tuesday' # cache.fetch('today', force: true) # => ArgumentError # # The +:force+ option is useful when you're calling some other method to # ask whether you should force a cache write. Otherwise, it's clearer to # just call +write+. # # * skip_nil: true - Prevents caching a nil result: # # cache.fetch('foo') { nil } # cache.fetch('bar', skip_nil: true) { nil } # cache.exist?('foo') # => true # cache.exist?('bar') # => false # # * +:race_condition_ttl+ - Specifies the number of seconds during which # an expired value can be reused while a new value is being generated. # This can be used to prevent race conditions when cache entries expire, # by preventing multiple processes from simultaneously regenerating the # same entry (also known as the dog pile effect). # # When a process encounters a cache entry that has expired less than # +:race_condition_ttl+ seconds ago, it will bump the expiration time by # +:race_condition_ttl+ seconds before generating a new value. During # this extended time window, while the process generates a new value, # other processes will continue to use the old value. After the first # process writes the new value, other processes will then use it. # # If the first process errors out while generating a new value, another # process can try to generate a new value after the extended time window # has elapsed. # # # Set all values to expire after one minute. # cache = ActiveSupport::Cache::MemoryStore.new(expires_in: 1.minute) # # cache.write('foo', 'original value') # val_1 = nil # val_2 = nil # sleep 60 # # Thread.new do # val_1 = cache.fetch('foo', race_condition_ttl: 10.seconds) do # sleep 1 # 'new value 1' # end # end # # Thread.new do # val_2 = cache.fetch('foo', race_condition_ttl: 10.seconds) do # 'new value 2' # end # end # # cache.fetch('foo') # => "original value" # sleep 10 # First thread extended the life of cache by another 10 seconds # cache.fetch('foo') # => "new value 1" # val_1 # => "new value 1" # val_2 # => "original value" # # ==== Dynamic Options # # In some cases it may be necessary to dynamically compute options based # on the cached value. To support this, an ActiveSupport::Cache::WriteOptions # instance is passed as the second argument to the block. For example: # # cache.fetch("authentication-token:#{user.id}") do |key, options| # token = authenticate_to_service # options.expires_at = token.expires_at # token # end # # source://activesupport//lib/active_support/cache.rb#452 def fetch(name, options = T.unsafe(nil), &block); end # Fetches data from the cache, using the given keys. If there is data in # the cache with the given keys, then that data is returned. Otherwise, # the supplied block is called for each key for which there was no data, # and the result will be written to the cache and returned. # Therefore, you need to pass a block that returns the data to be written # to the cache. If you do not want to write the cache when the cache is # not found, use #read_multi. # # Returns a hash with the data for each of the names. For example: # # cache.write("bim", "bam") # cache.fetch_multi("bim", "unknown_key") do |key| # "Fallback value for key: #{key}" # end # # => { "bim" => "bam", # # "unknown_key" => "Fallback value for key: unknown_key" } # # You may also specify additional options via the +options+ argument. See #fetch for details. # Other options are passed to the underlying cache implementation. For example: # # cache.fetch_multi("fizz", expires_in: 5.seconds) do |key| # "buzz" # end # # => {"fizz"=>"buzz"} # cache.read("fizz") # # => "buzz" # sleep(6) # cache.read("fizz") # # => nil # # @raise [ArgumentError] # # source://activesupport//lib/active_support/cache.rb#601 def fetch_multi(*names); end # Increments an integer value in the cache. # # Options are passed to the underlying cache implementation. # # Some implementations may not support this method. # # @raise [NotImplementedError] # # source://activesupport//lib/active_support/cache.rb#729 def increment(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache.rb#195 def logger; end # source://activesupport//lib/active_support/cache.rb#195 def logger=(val); end # Silences the logger within a block. # # source://activesupport//lib/active_support/cache.rb#346 def mute; end # source://activesupport//lib/active_support/cache.rb#711 def new_entry(value, options = T.unsafe(nil)); end # Returns the value of attribute options. # # source://activesupport//lib/active_support/cache.rb#198 def options; end # source://activesupport//lib/active_support/cache.rb#196 def raise_on_invalid_cache_expiration_time; end # source://activesupport//lib/active_support/cache.rb#196 def raise_on_invalid_cache_expiration_time=(val); end # Reads data from the cache, using the given key. If there is data in # the cache with the given key, then that data is returned. Otherwise, # +nil+ is returned. # # Note, if data was written with the :expires_in or # :version options, both of these conditions are applied before # the data is returned. # # ==== Options # # * +:namespace+ - Replace the store namespace for this call. # * +:version+ - Specifies a version for the cache entry. If the cached # version does not match the requested version, the read will be treated # as a cache miss. This feature is used to support recyclable cache keys. # # Other options will be handled by the specific cache store implementation. # # source://activesupport//lib/active_support/cache.rb#506 def read(name, options = T.unsafe(nil)); end # Reads multiple values at once from the cache. Options can be passed # in the last argument. # # Some cache implementation may optimize this method. # # Returns a hash mapping the names provided to the values found. # # source://activesupport//lib/active_support/cache.rb#544 def read_multi(*names); end # Returns the value of attribute silence. # # source://activesupport//lib/active_support/cache.rb#198 def silence; end # Silences the logger. # # source://activesupport//lib/active_support/cache.rb#340 def silence!; end # Returns the value of attribute silence. # # source://activesupport//lib/active_support/cache.rb#198 def silence?; end # Writes the value to the cache with the key. The value must be supported # by the +coder+'s +dump+ and +load+ methods. # # By default, cache entries larger than 1kB are compressed. Compression # allows more data to be stored in the same memory footprint, leading to # fewer cache evictions and higher hit rates. # # ==== Options # # * compress: false - Disables compression of the cache entry. # # * +:compress_threshold+ - The compression threshold, specified in bytes. # \Cache entries larger than this threshold will be compressed. Defaults # to +1.kilobyte+. # # * +:expires_in+ - Sets a relative expiration time for the cache entry, # specified in seconds. +:expire_in+ and +:expired_in+ are aliases for # +:expires_in+. # # cache = ActiveSupport::Cache::MemoryStore.new(expires_in: 5.minutes) # cache.write(key, value, expires_in: 1.minute) # Set a lower value for one entry # # * +:expires_at+ - Sets an absolute expiration time for the cache entry. # # cache = ActiveSupport::Cache::MemoryStore.new # cache.write(key, value, expires_at: Time.now.at_end_of_hour) # # * +:version+ - Specifies a version for the cache entry. When reading # from the cache, if the cached version does not match the requested # version, the read will be treated as a cache miss. This feature is # used to support recyclable cache keys. # # Other options will be handled by the specific cache store implementation. # # source://activesupport//lib/active_support/cache.rb#663 def write(name, value, options = T.unsafe(nil)); end # Cache Storage API to write multiple values at once. # # source://activesupport//lib/active_support/cache.rb#558 def write_multi(hash, options = T.unsafe(nil)); end private # source://activesupport//lib/active_support/cache.rb#1013 def _instrument(operation, multi: T.unsafe(nil), options: T.unsafe(nil), **payload, &block); end # source://activesupport//lib/active_support/cache.rb#762 def default_serializer; end # Deletes an entry from the cache implementation. Subclasses must # implement this method. # # @raise [NotImplementedError] # # source://activesupport//lib/active_support/cache.rb#856 def delete_entry(key, **options); end # Deletes multiples entries in the cache implementation. Subclasses MAY # implement this method. # # source://activesupport//lib/active_support/cache.rb#862 def delete_multi_entries(entries, **options); end # source://activesupport//lib/active_support/cache.rb#821 def deserialize_entry(payload, **_arg1); end # Expands key to be a consistent string value. Invokes +cache_key+ if # object responds to +cache_key+. Otherwise, +to_param+ method will be # called. If the key is a Hash, then keys will be sorted alphabetically. # # source://activesupport//lib/active_support/cache.rb#976 def expanded_key(key); end # source://activesupport//lib/active_support/cache.rb#997 def expanded_version(key); end # source://activesupport//lib/active_support/cache.rb#1050 def get_entry_value(entry, name, options); end # source://activesupport//lib/active_support/cache.rb#1034 def handle_expired_entry(entry, key, options); end # source://activesupport//lib/active_support/cache.rb#896 def handle_invalid_expires_in(message); end # source://activesupport//lib/active_support/cache.rb#1005 def instrument(operation, key, options = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/cache.rb#1009 def instrument_multi(operation, keys, options = T.unsafe(nil), &block); end # Adds the namespace defined in the options to a pattern designed to # match keys. Implementations that support delete_matched should call # this method to translate a pattern that matches names into one that # matches namespaced keys. # # source://activesupport//lib/active_support/cache.rb#785 def key_matcher(pattern, options); end # Merges the default options with ones specific to a method call. # # source://activesupport//lib/active_support/cache.rb#867 def merged_options(call_options); end # Prefix the key with a namespace string: # # namespace_key 'foo', namespace: 'cache' # # => 'cache:foo' # # With a namespace block: # # namespace_key 'foo', namespace: -> { 'cache' } # # => 'cache:foo' # # source://activesupport//lib/active_support/cache.rb#954 def namespace_key(key, options = T.unsafe(nil)); end # Expands and namespaces the cache key. # Raises an exception when the key is +nil+ or an empty string. # May be overridden by cache stores to do additional normalization. # # @raise [ArgumentError] # # source://activesupport//lib/active_support/cache.rb#938 def normalize_key(key, options = T.unsafe(nil)); end # Normalize aliased options to their canonical form # # source://activesupport//lib/active_support/cache.rb#907 def normalize_options(options); end # source://activesupport//lib/active_support/cache.rb#993 def normalize_version(key, options = T.unsafe(nil)); end # Reads an entry from the cache implementation. Subclasses must implement # this method. # # @raise [NotImplementedError] # # source://activesupport//lib/active_support/cache.rb#802 def read_entry(key, **options); end # Reads multiple entries from the cache implementation. Subclasses MAY # implement this method. # # source://activesupport//lib/active_support/cache.rb#829 def read_multi_entries(names, **options); end # source://activesupport//lib/active_support/cache.rb#1055 def save_block_result_to_cache(name, options); end # source://activesupport//lib/active_support/cache.rb#812 def serialize_entry(entry, **options); end # source://activesupport//lib/active_support/cache.rb#918 def validate_options(options); end # Writes an entry to the cache implementation. Subclasses must implement # this method. # # @raise [NotImplementedError] # # source://activesupport//lib/active_support/cache.rb#808 def write_entry(key, entry, **options); end # Writes multiple entries to the cache implementation. Subclasses MAY # implement this method. # # source://activesupport//lib/active_support/cache.rb#848 def write_multi_entries(hash, **options); end class << self # source://activesupport//lib/active_support/cache.rb#195 def logger; end # source://activesupport//lib/active_support/cache.rb#195 def logger=(val); end # source://activesupport//lib/active_support/cache.rb#196 def raise_on_invalid_cache_expiration_time; end # source://activesupport//lib/active_support/cache.rb#196 def raise_on_invalid_cache_expiration_time=(val); end private # source://activesupport//lib/active_support/cache.rb#206 def retrieve_pool_options(options); end end end # source://activesupport//lib/active_support/cache.rb#51 module ActiveSupport::Cache::Strategy; end # = Local \Cache \Strategy # # Caches that implement LocalCache will be backed by an in-memory cache for the # duration of a block. Repeated calls to the cache for the same key will hit the # in-memory cache for faster access. # # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#13 module ActiveSupport::Cache::Strategy::LocalCache # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#85 def cleanup(options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#79 def clear(options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#108 def decrement(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#91 def delete_matched(matcher, options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#97 def increment(name, amount = T.unsafe(nil), options = T.unsafe(nil)); end # Middleware class can be inserted as a Rack handler to be local cache for the # duration of request. # # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#73 def middleware; end # Use a local cache for the duration of block. # # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#67 def with_local_cache(&block); end private # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#185 def bypass_local_cache(&block); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#162 def delete_entry(key, **_arg1); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#181 def local_cache; end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#177 def local_cache_key; end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#134 def read_multi_entries(names, **options); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#120 def read_serialized_entry(key, raw: T.unsafe(nil), **options); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#189 def use_temporary_local_cache(temporary_cache); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#167 def write_cache_value(name, value, **options); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#153 def write_serialized_entry(key, payload, **_arg2); end end # Class for storing and registering the local caches. # # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#17 module ActiveSupport::Cache::Strategy::LocalCache::LocalCacheRegistry extend ::ActiveSupport::Cache::Strategy::LocalCache::LocalCacheRegistry # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#20 def cache_for(local_cache_key); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#25 def set_cache_for(local_cache_key, value); end end # = Local \Cache \Store # # Simple memory backed cache. This cache is not thread safe and is intended only # for serving as a temporary memory cache for a single thread. # # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#35 class ActiveSupport::Cache::Strategy::LocalCache::LocalStore # @return [LocalStore] a new instance of LocalStore # # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#36 def initialize; end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#40 def clear(options = T.unsafe(nil)); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#57 def delete_entry(key); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#61 def fetch_entry(key); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#44 def read_entry(key); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#48 def read_multi_entries(keys); end # source://activesupport//lib/active_support/cache/strategy/local_cache.rb#52 def write_entry(key, entry); end end # -- # This class wraps up local storage for middlewares. Only the middleware method should # construct them. # # source://activesupport//lib/active_support/cache/strategy/local_cache_middleware.rb#13 class ActiveSupport::Cache::Strategy::LocalCache::Middleware # @return [Middleware] a new instance of Middleware # # source://activesupport//lib/active_support/cache/strategy/local_cache_middleware.rb#16 def initialize(name, local_cache_key); end # source://activesupport//lib/active_support/cache/strategy/local_cache_middleware.rb#27 def call(env); end # source://activesupport//lib/active_support/cache/strategy/local_cache_middleware.rb#14 def local_cache_key; end # source://activesupport//lib/active_support/cache/strategy/local_cache_middleware.rb#14 def name; end # source://activesupport//lib/active_support/cache/strategy/local_cache_middleware.rb#22 def new(app); end end # These options mean something to all cache implementations. Individual cache # implementations may support additional options. # # source://activesupport//lib/active_support/cache.rb#26 ActiveSupport::Cache::UNIVERSAL_OPTIONS = T.let(T.unsafe(nil), Array) # Enables the dynamic configuration of Cache entry options while ensuring # that conflicting options are not both set. When a block is given to # ActiveSupport::Cache::Store#fetch, the second argument will be an # instance of +WriteOptions+. # # source://activesupport//lib/active_support/cache.rb#1071 class ActiveSupport::Cache::WriteOptions # @return [WriteOptions] a new instance of WriteOptions # # source://activesupport//lib/active_support/cache.rb#1072 def initialize(options); end # source://activesupport//lib/active_support/cache.rb#1096 def expires_at; end # Sets the Cache entry's +expires_at+ value. If an +expires_in+ option was # previously set, this will unset it since +expires_at+ and +expires_in+ # cannot both be set. # # source://activesupport//lib/active_support/cache.rb#1103 def expires_at=(expires_at); end # source://activesupport//lib/active_support/cache.rb#1084 def expires_in; end # Sets the Cache entry's +expires_in+ value. If an +expires_at+ option was # previously set, this will unset it since +expires_in+ and +expires_at+ # cannot both be set. # # source://activesupport//lib/active_support/cache.rb#1091 def expires_in=(expires_in); end # source://activesupport//lib/active_support/cache.rb#1076 def version; end # source://activesupport//lib/active_support/cache.rb#1080 def version=(version); end end # = Caching Key Generator # # CachingKeyGenerator is a wrapper around KeyGenerator which allows users to avoid # re-executing the key generation process when it's called using the same +salt+ and # +key_size+. # # source://activesupport//lib/active_support/key_generator.rb#55 class ActiveSupport::CachingKeyGenerator # @return [CachingKeyGenerator] a new instance of CachingKeyGenerator # # source://activesupport//lib/active_support/key_generator.rb#56 def initialize(key_generator); end # Returns a derived key suitable for use. # # source://activesupport//lib/active_support/key_generator.rb#62 def generate_key(*args); end end # = Active Support \Callbacks # # \Callbacks are code hooks that are run at key points in an object's life cycle. # The typical use case is to have a base class define a set of callbacks # relevant to the other functionality it supplies, so that subclasses can # install callbacks that enhance or modify the base functionality without # needing to override or redefine methods of the base class. # # Mixing in this module allows you to define the events in the object's # life cycle that will support callbacks (via ClassMethods#define_callbacks), # set the instance methods, procs, or callback objects to be called (via # ClassMethods#set_callback), and run the installed callbacks at the # appropriate times (via +run_callbacks+). # # By default callbacks are halted by throwing +:abort+. # See ClassMethods#define_callbacks for details. # # Three kinds of callbacks are supported: before callbacks, run before a # certain event; after callbacks, run after the event; and around callbacks, # blocks that surround the event, triggering it when they yield. Callback code # can be contained in instance methods, procs or lambdas, or callback objects # that respond to certain predetermined methods. See ClassMethods#set_callback # for details. # # class Record # include ActiveSupport::Callbacks # define_callbacks :save # # def save # run_callbacks :save do # puts "- save" # end # end # end # # class PersonRecord < Record # set_callback :save, :before, :saving_message # def saving_message # puts "saving..." # end # # set_callback :save, :after do |object| # puts "saved" # end # end # # person = PersonRecord.new # person.save # # Output: # saving... # - save # saved # # source://activesupport//lib/active_support/callbacks.rb#65 module ActiveSupport::Callbacks extend ::ActiveSupport::Concern include GeneratedInstanceMethods mixes_in_class_methods GeneratedClassMethods mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods mixes_in_class_methods ::ActiveSupport::DescendantsTracker # Runs the callbacks for the given event. # # Calls the before and around callbacks in the order they were set, yields # the block (if given one), and then runs the after callbacks in reverse # order. # # If the callback chain was halted, returns +false+. Otherwise returns the # result of the block, +nil+ if no callbacks have been set, or +true+ # if callbacks have been set but no block is given. # # run_callbacks :save do # save # end # # -- # # As this method is used in many places, and often wraps large portions of # user code, it has an additional design goal of minimizing its impact on # the visible call stack. An exception from inside a :before or :after # callback can be as noisy as it likes -- but when control has passed # smoothly through and into the supplied block, we want as little evidence # as possible that we were here. # # source://activesupport//lib/active_support/callbacks.rb#97 def run_callbacks(kind, type = T.unsafe(nil)); end private # A hook invoked every time a before callback is halted. # This can be overridden in ActiveSupport::Callbacks implementors in order # to provide better debugging/logging. # # source://activesupport//lib/active_support/callbacks.rb#150 def halted_callback_hook(filter, name); end module GeneratedClassMethods def __callbacks; end def __callbacks=(value); end def __callbacks?; end end module GeneratedInstanceMethods def __callbacks; end def __callbacks?; end end end # source://activesupport//lib/active_support/callbacks.rb#73 ActiveSupport::Callbacks::CALLBACK_FILTER_TYPES = T.let(T.unsafe(nil), Array) # A future invocation of user-supplied code (either as a callback, # or a condition filter). # # source://activesupport//lib/active_support/callbacks.rb#378 module ActiveSupport::Callbacks::CallTemplate class << self # Filters support: # # Symbols:: A method to call. # Procs:: A proc to call with the object. # Objects:: An object with a before_foo method on it to call. # # All of these objects are converted into a CallTemplate and handled # the same after this point. # # source://activesupport//lib/active_support/callbacks.rb#536 def build(filter, callback); end end end # source://activesupport//lib/active_support/callbacks.rb#437 class ActiveSupport::Callbacks::CallTemplate::InstanceExec0 # @return [InstanceExec0] a new instance of InstanceExec0 # # source://activesupport//lib/active_support/callbacks.rb#438 def initialize(block); end # source://activesupport//lib/active_support/callbacks.rb#442 def expand(target, value, block); end # source://activesupport//lib/active_support/callbacks.rb#452 def inverted_lambda; end # source://activesupport//lib/active_support/callbacks.rb#446 def make_lambda; end end # source://activesupport//lib/active_support/callbacks.rb#459 class ActiveSupport::Callbacks::CallTemplate::InstanceExec1 # @return [InstanceExec1] a new instance of InstanceExec1 # # source://activesupport//lib/active_support/callbacks.rb#460 def initialize(block); end # source://activesupport//lib/active_support/callbacks.rb#464 def expand(target, value, block); end # source://activesupport//lib/active_support/callbacks.rb#474 def inverted_lambda; end # source://activesupport//lib/active_support/callbacks.rb#468 def make_lambda; end end # source://activesupport//lib/active_support/callbacks.rb#481 class ActiveSupport::Callbacks::CallTemplate::InstanceExec2 # @return [InstanceExec2] a new instance of InstanceExec2 # # source://activesupport//lib/active_support/callbacks.rb#482 def initialize(block); end # @raise [ArgumentError] # # source://activesupport//lib/active_support/callbacks.rb#486 def expand(target, value, block); end # source://activesupport//lib/active_support/callbacks.rb#498 def inverted_lambda; end # source://activesupport//lib/active_support/callbacks.rb#491 def make_lambda; end end # source://activesupport//lib/active_support/callbacks.rb#379 class ActiveSupport::Callbacks::CallTemplate::MethodCall # @return [MethodCall] a new instance of MethodCall # # source://activesupport//lib/active_support/callbacks.rb#380 def initialize(method); end # Return the parts needed to make this call, with the given # input values. # # Returns an array of the form: # # [target, block, method, *arguments] # # This array can be used as such: # # target.send(method, *arguments, &block) # # The actual invocation is left up to the caller to minimize # call stack pollution. # # source://activesupport//lib/active_support/callbacks.rb#397 def expand(target, value, block); end # source://activesupport//lib/active_support/callbacks.rb#407 def inverted_lambda; end # source://activesupport//lib/active_support/callbacks.rb#401 def make_lambda; end end # source://activesupport//lib/active_support/callbacks.rb#414 class ActiveSupport::Callbacks::CallTemplate::ObjectCall # @return [ObjectCall] a new instance of ObjectCall # # source://activesupport//lib/active_support/callbacks.rb#415 def initialize(target, method); end # source://activesupport//lib/active_support/callbacks.rb#420 def expand(target, value, block); end # source://activesupport//lib/active_support/callbacks.rb#430 def inverted_lambda; end # source://activesupport//lib/active_support/callbacks.rb#424 def make_lambda; end end # source://activesupport//lib/active_support/callbacks.rb#506 class ActiveSupport::Callbacks::CallTemplate::ProcCall # @return [ProcCall] a new instance of ProcCall # # source://activesupport//lib/active_support/callbacks.rb#507 def initialize(target); end # source://activesupport//lib/active_support/callbacks.rb#511 def expand(target, value, block); end # source://activesupport//lib/active_support/callbacks.rb#521 def inverted_lambda; end # source://activesupport//lib/active_support/callbacks.rb#515 def make_lambda; end end # source://activesupport//lib/active_support/callbacks.rb#283 class ActiveSupport::Callbacks::Callback # @return [Callback] a new instance of Callback # # source://activesupport//lib/active_support/callbacks.rb#298 def initialize(name, filter, kind, options, chain_config); end # Wraps code with filter # # source://activesupport//lib/active_support/callbacks.rb#333 def apply(callback_sequence); end # Returns the value of attribute chain_config. # # source://activesupport//lib/active_support/callbacks.rb#296 def chain_config; end # source://activesupport//lib/active_support/callbacks.rb#347 def current_scopes; end # @return [Boolean] # # source://activesupport//lib/active_support/callbacks.rb#323 def duplicates?(other); end # Returns the value of attribute filter. # # source://activesupport//lib/active_support/callbacks.rb#296 def filter; end # Returns the value of attribute kind. # # source://activesupport//lib/active_support/callbacks.rb#295 def kind; end # Sets the attribute kind # # @param value the value to set the attribute kind to. # # source://activesupport//lib/active_support/callbacks.rb#295 def kind=(_arg0); end # @return [Boolean] # # source://activesupport//lib/active_support/callbacks.rb#319 def matches?(_kind, _filter); end # source://activesupport//lib/active_support/callbacks.rb#307 def merge_conditional_options(chain, if_option:, unless_option:); end # Returns the value of attribute name. # # source://activesupport//lib/active_support/callbacks.rb#295 def name; end # Sets the attribute name # # @param value the value to set the attribute name to. # # source://activesupport//lib/active_support/callbacks.rb#295 def name=(_arg0); end private # source://activesupport//lib/active_support/callbacks.rb#355 def check_conditionals(conditionals); end # source://activesupport//lib/active_support/callbacks.rb#370 def conditions_lambdas; end class << self # source://activesupport//lib/active_support/callbacks.rb#284 def build(chain, filter, kind, options); end end end # source://activesupport//lib/active_support/callbacks.rb#352 ActiveSupport::Callbacks::Callback::EMPTY_ARRAY = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/callbacks.rb#606 class ActiveSupport::Callbacks::CallbackChain include ::Enumerable # @return [CallbackChain] a new instance of CallbackChain # # source://activesupport//lib/active_support/callbacks.rb#611 def initialize(name, config); end # source://activesupport//lib/active_support/callbacks.rb#671 def append(*callbacks); end # source://activesupport//lib/active_support/callbacks.rb#639 def clear; end # source://activesupport//lib/active_support/callbacks.rb#653 def compile(type); end # Returns the value of attribute config. # # source://activesupport//lib/active_support/callbacks.rb#609 def config; end # source://activesupport//lib/active_support/callbacks.rb#633 def delete(o); end # source://activesupport//lib/active_support/callbacks.rb#623 def each(&block); end # @return [Boolean] # # source://activesupport//lib/active_support/callbacks.rb#625 def empty?; end # source://activesupport//lib/active_support/callbacks.rb#624 def index(o); end # source://activesupport//lib/active_support/callbacks.rb#627 def insert(index, o); end # Returns the value of attribute name. # # source://activesupport//lib/active_support/callbacks.rb#609 def name; end # source://activesupport//lib/active_support/callbacks.rb#675 def prepend(*callbacks); end protected # Returns the value of attribute chain. # # source://activesupport//lib/active_support/callbacks.rb#680 def chain; end private # source://activesupport//lib/active_support/callbacks.rb#683 def append_one(callback); end # source://activesupport//lib/active_support/callbacks.rb#703 def default_terminator; end # source://activesupport//lib/active_support/callbacks.rb#646 def initialize_copy(other); end # source://activesupport//lib/active_support/callbacks.rb#690 def prepend_one(callback); end # source://activesupport//lib/active_support/callbacks.rb#697 def remove_duplicates(callback); end end # Execute before and after filters in a sequence instead of # chaining them with nested lambda calls, see: # https://github.com/rails/rails/issues/18011 # # source://activesupport//lib/active_support/callbacks.rb#559 class ActiveSupport::Callbacks::CallbackSequence # @return [CallbackSequence] a new instance of CallbackSequence # # source://activesupport//lib/active_support/callbacks.rb#560 def initialize(nested = T.unsafe(nil), call_template = T.unsafe(nil), user_conditions = T.unsafe(nil)); end # source://activesupport//lib/active_support/callbacks.rb#574 def after(&after); end # source://activesupport//lib/active_support/callbacks.rb#579 def around(call_template, user_conditions); end # source://activesupport//lib/active_support/callbacks.rb#569 def before(&before); end # source://activesupport//lib/active_support/callbacks.rb#593 def expand_call_template(arg, block); end # @return [Boolean] # # source://activesupport//lib/active_support/callbacks.rb#589 def final?; end # source://activesupport//lib/active_support/callbacks.rb#601 def invoke_after(arg); end # source://activesupport//lib/active_support/callbacks.rb#597 def invoke_before(arg); end # Returns the value of attribute nested. # # source://activesupport//lib/active_support/callbacks.rb#587 def nested; end # @return [Boolean] # # source://activesupport//lib/active_support/callbacks.rb#583 def skip?(arg); end end # source://activesupport//lib/active_support/callbacks.rb#715 module ActiveSupport::Callbacks::ClassMethods # This is used internally to append, prepend and skip callbacks to the # CallbackChain. # # source://activesupport//lib/active_support/callbacks.rb#725 def __update_callbacks(name); end # Define sets of events in the object life cycle that support callbacks. # # define_callbacks :validate # define_callbacks :initialize, :save, :destroy # # ===== Options # # * :terminator - Determines when a before filter will halt the # callback chain, preventing following before and around callbacks from # being called and the event from being triggered. # This should be a lambda to be executed. # The current object and the result lambda of the callback will be provided # to the terminator lambda. # # define_callbacks :validate, terminator: ->(target, result_lambda) { result_lambda.call == false } # # In this example, if any before validate callbacks returns +false+, # any successive before and around callback is not executed. # # The default terminator halts the chain when a callback throws +:abort+. # # * :skip_after_callbacks_if_terminated - Determines if after # callbacks should be terminated by the :terminator option. By # default after callbacks are executed no matter if callback chain was # terminated or not. This option has no effect if :terminator # option is set to +nil+. # # * :scope - Indicates which methods should be executed when an # object is used as a callback. # # class Audit # def before(caller) # puts 'Audit: before is called' # end # # def before_save(caller) # puts 'Audit: before_save is called' # end # end # # class Account # include ActiveSupport::Callbacks # # define_callbacks :save # set_callback :save, :before, Audit.new # # def save # run_callbacks :save do # puts 'save in main' # end # end # end # # In the above case whenever you save an account the method # Audit#before will be called. On the other hand # # define_callbacks :save, scope: [:kind, :name] # # would trigger Audit#before_save instead. That's constructed # by calling #{kind}_#{name} on the given instance. In this # case "kind" is "before" and "name" is "save". In this context +:kind+ # and +:name+ have special meanings: +:kind+ refers to the kind of # callback (before/after/around) and +:name+ refers to the method on # which callbacks are being defined. # # A declaration like # # define_callbacks :save, scope: [:name] # # would call Audit#save. # # ===== Notes # # +names+ passed to +define_callbacks+ must not end with # !, ? or =. # # Calling +define_callbacks+ multiple times with the same +names+ will # overwrite previous callbacks registered with #set_callback. # # source://activesupport//lib/active_support/callbacks.rb#940 def define_callbacks(*names); end # source://activesupport//lib/active_support/callbacks.rb#716 def normalize_callback_params(filters, block); end # Remove all set callbacks for the given event. # # source://activesupport//lib/active_support/callbacks.rb#850 def reset_callbacks(name); end # Install a callback for the given event. # # set_callback :save, :before, :before_method # set_callback :save, :after, :after_method, if: :condition # set_callback :save, :around, ->(r, block) { stuff; result = block.call; stuff } # # The second argument indicates whether the callback is to be run +:before+, # +:after+, or +:around+ the event. If omitted, +:before+ is assumed. This # means the first example above can also be written as: # # set_callback :save, :before_method # # The callback can be specified as a symbol naming an instance method; as a # proc, lambda, or block; or as an object that responds to a certain method # determined by the :scope argument to #define_callbacks. # # If a proc, lambda, or block is given, its body is evaluated in the context # of the current object. It can also optionally accept the current object as # an argument. # # Before and around callbacks are called in the order that they are set; # after callbacks are called in the reverse order. # # Around callbacks can access the return value from the event, if it # wasn't halted, from the +yield+ call. # # ===== Options # # * :if - A symbol or an array of symbols, each naming an instance # method or a proc; the callback will be called only when they all return # a true value. # # If a proc is given, its body is evaluated in the context of the # current object. It can also optionally accept the current object as # an argument. # * :unless - A symbol or an array of symbols, each naming an # instance method or a proc; the callback will be called only when they # all return a false value. # # If a proc is given, its body is evaluated in the context of the # current object. It can also optionally accept the current object as # an argument. # * :prepend - If +true+, the callback will be prepended to the # existing chain rather than appended. # # source://activesupport//lib/active_support/callbacks.rb#776 def set_callback(name, *filter_list, &block); end # Skip a previously set callback. Like #set_callback, :if or # :unless options may be passed in order to control when the # callback is skipped. # # Note: this example uses +PersonRecord+ and +#saving_message+, which you # can see defined here[rdoc-ref:ActiveSupport::Callbacks] # # class Writer < PersonRecord # attr_accessor :age # skip_callback :save, :before, :saving_message, if: -> { age > 18 } # end # # When if option returns true, callback is skipped. # # writer = Writer.new # writer.age = 20 # writer.save # # Output: # - save # saved # # When if option returns false, callback is NOT skipped. # # young_writer = Writer.new # young_writer.age = 17 # young_writer.save # # Output: # saving... # - save # saved # # An ArgumentError will be raised if the callback has not # already been set (unless the :raise option is set to false). # # source://activesupport//lib/active_support/callbacks.rb#825 def skip_callback(name, *filter_list, &block); end protected # source://activesupport//lib/active_support/callbacks.rb#971 def get_callbacks(name); end # source://activesupport//lib/active_support/callbacks.rb#975 def set_callbacks(name, callbacks); end end # source://activesupport//lib/active_support/callbacks.rb#153 module ActiveSupport::Callbacks::Conditionals; end # source://activesupport//lib/active_support/callbacks.rb#154 class ActiveSupport::Callbacks::Conditionals::Value # @return [Value] a new instance of Value # # source://activesupport//lib/active_support/callbacks.rb#155 def initialize(&block); end # source://activesupport//lib/active_support/callbacks.rb#158 def call(target, value); end end # source://activesupport//lib/active_support/callbacks.rb#162 module ActiveSupport::Callbacks::Filters; end # source://activesupport//lib/active_support/callbacks.rb#215 class ActiveSupport::Callbacks::Filters::After class << self # source://activesupport//lib/active_support/callbacks.rb#216 def build(callback_sequence, user_callback, user_conditions, chain_config); end private # source://activesupport//lib/active_support/callbacks.rb#258 def conditional(callback_sequence, user_callback, user_conditions); end # source://activesupport//lib/active_support/callbacks.rb#247 def halting(callback_sequence, user_callback); end # source://activesupport//lib/active_support/callbacks.rb#232 def halting_and_conditional(callback_sequence, user_callback, user_conditions); end # source://activesupport//lib/active_support/callbacks.rb#272 def simple(callback_sequence, user_callback); end end end # source://activesupport//lib/active_support/callbacks.rb#165 class ActiveSupport::Callbacks::Filters::Before class << self # source://activesupport//lib/active_support/callbacks.rb#166 def build(callback_sequence, user_callback, user_conditions, chain_config, filter, name); end private # source://activesupport//lib/active_support/callbacks.rb#195 def halting(callback_sequence, user_callback, halted_lambda, filter, name); end # source://activesupport//lib/active_support/callbacks.rb#176 def halting_and_conditional(callback_sequence, user_callback, user_conditions, halted_lambda, filter, name); end end end # source://activesupport//lib/active_support/callbacks.rb#163 class ActiveSupport::Callbacks::Filters::Environment < ::Struct # Returns the value of attribute halted # # @return [Object] the current value of halted def halted; end # Sets the attribute halted # # @param value [Object] the value to set the attribute halted to. # @return [Object] the newly set value def halted=(_); end # Returns the value of attribute target # # @return [Object] the current value of target def target; end # Sets the attribute target # # @param value [Object] the value to set the attribute target to. # @return [Object] the newly set value def target=(_); end # Returns the value of attribute value # # @return [Object] the current value of value def value; end # Sets the attribute value # # @param value [Object] the value to set the attribute value to. # @return [Object] the newly set value def value=(_); end class << self def [](*_arg0); end def inspect; end def keyword_init?; end def members; end def new(*_arg0); end end end # source://activesupport//lib/active_support/code_generator.rb#4 class ActiveSupport::CodeGenerator # @return [CodeGenerator] a new instance of CodeGenerator # # source://activesupport//lib/active_support/code_generator.rb#48 def initialize(owner, path, line); end # source://activesupport//lib/active_support/code_generator.rb#55 def define_cached_method(name, namespace:, as: T.unsafe(nil), &block); end # source://activesupport//lib/active_support/code_generator.rb#59 def execute; end class << self # source://activesupport//lib/active_support/code_generator.rb#36 def batch(owner, path, line); end end end # source://activesupport//lib/active_support/code_generator.rb#5 class ActiveSupport::CodeGenerator::MethodSet # @return [MethodSet] a new instance of MethodSet # # source://activesupport//lib/active_support/code_generator.rb#8 def initialize(namespace); end # source://activesupport//lib/active_support/code_generator.rb#25 def apply(owner, path, line); end # source://activesupport//lib/active_support/code_generator.rb#14 def define_cached_method(name, as: T.unsafe(nil)); end end # source://activesupport//lib/active_support/code_generator.rb#6 ActiveSupport::CodeGenerator::MethodSet::METHOD_CACHES = T.let(T.unsafe(nil), Hash) # = Active Support \Concern # # A typical module looks like this: # # module M # def self.included(base) # base.extend ClassMethods # base.class_eval do # scope :disabled, -> { where(disabled: true) } # end # end # # module ClassMethods # ... # end # end # # By using +ActiveSupport::Concern+ the above module could instead be # written as: # # require "active_support/concern" # # module M # extend ActiveSupport::Concern # # included do # scope :disabled, -> { where(disabled: true) } # end # # class_methods do # ... # end # end # # Moreover, it gracefully handles module dependencies. Given a +Foo+ module # and a +Bar+ module which depends on the former, we would typically write the # following: # # module Foo # def self.included(base) # base.class_eval do # def self.method_injected_by_foo # ... # end # end # end # end # # module Bar # def self.included(base) # base.method_injected_by_foo # end # end # # class Host # include Foo # We need to include this dependency for Bar # include Bar # Bar is the module that Host really needs # end # # But why should +Host+ care about +Bar+'s dependencies, namely +Foo+? We # could try to hide these from +Host+ directly including +Foo+ in +Bar+: # # module Bar # include Foo # def self.included(base) # base.method_injected_by_foo # end # end # # class Host # include Bar # end # # Unfortunately this won't work, since when +Foo+ is included, its base # is the +Bar+ module, not the +Host+ class. With +ActiveSupport::Concern+, # module dependencies are properly resolved: # # require "active_support/concern" # # module Foo # extend ActiveSupport::Concern # included do # def self.method_injected_by_foo # ... # end # end # end # # module Bar # extend ActiveSupport::Concern # include Foo # # included do # self.method_injected_by_foo # end # end # # class Host # include Bar # It works, now Bar takes care of its dependencies # end # # === Prepending concerns # # Just like include, concerns also support prepend with a corresponding # prepended do callback. module ClassMethods or class_methods do are # prepended as well. # # prepend is also used for any dependencies. # # source://activesupport//lib/active_support/concern.rb#112 module ActiveSupport::Concern # source://activesupport//lib/active_support/concern.rb#129 def append_features(base); end # Define class methods from given block. # You can define private class methods as well. # # module Example # extend ActiveSupport::Concern # # class_methods do # def foo; puts 'foo'; end # # private # def bar; puts 'bar'; end # end # end # # class Buzz # include Example # end # # Buzz.foo # => "foo" # Buzz.bar # => private method 'bar' called for Buzz:Class(NoMethodError) # # source://activesupport//lib/active_support/concern.rb#209 def class_methods(&class_methods_module_definition); end # Evaluate given block in context of base class, # so that you can write class macros here. # When you define more than one +included+ block, it raises an exception. # # source://activesupport//lib/active_support/concern.rb#158 def included(base = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/concern.rb#142 def prepend_features(base); end # Evaluate given block in context of base class, # so that you can write class macros here. # When you define more than one +prepended+ block, it raises an exception. # # source://activesupport//lib/active_support/concern.rb#175 def prepended(base = T.unsafe(nil), &block); end class << self # source://activesupport//lib/active_support/concern.rb#125 def extended(base); end end end # source://activesupport//lib/active_support/concern.rb#113 class ActiveSupport::Concern::MultipleIncludedBlocks < ::StandardError # @return [MultipleIncludedBlocks] a new instance of MultipleIncludedBlocks # # source://activesupport//lib/active_support/concern.rb#114 def initialize; end end # source://activesupport//lib/active_support/concern.rb#119 class ActiveSupport::Concern::MultiplePrependBlocks < ::StandardError # @return [MultiplePrependBlocks] a new instance of MultiplePrependBlocks # # source://activesupport//lib/active_support/concern.rb#120 def initialize; end end # source://activesupport//lib/active_support/concurrency/share_lock.rb#7 module ActiveSupport::Concurrency; end # A share/exclusive lock, otherwise known as a read/write lock. # # https://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock # # source://activesupport//lib/active_support/concurrency/share_lock.rb#11 class ActiveSupport::Concurrency::ShareLock include ::MonitorMixin # @return [ShareLock] a new instance of ShareLock # # source://activesupport//lib/active_support/concurrency/share_lock.rb#50 def initialize; end # Execute the supplied block while holding the Exclusive lock. If # +no_wait+ is set and the lock is not immediately available, # returns +nil+ without yielding. Otherwise, returns the result of # the block. # # See +start_exclusive+ for other options. # # source://activesupport//lib/active_support/concurrency/share_lock.rb#148 def exclusive(purpose: T.unsafe(nil), compatible: T.unsafe(nil), after_compatible: T.unsafe(nil), no_wait: T.unsafe(nil)); end # We track Thread objects, instead of just using counters, because # we need exclusive locks to be reentrant, and we need to be able # to upgrade share locks to exclusive. # # source://activesupport//lib/active_support/concurrency/share_lock.rb#18 def raw_state; end # Execute the supplied block while holding the Share lock. # # source://activesupport//lib/active_support/concurrency/share_lock.rb#159 def sharing; end # Returns false if +no_wait+ is set and the lock is not # immediately available. Otherwise, returns true after the lock # has been acquired. # # +purpose+ and +compatible+ work together; while this thread is # waiting for the exclusive lock, it will yield its share (if any) # to any other attempt whose +purpose+ appears in this attempt's # +compatible+ list. This allows a "loose" upgrade, which, being # less strict, prevents some classes of deadlocks. # # For many resources, loose upgrades are sufficient: if a thread # is awaiting a lock, it is not running any other code. With # +purpose+ matching, it is possible to yield only to other # threads whose activity will not interfere. # # source://activesupport//lib/active_support/concurrency/share_lock.rb#76 def start_exclusive(purpose: T.unsafe(nil), compatible: T.unsafe(nil), no_wait: T.unsafe(nil)); end # source://activesupport//lib/active_support/concurrency/share_lock.rb#114 def start_sharing; end # Relinquish the exclusive lock. Must only be called by the thread # that called start_exclusive (and currently holds the lock). # # source://activesupport//lib/active_support/concurrency/share_lock.rb#96 def stop_exclusive(compatible: T.unsafe(nil)); end # source://activesupport//lib/active_support/concurrency/share_lock.rb#131 def stop_sharing; end # Temporarily give up all held Share locks while executing the # supplied block, allowing any +compatible+ exclusive lock request # to proceed. # # source://activesupport//lib/active_support/concurrency/share_lock.rb#171 def yield_shares(purpose: T.unsafe(nil), compatible: T.unsafe(nil), block_share: T.unsafe(nil)); end private # Must be called within synchronize # # @return [Boolean] # # source://activesupport//lib/active_support/concurrency/share_lock.rb#204 def busy_for_exclusive?(purpose); end # @return [Boolean] # # source://activesupport//lib/active_support/concurrency/share_lock.rb#209 def busy_for_sharing?(purpose); end # @return [Boolean] # # source://activesupport//lib/active_support/concurrency/share_lock.rb#214 def eligible_waiters?(compatible); end # source://activesupport//lib/active_support/concurrency/share_lock.rb#218 def wait_for(method, &block); end end # = Active Support \Configurable # # Configurable provides a config method to store and retrieve # configuration options as an OrderedOptions. # # source://activesupport//lib/active_support/configurable.rb#11 module ActiveSupport::Configurable extend ::ActiveSupport::Concern mixes_in_class_methods ::ActiveSupport::Configurable::ClassMethods # Reads and writes attributes from a configuration OrderedOptions. # # require "active_support/configurable" # # class User # include ActiveSupport::Configurable # end # # user = User.new # # user.config.allowed_access = true # user.config.level = 1 # # user.config.allowed_access # => true # user.config.level # => 1 # # source://activesupport//lib/active_support/configurable.rb#155 def config; end end # source://activesupport//lib/active_support/configurable.rb#29 module ActiveSupport::Configurable::ClassMethods # source://activesupport//lib/active_support/configurable.rb#30 def config; end # @yield [config] # # source://activesupport//lib/active_support/configurable.rb#39 def configure; end private # Allows you to add shortcut so that you don't have to refer to attribute # through config. Also look at the example for config to contrast. # # Defines both class and instance config accessors. # # class User # include ActiveSupport::Configurable # config_accessor :allowed_access # end # # User.allowed_access # => nil # User.allowed_access = false # User.allowed_access # => false # # user = User.new # user.allowed_access # => false # user.allowed_access = true # user.allowed_access # => true # # User.allowed_access # => false # # The attribute name must be a valid method name in Ruby. # # class User # include ActiveSupport::Configurable # config_accessor :"1_Badname" # end # # => NameError: invalid config attribute name # # To omit the instance writer method, pass instance_writer: false. # To omit the instance reader method, pass instance_reader: false. # # class User # include ActiveSupport::Configurable # config_accessor :allowed_access, instance_reader: false, instance_writer: false # end # # User.allowed_access = false # User.allowed_access # => false # # User.new.allowed_access = true # => NoMethodError # User.new.allowed_access # => NoMethodError # # Or pass instance_accessor: false, to omit both instance methods. # # class User # include ActiveSupport::Configurable # config_accessor :allowed_access, instance_accessor: false # end # # User.allowed_access = false # User.allowed_access # => false # # User.new.allowed_access = true # => NoMethodError # User.new.allowed_access # => NoMethodError # # Also you can pass default or a block to set up the attribute with a default value. # # class User # include ActiveSupport::Configurable # config_accessor :allowed_access, default: false # config_accessor :hair_colors do # [:brown, :black, :blonde, :red] # end # end # # User.allowed_access # => false # User.hair_colors # => [:brown, :black, :blonde, :red] # # source://activesupport//lib/active_support/configurable.rb#111 def config_accessor(*names, instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil)); end # source://activesupport//lib/active_support/configurable.rb#132 def inherited(subclass); end end # source://activesupport//lib/active_support/configurable.rb#14 class ActiveSupport::Configurable::Configuration < ::ActiveSupport::InheritableOptions # source://activesupport//lib/active_support/configurable.rb#15 def compile_methods!; end class << self # Compiles reader methods so we don't have to go through method_missing. # # source://activesupport//lib/active_support/configurable.rb#20 def compile_methods!(keys); end end end # Reads a YAML configuration file, evaluating any ERB, then # parsing the resulting YAML. # # Warns in case of YAML confusing characters, like invisible # non-breaking spaces. # # source://activesupport//lib/active_support/configuration_file.rb#9 class ActiveSupport::ConfigurationFile # @return [ConfigurationFile] a new instance of ConfigurationFile # # source://activesupport//lib/active_support/configuration_file.rb#12 def initialize(content_path); end # source://activesupport//lib/active_support/configuration_file.rb#21 def parse(context: T.unsafe(nil), **options); end private # source://activesupport//lib/active_support/configuration_file.rb#35 def read(content_path); end # source://activesupport//lib/active_support/configuration_file.rb#46 def render(context); end class << self # source://activesupport//lib/active_support/configuration_file.rb#17 def parse(content_path, **options); end end end # source://activesupport//lib/active_support/configuration_file.rb#10 class ActiveSupport::ConfigurationFile::FormatError < ::StandardError; end # source://activesupport//lib/active_support/core_ext/erb/util.rb#6 module ActiveSupport::CoreExt; end # source://activesupport//lib/active_support/core_ext/erb/util.rb#7 module ActiveSupport::CoreExt::ERBUtil # A utility method for escaping HTML tag characters. # This method is also aliased as h. # # puts html_escape('is a > 0 & a < 10?') # # => is a > 0 & a < 10? # # source://activesupport//lib/active_support/core_ext/erb/util.rb#25 def h(s); end # A utility method for escaping HTML tag characters. # This method is also aliased as h. # # puts html_escape('is a > 0 & a < 10?') # # => is a > 0 & a < 10? # # source://activesupport//lib/active_support/core_ext/erb/util.rb#25 def html_escape(s); end # HTML escapes strings but doesn't wrap them with an ActiveSupport::SafeBuffer. # This method is not for public consumption! Seriously! # # source://activesupport//lib/active_support/core_ext/erb/util.rb#10 def unwrapped_html_escape(s); end end # source://activesupport//lib/active_support/core_ext/erb/util.rb#31 module ActiveSupport::CoreExt::ERBUtilPrivate include ::ActiveSupport::CoreExt::ERBUtil private # source://activesupport//lib/active_support/core_ext/erb/util.rb#25 def h(s); end # source://activesupport//lib/active_support/core_ext/erb/util.rb#25 def html_escape(s); end # source://activesupport//lib/active_support/core_ext/erb/util.rb#10 def unwrapped_html_escape(s); end end # = Current Attributes # # Abstract super class that provides a thread-isolated attributes singleton, which resets automatically # before and after each request. This allows you to keep all the per-request attributes easily # available to the whole system. # # The following full app-like example demonstrates how to use a Current class to # facilitate easy access to the global, per-request attributes without passing them deeply # around everywhere: # # # app/models/current.rb # class Current < ActiveSupport::CurrentAttributes # attribute :account, :user # attribute :request_id, :user_agent, :ip_address # # resets { Time.zone = nil } # # def user=(user) # super # self.account = user.account # Time.zone = user.time_zone # end # end # # # app/controllers/concerns/authentication.rb # module Authentication # extend ActiveSupport::Concern # # included do # before_action :authenticate # end # # private # def authenticate # if authenticated_user = User.find_by(id: cookies.encrypted[:user_id]) # Current.user = authenticated_user # else # redirect_to new_session_url # end # end # end # # # app/controllers/concerns/set_current_request_details.rb # module SetCurrentRequestDetails # extend ActiveSupport::Concern # # included do # before_action do # Current.request_id = request.uuid # Current.user_agent = request.user_agent # Current.ip_address = request.ip # end # end # end # # class ApplicationController < ActionController::Base # include Authentication # include SetCurrentRequestDetails # end # # class MessagesController < ApplicationController # def create # Current.account.messages.create(message_params) # end # end # # class Message < ApplicationRecord # belongs_to :creator, default: -> { Current.user } # after_create { |message| Event.create(record: message) } # end # # class Event < ApplicationRecord # before_create do # self.request_id = Current.request_id # self.user_agent = Current.user_agent # self.ip_address = Current.ip_address # end # end # # A word of caution: It's easy to overdo a global singleton like Current and tangle your model as a result. # Current should only be used for a few, top-level globals, like account, user, and request details. # The attributes stuck in Current should be used by more or less all actions on all requests. If you start # sticking controller-specific attributes in there, you're going to create a mess. # # source://activesupport//lib/active_support/current_attributes.rb#91 class ActiveSupport::CurrentAttributes include ::ActiveSupport::Callbacks extend ::ActiveSupport::Callbacks::ClassMethods extend ::ActiveSupport::DescendantsTracker # @return [CurrentAttributes] a new instance of CurrentAttributes # # source://activesupport//lib/active_support/current_attributes.rb#197 def initialize; end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks; end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks?; end # source://activesupport//lib/active_support/callbacks.rb#963 def _reset_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#951 def _run_reset_callbacks(&block); end # Returns the value of attribute attributes. # # source://activesupport//lib/active_support/current_attributes.rb#195 def attributes; end # Sets the attribute attributes # # @param value the value to set the attribute attributes to. # # source://activesupport//lib/active_support/current_attributes.rb#195 def attributes=(_arg0); end # Reset all attributes. Should be called before and after actions, when used as a per-request singleton. # # source://activesupport//lib/active_support/current_attributes.rb#220 def reset; end # Expose one or more attributes within a block. Old values are returned after the block concludes. # Example demonstrating the common use of needing to set Current attributes outside the request-cycle: # # class Chat::PublicationJob < ApplicationJob # def perform(attributes, room_number, creator) # Current.set(person: creator) do # Chat::Publisher.publish(attributes: attributes, room_number: room_number) # end # end # end # # source://activesupport//lib/active_support/current_attributes.rb#211 def set(set_attributes); end private # source://activesupport//lib/active_support/current_attributes.rb#227 def assign_attributes(new_attributes); end # source://activesupport//lib/active_support/current_attributes.rb#231 def compute_attributes(keys); end class << self # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks; end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks=(value); end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks?; end # source://activesupport//lib/active_support/callbacks.rb#955 def _reset_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#959 def _reset_callbacks=(value); end # Calls this callback after #reset is called on the instance. Used for resetting external collaborators, like Time.zone. # # source://activesupport//lib/active_support/current_attributes.rb#151 def after_reset(*methods, &block); end # Declares one or more attributes that will be given both class and instance accessor methods. # # source://activesupport//lib/active_support/current_attributes.rb#104 def attribute(*names); end # Calls this callback before #reset is called on the instance. Used for resetting external collaborators that depend on current values. # # source://activesupport//lib/active_support/current_attributes.rb#146 def before_reset(*methods, &block); end # source://activesupport//lib/active_support/current_attributes.rb#162 def clear_all; end # Returns singleton instance for this class in this thread. If none exists, one is created. # # source://activesupport//lib/active_support/current_attributes.rb#99 def instance; end # source://activesupport//lib/active_support/current_attributes.rb#156 def reset(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/current_attributes.rb#158 def reset_all; end # Calls this callback after #reset is called on the instance. Used for resetting external collaborators, like Time.zone. # # source://activesupport//lib/active_support/current_attributes.rb#151 def resets(*methods, &block); end # source://activesupport//lib/active_support/current_attributes.rb#156 def set(*_arg0, **_arg1, &_arg2); end private # source://activesupport//lib/active_support/current_attributes.rb#172 def current_instances; end # source://activesupport//lib/active_support/current_attributes.rb#176 def current_instances_key; end # source://activesupport//lib/active_support/current_attributes.rb#168 def generated_attribute_methods; end # source://activesupport//lib/active_support/current_attributes.rb#180 def method_missing(name, *args, **_arg2, &block); end # @return [Boolean] # # source://activesupport//lib/active_support/current_attributes.rb#190 def respond_to_missing?(name, _); end end end # source://activesupport//lib/active_support/current_attributes.rb#95 ActiveSupport::CurrentAttributes::INVALID_ATTRIBUTE_NAMES = T.let(T.unsafe(nil), Array) # Provides +deep_merge+ and +deep_merge!+ methods. Expects the including class # to provide a merge!(other, &block) method. # # source://activesupport//lib/active_support/deep_mergeable.rb#6 module ActiveSupport::DeepMergeable # Returns a new instance with the values from +other+ merged recursively. # # class Hash # include ActiveSupport::DeepMergeable # end # # hash_1 = { a: true, b: { c: [1, 2, 3] } } # hash_2 = { a: false, b: { x: [3, 4, 5] } } # # hash_1.deep_merge(hash_2) # # => { a: false, b: { c: [1, 2, 3], x: [3, 4, 5] } } # # A block can be provided to merge non-DeepMergeable values: # # hash_1 = { a: 100, b: 200, c: { c1: 100 } } # hash_2 = { b: 250, c: { c1: 200 } } # # hash_1.deep_merge(hash_2) do |key, this_val, other_val| # this_val + other_val # end # # => { a: 100, b: 450, c: { c1: 300 } } # # source://activesupport//lib/active_support/deep_mergeable.rb#29 def deep_merge(other, &block); end # Same as #deep_merge, but modifies +self+. # # source://activesupport//lib/active_support/deep_mergeable.rb#34 def deep_merge!(other, &block); end # Returns true if +other+ can be deep merged into +self+. Classes may # override this method to restrict or expand the domain of deep mergeable # values. Defaults to checking that +other+ is of type +self.class+. # # @return [Boolean] # # source://activesupport//lib/active_support/deep_mergeable.rb#49 def deep_merge?(other); end end # source://activesupport//lib/active_support/dependencies/interlock.rb#6 module ActiveSupport::Dependencies class << self # source://activesupport//lib/active_support/dependencies.rb#62 def _autoloaded_tracked_classes; end # source://activesupport//lib/active_support/dependencies.rb#62 def _autoloaded_tracked_classes=(_arg0); end # source://activesupport//lib/active_support/dependencies.rb#56 def _eager_load_paths; end # source://activesupport//lib/active_support/dependencies.rb#56 def _eager_load_paths=(_arg0); end # source://activesupport//lib/active_support/dependencies.rb#49 def autoload_once_paths; end # source://activesupport//lib/active_support/dependencies.rb#49 def autoload_once_paths=(_arg0); end # source://activesupport//lib/active_support/dependencies.rb#43 def autoload_paths; end # source://activesupport//lib/active_support/dependencies.rb#43 def autoload_paths=(_arg0); end # source://activesupport//lib/active_support/dependencies.rb#69 def autoloader; end # source://activesupport//lib/active_support/dependencies.rb#69 def autoloader=(_arg0); end # Private method that reloads constants autoloaded by the main autoloader. # # Rails.application.reloader.reload! is the public interface for application # reload. That involves more things, like deleting unloaded classes from the # internal state of the descendants tracker, or reloading routes. # # source://activesupport//lib/active_support/dependencies.rb#76 def clear; end # Private method that helps configuring the autoloaders. # # @return [Boolean] # # source://activesupport//lib/active_support/dependencies.rb#94 def eager_load?(path); end # source://activesupport//lib/active_support/dependencies.rb#10 def interlock; end # source://activesupport//lib/active_support/dependencies.rb#10 def interlock=(_arg0); end # Execute the supplied block while holding an exclusive lock, # preventing any other thread from being inside a #run_interlock # block at the same time. # # source://activesupport//lib/active_support/dependencies.rb#24 def load_interlock(&block); end # Execute the supplied block without interference from any # concurrent loads. # # source://activesupport//lib/active_support/dependencies.rb#17 def run_interlock(&block); end # Private method used by require_dependency. # # source://activesupport//lib/active_support/dependencies.rb#84 def search_for_file(relpath); end # Execute the supplied block while holding an exclusive lock, # preventing any other thread from being inside a #run_interlock # block at the same time. # # source://activesupport//lib/active_support/dependencies.rb#31 def unload_interlock(&block); end end end # source://activesupport//lib/active_support/dependencies/interlock.rb#7 class ActiveSupport::Dependencies::Interlock # @return [Interlock] a new instance of Interlock # # source://activesupport//lib/active_support/dependencies/interlock.rb#8 def initialize; end # source://activesupport//lib/active_support/dependencies/interlock.rb#32 def done_running; end # source://activesupport//lib/active_support/dependencies/interlock.rb#24 def done_unloading; end # source://activesupport//lib/active_support/dependencies/interlock.rb#12 def loading(&block); end # source://activesupport//lib/active_support/dependencies/interlock.rb#40 def permit_concurrent_loads(&block); end # source://activesupport//lib/active_support/dependencies/interlock.rb#44 def raw_state(&block); end # source://activesupport//lib/active_support/dependencies/interlock.rb#36 def running(&block); end # source://activesupport//lib/active_support/dependencies/interlock.rb#28 def start_running; end # source://activesupport//lib/active_support/dependencies/interlock.rb#20 def start_unloading; end # source://activesupport//lib/active_support/dependencies/interlock.rb#16 def unloading(&block); end end # source://activesupport//lib/active_support/dependencies/require_dependency.rb#3 module ActiveSupport::Dependencies::RequireDependency # Warning: This method is obsolete. The semantics of the autoloader # match Ruby's and you do not need to be defensive with load order anymore. # Just refer to classes and modules normally. # # Engines that do not control the mode in which their parent application runs # should call +require_dependency+ where needed in case the runtime mode is # +:classic+. # # source://activesupport//lib/active_support/dependencies/require_dependency.rb#11 def require_dependency(filename); end end # = Active Support \Deprecation # # \Deprecation specifies the API used by \Rails to deprecate methods, instance variables, objects, and constants. It's # also available for gems or applications. # # For a gem, use Deprecation.new to create a Deprecation object and store it in your module or class (in order for # users to be able to configure it). # # module MyLibrary # def self.deprecator # @deprecator ||= ActiveSupport::Deprecation.new("2.0", "MyLibrary") # end # end # # For a Railtie or Engine, you may also want to add it to the application's deprecators, so that the application's # configuration can be applied to it. # # module MyLibrary # class Railtie < Rails::Railtie # initializer "my_library.deprecator" do |app| # app.deprecators[:my_library] = MyLibrary.deprecator # end # end # end # # With the above initializer, configuration settings like the following will affect +MyLibrary.deprecator+: # # # in config/environments/test.rb # config.active_support.deprecation = :raise # # source://activesupport//lib/active_support/deprecation.rb#35 class ActiveSupport::Deprecation include ::ActiveSupport::Deprecation::InstanceDelegator include ::ActiveSupport::Deprecation::Behavior include ::ActiveSupport::Deprecation::Reporting include ::ActiveSupport::Deprecation::Disallowed include ::ActiveSupport::Deprecation::MethodWrapper extend ::ActiveSupport::Deprecation::InstanceDelegator::ClassMethods extend ::ActiveSupport::Deprecation::InstanceDelegator::OverrideDelegators # It accepts two parameters on initialization. The first is a version of library # and the second is a library name. # # ActiveSupport::Deprecation.new('2.0', 'MyLibrary') # # @return [Deprecation] a new instance of Deprecation # # source://activesupport//lib/active_support/deprecation.rb#68 def initialize(deprecation_horizon = T.unsafe(nil), gem_name = T.unsafe(nil)); end # The version number in which the deprecated behavior will be removed, by default. # # source://activesupport//lib/active_support/deprecation.rb#62 def deprecation_horizon; end # The version number in which the deprecated behavior will be removed, by default. # # source://activesupport//lib/active_support/deprecation.rb#62 def deprecation_horizon=(_arg0); end class << self # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def allow(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def begin_silence(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def behavior(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def behavior=(arg); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def debug(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def debug=(arg); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def deprecate_methods(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def deprecation_horizon(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def deprecation_horizon=(arg); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#58 def deprecation_warning(deprecated_method_name, message = T.unsafe(nil), caller_backtrace = T.unsafe(nil)); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def disallowed_behavior(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def disallowed_behavior=(arg); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def disallowed_warnings(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def disallowed_warnings=(arg); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def end_silence(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def gem_name(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def gem_name=(arg); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def silence(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def silenced(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#34 def silenced=(arg); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#53 def warn(message = T.unsafe(nil), callstack = T.unsafe(nil)); end end end # Behavior module allows to determine how to display deprecation messages. # You can create a custom behavior or set any from the +DEFAULT_BEHAVIORS+ # constant. Available behaviors are: # # [+:raise+] Raise ActiveSupport::DeprecationException. # [+:stderr+] Log all deprecation warnings to $stderr. # [+:log+] Log all deprecation warnings to +Rails.logger+. # [+:notify+] Use ActiveSupport::Notifications to notify +deprecation.rails+. # [+:report+] Use ActiveSupport::ErrorReporter to report deprecations. # [+:silence+] Do nothing. On \Rails, set config.active_support.report_deprecations = false to disable all behaviors. # # Setting behaviors only affects deprecations that happen after boot time. # For more information you can read the documentation of the #behavior= method. # # source://activesupport//lib/active_support/deprecation/behaviors.rb#69 module ActiveSupport::Deprecation::Behavior # Returns the current behavior or if one isn't set, defaults to +:stderr+. # # source://activesupport//lib/active_support/deprecation/behaviors.rb#74 def behavior; end # Sets the behavior to the specified value. Can be a single value, array, # or an object that responds to +call+. # # Available behaviors: # # [+:raise+] Raise ActiveSupport::DeprecationException. # [+:stderr+] Log all deprecation warnings to $stderr. # [+:log+] Log all deprecation warnings to +Rails.logger+. # [+:notify+] Use ActiveSupport::Notifications to notify +deprecation.rails+. # [+:report+] Use ActiveSupport::ErrorReporter to report deprecations. # [+:silence+] Do nothing. # # Setting behaviors only affects deprecations that happen after boot time. # Deprecation warnings raised by gems are not affected by this setting # because they happen before \Rails boots up. # # deprecator = ActiveSupport::Deprecation.new # deprecator.behavior = :stderr # deprecator.behavior = [:stderr, :log] # deprecator.behavior = MyCustomHandler # deprecator.behavior = ->(message, callstack, deprecation_horizon, gem_name) { # # custom stuff # } # # If you are using \Rails, you can set # config.active_support.report_deprecations = false to disable # all deprecation behaviors. This is similar to the +:silence+ option but # more performant. # # source://activesupport//lib/active_support/deprecation/behaviors.rb#111 def behavior=(behavior); end # Whether to print a backtrace along with the warning. # # source://activesupport//lib/active_support/deprecation/behaviors.rb#71 def debug; end # Whether to print a backtrace along with the warning. # # source://activesupport//lib/active_support/deprecation/behaviors.rb#71 def debug=(_arg0); end # Returns the current behavior for disallowed deprecations or if one isn't set, defaults to +:raise+. # # source://activesupport//lib/active_support/deprecation/behaviors.rb#79 def disallowed_behavior; end # Sets the behavior for disallowed deprecations (those configured by # ActiveSupport::Deprecation#disallowed_warnings=) to the specified # value. As with #behavior=, this can be a single value, array, or an # object that responds to +call+. # # source://activesupport//lib/active_support/deprecation/behaviors.rb#119 def disallowed_behavior=(behavior); end private # source://activesupport//lib/active_support/deprecation/behaviors.rb#124 def arity_coerce(behavior); end # source://activesupport//lib/active_support/deprecation/behaviors.rb#143 def arity_of_callable(callable); end end # Default warning behaviors per Rails.env. # # source://activesupport//lib/active_support/deprecation/behaviors.rb#13 ActiveSupport::Deprecation::DEFAULT_BEHAVIORS = T.let(T.unsafe(nil), Hash) # DeprecatedConstantAccessor transforms a constant into a deprecated one by # hooking +const_missing+. # # It takes the names of an old (deprecated) constant and of a new constant # (both in string form) and a deprecator. # # The deprecated constant now returns the same object as the new one rather # than a proxy object, so it can be used transparently in +rescue+ blocks # etc. # # PLANETS = %w(mercury venus earth mars jupiter saturn uranus neptune pluto) # # # (In a later update, the original implementation of `PLANETS` has been removed.) # # PLANETS_POST_2006 = %w(mercury venus earth mars jupiter saturn uranus neptune) # include ActiveSupport::Deprecation::DeprecatedConstantAccessor # deprecate_constant 'PLANETS', 'PLANETS_POST_2006', deprecator: ActiveSupport::Deprecation.new # # PLANETS.map { |planet| planet.capitalize } # # => DEPRECATION WARNING: PLANETS is deprecated! Use PLANETS_POST_2006 instead. # (Backtrace information…) # ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"] # # source://activesupport//lib/active_support/deprecation/constant_accessor.rb#27 module ActiveSupport::Deprecation::DeprecatedConstantAccessor class << self # @private # # source://activesupport//lib/active_support/deprecation/constant_accessor.rb#28 def included(base); end end end # DeprecatedConstantProxy transforms a constant into a deprecated one. It takes the full names of an old # (deprecated) constant and of a new constant (both in string form) and a deprecator. The deprecated constant now # returns the value of the new one. # # PLANETS = %w(mercury venus earth mars jupiter saturn uranus neptune pluto) # # # (In a later update, the original implementation of `PLANETS` has been removed.) # # PLANETS_POST_2006 = %w(mercury venus earth mars jupiter saturn uranus neptune) # PLANETS = ActiveSupport::Deprecation::DeprecatedConstantProxy.new("PLANETS", "PLANETS_POST_2006", ActiveSupport::Deprecation.new) # # PLANETS.map { |planet| planet.capitalize } # # => DEPRECATION WARNING: PLANETS is deprecated! Use PLANETS_POST_2006 instead. # (Backtrace information…) # ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"] # # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#122 class ActiveSupport::Deprecation::DeprecatedConstantProxy < ::Module # @return [DeprecatedConstantProxy] a new instance of DeprecatedConstantProxy # # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#130 def initialize(old_const, new_const, deprecator = T.unsafe(nil), message: T.unsafe(nil)); end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#161 def append_features(base); end # Returns the class of the new constant. # # PLANETS_POST_2006 = %w(mercury venus earth mars jupiter saturn uranus neptune) # PLANETS = ActiveSupport::Deprecation::DeprecatedConstantProxy.new('PLANETS', 'PLANETS_POST_2006') # PLANETS.class # => Array # # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#157 def class; end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#171 def extended(base); end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#150 def hash(*_arg0, **_arg1, &_arg2); end # Don't give a deprecation warning on inspect since test/unit and error # logs rely on it for diagnostics. # # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#144 def inspect; end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#150 def instance_methods(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#150 def name(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#166 def prepend_features(base); end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#150 def respond_to?(*_arg0, **_arg1, &_arg2); end private # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#181 def const_missing(name); end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#186 def method_missing(called, *args, &block); end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#177 def target; end class << self # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#123 def new(*args, **options, &block); end end end # DeprecatedInstanceVariableProxy transforms an instance variable into a deprecated one. It takes an instance of a # class, a method on that class, an instance variable, and a deprecator as the last argument. # # Trying to use the deprecated instance variable will result in a deprecation warning, pointing to the method as a # replacement. # # class Example # def initialize # @request = ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new(self, :request, :@request, ActiveSupport::Deprecation.new) # @_request = :special_request # end # # def request # @_request # end # # def old_request # @request # end # end # # example = Example.new # # => # # # example.old_request.to_s # # => DEPRECATION WARNING: @request is deprecated! Call request.to_s instead of # @request.to_s # (Backtrace information…) # "special_request" # # example.request.to_s # # => "special_request" # # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#88 class ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy < ::ActiveSupport::Deprecation::DeprecationProxy # @return [DeprecatedInstanceVariableProxy] a new instance of DeprecatedInstanceVariableProxy # # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#89 def initialize(instance, method, var = T.unsafe(nil), deprecator = T.unsafe(nil)); end private # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#98 def target; end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#102 def warn(callstack, called, args); end end # DeprecatedObjectProxy transforms an object into a deprecated one. It takes an object, a deprecation message, and # a deprecator. # # deprecated_object = ActiveSupport::Deprecation::DeprecatedObjectProxy.new(Object.new, "This object is now deprecated", ActiveSupport::Deprecation.new) # # => # # # deprecated_object.to_s # DEPRECATION WARNING: This object is now deprecated. # (Backtrace) # # => "#" # # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#38 class ActiveSupport::Deprecation::DeprecatedObjectProxy < ::ActiveSupport::Deprecation::DeprecationProxy # @return [DeprecatedObjectProxy] a new instance of DeprecatedObjectProxy # # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#39 def initialize(object, message, deprecator = T.unsafe(nil)); end private # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#47 def target; end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#51 def warn(callstack, called, args); end end # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#5 class ActiveSupport::Deprecation::DeprecationProxy # Don't give a deprecation warning on inspect since test/unit and error # logs rely on it for diagnostics. # # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#17 def inspect; end private # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#22 def method_missing(called, *args, &block); end class << self # source://activesupport//lib/active_support/deprecation/proxy_wrappers.rb#6 def new(*args, &block); end end end # A managed collection of deprecators. Configuration methods, such as # #behavior=, affect all deprecators in the collection. Additionally, the # #silence method silences all deprecators in the collection for the # duration of a given block. # # source://activesupport//lib/active_support/deprecation/deprecators.rb#9 class ActiveSupport::Deprecation::Deprecators # @return [Deprecators] a new instance of Deprecators # # source://activesupport//lib/active_support/deprecation/deprecators.rb#10 def initialize; end # Returns a deprecator added to this collection via #[]=. # # source://activesupport//lib/active_support/deprecation/deprecators.rb#16 def [](name); end # Adds a given +deprecator+ to this collection. The deprecator will be # immediately configured with any options previously set on this # collection. # # deprecators = ActiveSupport::Deprecation::Deprecators.new # deprecators.debug = true # # foo_deprecator = ActiveSupport::Deprecation.new("2.0", "Foo") # foo_deprecator.debug # => false # # deprecators[:foo] = foo_deprecator # deprecators[:foo].debug # => true # foo_deprecator.debug # => true # # source://activesupport//lib/active_support/deprecation/deprecators.rb#34 def []=(name, deprecator); end # Sets the deprecation warning behavior for all deprecators in this # collection. # # See ActiveSupport::Deprecation#behavior=. # # source://activesupport//lib/active_support/deprecation/deprecators.rb#60 def behavior=(behavior); end # Sets the debug flag for all deprecators in this collection. # # source://activesupport//lib/active_support/deprecation/deprecators.rb#52 def debug=(debug); end # Sets the disallowed deprecation warning behavior for all deprecators in # this collection. # # See ActiveSupport::Deprecation#disallowed_behavior=. # # source://activesupport//lib/active_support/deprecation/deprecators.rb#68 def disallowed_behavior=(disallowed_behavior); end # Sets the disallowed deprecation warnings for all deprecators in this # collection. # # See ActiveSupport::Deprecation#disallowed_warnings=. # # source://activesupport//lib/active_support/deprecation/deprecators.rb#76 def disallowed_warnings=(disallowed_warnings); end # Iterates over all deprecators in this collection. If no block is given, # returns an +Enumerator+. # # source://activesupport//lib/active_support/deprecation/deprecators.rb#41 def each(&block); end # Silences all deprecators in this collection for the duration of the # given block. # # See ActiveSupport::Deprecation#silence. # # source://activesupport//lib/active_support/deprecation/deprecators.rb#84 def silence(&block); end # Sets the silenced flag for all deprecators in this collection. # # source://activesupport//lib/active_support/deprecation/deprecators.rb#47 def silenced=(silenced); end private # source://activesupport//lib/active_support/deprecation/deprecators.rb#97 def apply_options(deprecator); end # source://activesupport//lib/active_support/deprecation/deprecators.rb#92 def set_option(name, value); end end # source://activesupport//lib/active_support/deprecation/disallowed.rb#5 module ActiveSupport::Deprecation::Disallowed # Returns the configured criteria used to identify deprecation messages # which should be treated as disallowed. # # source://activesupport//lib/active_support/deprecation/disallowed.rb#21 def disallowed_warnings; end # Sets the criteria used to identify deprecation messages which should be # disallowed. Can be an array containing strings, symbols, or regular # expressions. (Symbols are treated as strings.) These are compared against # the text of the generated deprecation warning. # # Additionally the scalar symbol +:all+ may be used to treat all # deprecations as disallowed. # # Deprecations matching a substring or regular expression will be handled # using the configured Behavior#disallowed_behavior rather than # Behavior#behavior. # # source://activesupport//lib/active_support/deprecation/disallowed.rb#17 def disallowed_warnings=(_arg0); end private # @return [Boolean] # # source://activesupport//lib/active_support/deprecation/disallowed.rb#26 def deprecation_disallowed?(message); end # @return [Boolean] # # source://activesupport//lib/active_support/deprecation/disallowed.rb#39 def explicitly_allowed?(message); end end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#5 module ActiveSupport::Deprecation::InstanceDelegator mixes_in_class_methods ::ActiveSupport::Deprecation::InstanceDelegator::ClassMethods mixes_in_class_methods ::ActiveSupport::Deprecation::InstanceDelegator::OverrideDelegators class << self # @private # # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#6 def included(base); end end end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#11 module ActiveSupport::Deprecation::InstanceDelegator::ClassMethods # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#47 def _instance; end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#15 def include(included_module); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#42 def instance; end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#20 def method_added(method_name); end end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#12 ActiveSupport::Deprecation::InstanceDelegator::ClassMethods::MUTEX = T.let(T.unsafe(nil), Thread::Mutex) # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#52 module ActiveSupport::Deprecation::InstanceDelegator::OverrideDelegators # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#58 def deprecation_warning(deprecated_method_name, message = T.unsafe(nil), caller_backtrace = T.unsafe(nil)); end # source://activesupport//lib/active_support/deprecation/instance_delegator.rb#53 def warn(message = T.unsafe(nil), callstack = T.unsafe(nil)); end end # source://activesupport//lib/active_support/deprecation/method_wrappers.rb#8 module ActiveSupport::Deprecation::MethodWrapper # Declare that a method has been deprecated. # # class Fred # def aaa; end # def bbb; end # def ccc; end # def ddd; end # def eee; end # end # # deprecator = ActiveSupport::Deprecation.new('next-release', 'MyGem') # # deprecator.deprecate_methods(Fred, :aaa, bbb: :zzz, ccc: 'use Bar#ccc instead') # # => Fred # # Fred.new.aaa # # DEPRECATION WARNING: aaa is deprecated and will be removed from MyGem next-release. (called from irb_binding at (irb):10) # # => nil # # Fred.new.bbb # # DEPRECATION WARNING: bbb is deprecated and will be removed from MyGem next-release (use zzz instead). (called from irb_binding at (irb):11) # # => nil # # Fred.new.ccc # # DEPRECATION WARNING: ccc is deprecated and will be removed from MyGem next-release (use Bar#ccc instead). (called from irb_binding at (irb):12) # # => nil # # source://activesupport//lib/active_support/deprecation/method_wrappers.rb#35 def deprecate_methods(target_module, *method_names); end end # source://activesupport//lib/active_support/deprecation/reporting.rb#7 module ActiveSupport::Deprecation::Reporting # Allow previously disallowed deprecation warnings within the block. # allowed_warnings can be an array containing strings, symbols, or regular # expressions. (Symbols are treated as strings). These are compared against # the text of deprecation warning messages generated within the block. # Matching warnings will be exempt from the rules set by # ActiveSupport::Deprecation#disallowed_warnings. # # The optional if: argument accepts a truthy/falsy value or an object that # responds to .call. If truthy, then matching warnings will be allowed. # If falsey then the method yields to the block without allowing the warning. # # deprecator = ActiveSupport::Deprecation.new # deprecator.disallowed_behavior = :raise # deprecator.disallowed_warnings = [ # "something broke" # ] # # deprecator.warn('something broke!') # # => ActiveSupport::DeprecationException # # deprecator.allow ['something broke'] do # deprecator.warn('something broke!') # end # # => nil # # deprecator.allow ['something broke'], if: Rails.env.production? do # deprecator.warn('something broke!') # end # # => ActiveSupport::DeprecationException for dev/test, nil for production # # source://activesupport//lib/active_support/deprecation/reporting.rb#89 def allow(allowed_warnings = T.unsafe(nil), if: T.unsafe(nil), &block); end # source://activesupport//lib/active_support/deprecation/reporting.rb#48 def begin_silence; end # source://activesupport//lib/active_support/deprecation/reporting.rb#99 def deprecation_warning(deprecated_method_name, message = T.unsafe(nil), caller_backtrace = T.unsafe(nil)); end # source://activesupport//lib/active_support/deprecation/reporting.rb#52 def end_silence; end # Name of gem where method is deprecated # # source://activesupport//lib/active_support/deprecation/reporting.rb#11 def gem_name; end # Name of gem where method is deprecated # # source://activesupport//lib/active_support/deprecation/reporting.rb#11 def gem_name=(_arg0); end # Silence deprecation warnings within the block. # # deprecator = ActiveSupport::Deprecation.new # deprecator.warn('something broke!') # # => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)" # # deprecator.silence do # deprecator.warn('something broke!') # end # # => nil # # source://activesupport//lib/active_support/deprecation/reporting.rb#41 def silence(&block); end # source://activesupport//lib/active_support/deprecation/reporting.rb#56 def silenced; end # Whether to print a message (silent mode) # # source://activesupport//lib/active_support/deprecation/reporting.rb#9 def silenced=(_arg0); end # Outputs a deprecation warning to the output configured by # ActiveSupport::Deprecation#behavior. # # ActiveSupport::Deprecation.new.warn('something broke!') # # => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)" # # source://activesupport//lib/active_support/deprecation/reporting.rb#18 def warn(message = T.unsafe(nil), callstack = T.unsafe(nil)); end private # source://activesupport//lib/active_support/deprecation/reporting.rb#153 def _extract_callstack(callstack); end # Outputs a deprecation warning message # # deprecated_method_warning(:method_name) # # => "method_name is deprecated and will be removed from Rails #{deprecation_horizon}" # deprecated_method_warning(:method_name, :another_method) # # => "method_name is deprecated and will be removed from Rails #{deprecation_horizon} (use another_method instead)" # deprecated_method_warning(:method_name, "Optional message") # # => "method_name is deprecated and will be removed from Rails #{deprecation_horizon} (Optional message)" # # source://activesupport//lib/active_support/deprecation/reporting.rb#115 def deprecated_method_warning(method_name, message = T.unsafe(nil)); end # source://activesupport//lib/active_support/deprecation/reporting.rb#129 def deprecation_caller_message(callstack); end # source://activesupport//lib/active_support/deprecation/reporting.rb#124 def deprecation_message(callstack, message = T.unsafe(nil)); end # source://activesupport//lib/active_support/deprecation/reporting.rb#140 def extract_callstack(callstack); end # @return [Boolean] # # source://activesupport//lib/active_support/deprecation/reporting.rb#169 def ignored_callstack?(path); end end # source://activesupport//lib/active_support/deprecation/reporting.rb#167 ActiveSupport::Deprecation::Reporting::LIB_DIR = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/deprecation/reporting.rb#166 ActiveSupport::Deprecation::Reporting::RAILS_GEM_ROOT = T.let(T.unsafe(nil), String) # Raised when ActiveSupport::Deprecation::Behavior#behavior is set with :raise. # You would set :raise, as a behavior to raise errors and proactively report exceptions from deprecations. # # source://activesupport//lib/active_support/deprecation/behaviors.rb#8 class ActiveSupport::DeprecationException < ::StandardError; end # = Active Support Descendants Tracker # # This module provides an internal implementation to track descendants # which is faster than iterating through +ObjectSpace+. # # However Ruby 3.1 provide a fast native +Class#subclasses+ method, # so if you know your code won't be executed on older rubies, including # +ActiveSupport::DescendantsTracker+ does not provide any benefit. # # source://activesupport//lib/active_support/descendants_tracker.rb#15 module ActiveSupport::DescendantsTracker # source://activesupport//lib/active_support/descendants_tracker.rb#109 def descendants; end class << self # source://activesupport//lib/active_support/descendants_tracker.rb#79 def clear(classes); end # source://activesupport//lib/active_support/descendants_tracker.rb#104 def descendants(klass); end # source://activesupport//lib/active_support/descendants_tracker.rb#70 def disable_clear!; end # source://activesupport//lib/active_support/descendants_tracker.rb#90 def reject!(classes); end # source://activesupport//lib/active_support/descendants_tracker.rb#100 def subclasses(klass); end end end # source://activesupport//lib/active_support/descendants_tracker.rb#59 module ActiveSupport::DescendantsTracker::ReloadedClassesFiltering # source://activesupport//lib/active_support/descendants_tracker.rb#64 def descendants; end # source://activesupport//lib/active_support/descendants_tracker.rb#60 def subclasses; end end # On TruffleRuby `ObjectSpace::WeakMap` keys are strong references. # So we use `object_id` as a key and the actual object as a value. # # JRuby for now doesn't have Class#descendant, but when it will, it will likely # have the same WeakMap semantic than Truffle so we future proof this as much as possible. # # source://activesupport//lib/active_support/descendants_tracker.rb#21 class ActiveSupport::DescendantsTracker::WeakSet < ::ObjectSpace::WeakMap # source://activesupport//lib/active_support/descendants_tracker.rb#24 def <<(object); end def to_a; end end # source://activesupport//lib/active_support/digest.rb#6 class ActiveSupport::Digest class << self # source://activesupport//lib/active_support/digest.rb#8 def hash_digest_class; end # @raise [ArgumentError] # # source://activesupport//lib/active_support/digest.rb#12 def hash_digest_class=(klass); end # source://activesupport//lib/active_support/digest.rb#17 def hexdigest(arg); end end end # = Active Support \Duration # # Provides accurate date and time measurements using Date#advance and # Time#advance, respectively. It mainly supports the methods on Numeric. # # 1.month.ago # equivalent to Time.now.advance(months: -1) # # source://activesupport//lib/active_support/duration.rb#14 class ActiveSupport::Duration # @return [Duration] a new instance of Duration # # source://activesupport//lib/active_support/duration.rb#224 def initialize(value, parts, variable = T.unsafe(nil)); end # Returns the modulo of this Duration by another Duration or Numeric. # Numeric values are treated as seconds. # # source://activesupport//lib/active_support/duration.rb#307 def %(other); end # Multiplies this Duration by a Numeric and returns a new Duration. # # source://activesupport//lib/active_support/duration.rb#282 def *(other); end # Adds another Duration or a Numeric to this Duration. Numeric values # are treated as seconds. # # source://activesupport//lib/active_support/duration.rb#263 def +(other); end # source://activesupport//lib/active_support/duration.rb#321 def +@; end # Subtracts another Duration or a Numeric from this Duration. Numeric # values are treated as seconds. # # source://activesupport//lib/active_support/duration.rb#277 def -(other); end # source://activesupport//lib/active_support/duration.rb#317 def -@; end # Divides this Duration by a Numeric and returns a new Duration. # # source://activesupport//lib/active_support/duration.rb#293 def /(other); end # Compares one Duration with another or a Numeric to this Duration. # Numeric values are treated as seconds. # # source://activesupport//lib/active_support/duration.rb#253 def <=>(other); end # Returns +true+ if +other+ is also a Duration instance with the # same +value+, or if other == value. # # source://activesupport//lib/active_support/duration.rb#336 def ==(other); end # source://activesupport//lib/active_support/duration.rb#476 def _parts; end # Calculates a new Time or Date that is as far in the future # as this Duration represents. # # source://activesupport//lib/active_support/duration.rb#431 def after(time = T.unsafe(nil)); end # Calculates a new Time or Date that is as far in the past # as this Duration represents. # # source://activesupport//lib/active_support/duration.rb#439 def ago(time = T.unsafe(nil)); end # source://activesupport//lib/active_support/duration.rb#454 def as_json(options = T.unsafe(nil)); end # Calculates a new Time or Date that is as far in the past # as this Duration represents. # # source://activesupport//lib/active_support/duration.rb#439 def before(time = T.unsafe(nil)); end # source://activesupport//lib/active_support/duration.rb#240 def coerce(other); end # source://activesupport//lib/active_support/duration.rb#462 def encode_with(coder); end # Returns +true+ if +other+ is also a Duration instance, which has the # same parts as this one. # # @return [Boolean] # # source://activesupport//lib/active_support/duration.rb#421 def eql?(other); end # Calculates a new Time or Date that is as far in the future # as this Duration represents. # # source://activesupport//lib/active_support/duration.rb#431 def from_now(time = T.unsafe(nil)); end # source://activesupport//lib/active_support/duration.rb#425 def hash; end # Returns the amount of days a duration covers as a float # # 12.hours.in_days # => 0.5 # # source://activesupport//lib/active_support/duration.rb#394 def in_days; end # Returns the amount of hours a duration covers as a float # # 1.day.in_hours # => 24.0 # # source://activesupport//lib/active_support/duration.rb#387 def in_hours; end # Returns the amount of minutes a duration covers as a float # # 1.day.in_minutes # => 1440.0 # # source://activesupport//lib/active_support/duration.rb#380 def in_minutes; end # Returns the amount of months a duration covers as a float # # 9.weeks.in_months # => 2.07 # # source://activesupport//lib/active_support/duration.rb#408 def in_months; end # Returns the number of seconds that this Duration represents. # # 1.minute.to_i # => 60 # 1.hour.to_i # => 3600 # 1.day.to_i # => 86400 # # Note that this conversion makes some assumptions about the # duration of some periods, e.g. months are always 1/12 of year # and years are 365.2425 days: # # # equivalent to (1.year / 12).to_i # 1.month.to_i # => 2629746 # # # equivalent to 365.2425.days.to_i # 1.year.to_i # => 31556952 # # In such cases, Ruby's core # Date[https://ruby-doc.org/stdlib/libdoc/date/rdoc/Date.html] and # Time[https://ruby-doc.org/stdlib/libdoc/time/rdoc/Time.html] should be used for precision # date and time arithmetic. # # source://activesupport//lib/active_support/duration.rb#372 def in_seconds; end # Returns the amount of weeks a duration covers as a float # # 2.months.in_weeks # => 8.696 # # source://activesupport//lib/active_support/duration.rb#401 def in_weeks; end # Returns the amount of years a duration covers as a float # # 30.days.in_years # => 0.082 # # source://activesupport//lib/active_support/duration.rb#415 def in_years; end # source://activesupport//lib/active_support/duration.rb#458 def init_with(coder); end # source://activesupport//lib/active_support/duration.rb#445 def inspect; end # @return [Boolean] # # source://activesupport//lib/active_support/duration.rb#330 def instance_of?(klass); end # @return [Boolean] # # source://activesupport//lib/active_support/duration.rb#325 def is_a?(klass); end # Build ISO 8601 Duration string for this duration. # The +precision+ parameter can be used to limit seconds' precision of duration. # # source://activesupport//lib/active_support/duration.rb#468 def iso8601(precision: T.unsafe(nil)); end # @return [Boolean] # # source://activesupport//lib/active_support/duration.rb#325 def kind_of?(klass); end # Returns a copy of the parts hash that defines the duration # # source://activesupport//lib/active_support/duration.rb#236 def parts; end # Calculates a new Time or Date that is as far in the future # as this Duration represents. # # source://activesupport//lib/active_support/duration.rb#431 def since(time = T.unsafe(nil)); end # Returns the number of seconds that this Duration represents. # # 1.minute.to_i # => 60 # 1.hour.to_i # => 3600 # 1.day.to_i # => 86400 # # Note that this conversion makes some assumptions about the # duration of some periods, e.g. months are always 1/12 of year # and years are 365.2425 days: # # # equivalent to (1.year / 12).to_i # 1.month.to_i # => 2629746 # # # equivalent to 365.2425.days.to_i # 1.year.to_i # => 31556952 # # In such cases, Ruby's core # Date[https://ruby-doc.org/stdlib/libdoc/date/rdoc/Date.html] and # Time[https://ruby-doc.org/stdlib/libdoc/time/rdoc/Time.html] should be used for precision # date and time arithmetic. # # source://activesupport//lib/active_support/duration.rb#372 def to_i; end # Returns the amount of seconds a duration covers as a string. # For more information check to_i method. # # 1.day.to_s # => "86400" # # source://activesupport//lib/active_support/duration.rb#348 def to_s; end # Calculates a new Time or Date that is as far in the past # as this Duration represents. # # source://activesupport//lib/active_support/duration.rb#439 def until(time = T.unsafe(nil)); end # Returns the value of attribute value. # # source://activesupport//lib/active_support/duration.rb#133 def value; end # @return [Boolean] # # source://activesupport//lib/active_support/duration.rb#472 def variable?; end private # source://activesupport//lib/active_support/duration.rb#507 def method_missing(method, *args, &block); end # @raise [TypeError] # # source://activesupport//lib/active_support/duration.rb#511 def raise_type_error(other); end # @return [Boolean] # # source://activesupport//lib/active_support/duration.rb#503 def respond_to_missing?(method, _); end # source://activesupport//lib/active_support/duration.rb#481 def sum(sign, time = T.unsafe(nil)); end class << self # source://activesupport//lib/active_support/duration.rb#149 def ===(other); end # Creates a new Duration from a seconds value that is converted # to the individual parts: # # ActiveSupport::Duration.build(31556952).parts # => {:years=>1} # ActiveSupport::Duration.build(2716146).parts # => {:months=>1, :days=>1} # # source://activesupport//lib/active_support/duration.rb#189 def build(value); end # source://activesupport//lib/active_support/duration.rb#167 def days(value); end # source://activesupport//lib/active_support/duration.rb#163 def hours(value); end # source://activesupport//lib/active_support/duration.rb#159 def minutes(value); end # source://activesupport//lib/active_support/duration.rb#175 def months(value); end # Creates a new Duration from string formatted according to ISO 8601 Duration. # # See {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601#Durations] for more information. # This method allows negative parts to be present in pattern. # If invalid string is provided, it will raise +ActiveSupport::Duration::ISO8601Parser::ParsingError+. # # source://activesupport//lib/active_support/duration.rb#144 def parse(iso8601duration); end # source://activesupport//lib/active_support/duration.rb#155 def seconds(value); end # source://activesupport//lib/active_support/duration.rb#171 def weeks(value); end # source://activesupport//lib/active_support/duration.rb#179 def years(value); end private # source://activesupport//lib/active_support/duration.rb#217 def calculate_total_seconds(parts); end end end # Parses a string formatted according to ISO 8601 Duration into the hash. # # See {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601#Durations] for more information. # # This parser allows negative parts to be present in pattern. # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#12 class ActiveSupport::Duration::ISO8601Parser # @return [ISO8601Parser] a new instance of ISO8601Parser # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#34 def initialize(string); end # Returns the value of attribute mode. # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#32 def mode; end # Sets the attribute mode # # @param value the value to set the attribute mode to. # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#32 def mode=(_arg0); end # source://activesupport//lib/active_support/duration/iso8601_parser.rb#41 def parse!; end # Returns the value of attribute parts. # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#31 def parts; end # Returns the value of attribute scanner. # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#31 def scanner; end # Returns the value of attribute sign. # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#32 def sign; end # Sets the attribute sign # # @param value the value to set the attribute sign to. # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#32 def sign=(_arg0); end private # @return [Boolean] # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#83 def finished?; end # Parses number which can be a float with either comma or period. # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#88 def number; end # @raise [ParsingError] # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#96 def raise_parsing_error(reason = T.unsafe(nil)); end # source://activesupport//lib/active_support/duration/iso8601_parser.rb#92 def scan(pattern); end # Checks for various semantic errors as stated in ISO 8601 standard. # # source://activesupport//lib/active_support/duration/iso8601_parser.rb#101 def validate!; end end # source://activesupport//lib/active_support/duration/iso8601_parser.rb#17 ActiveSupport::Duration::ISO8601Parser::COMMA = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#22 ActiveSupport::Duration::ISO8601Parser::DATE_COMPONENT = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#28 ActiveSupport::Duration::ISO8601Parser::DATE_COMPONENTS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#20 ActiveSupport::Duration::ISO8601Parser::DATE_MARKER = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#25 ActiveSupport::Duration::ISO8601Parser::DATE_TO_PART = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#16 ActiveSupport::Duration::ISO8601Parser::PERIOD = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#15 ActiveSupport::Duration::ISO8601Parser::PERIOD_OR_COMMA = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#13 class ActiveSupport::Duration::ISO8601Parser::ParsingError < ::ArgumentError; end # source://activesupport//lib/active_support/duration/iso8601_parser.rb#19 ActiveSupport::Duration::ISO8601Parser::SIGN_MARKER = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#23 ActiveSupport::Duration::ISO8601Parser::TIME_COMPONENT = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#29 ActiveSupport::Duration::ISO8601Parser::TIME_COMPONENTS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#21 ActiveSupport::Duration::ISO8601Parser::TIME_MARKER = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/duration/iso8601_parser.rb#26 ActiveSupport::Duration::ISO8601Parser::TIME_TO_PART = T.let(T.unsafe(nil), Hash) # Serializes duration to string according to ISO 8601 Duration format. # # source://activesupport//lib/active_support/duration/iso8601_serializer.rb#6 class ActiveSupport::Duration::ISO8601Serializer # @return [ISO8601Serializer] a new instance of ISO8601Serializer # # source://activesupport//lib/active_support/duration/iso8601_serializer.rb#9 def initialize(duration, precision: T.unsafe(nil)); end # Builds and returns output string. # # source://activesupport//lib/active_support/duration/iso8601_serializer.rb#15 def serialize; end private # source://activesupport//lib/active_support/duration/iso8601_serializer.rb#56 def format_seconds(seconds); end # Return pair of duration's parts and whole duration sign. # Parts are summarized (as they can become repetitive due to addition, etc). # Zero parts are removed as not significant. # If all parts are negative it will negate all of them and return minus as a sign. # # source://activesupport//lib/active_support/duration/iso8601_serializer.rb#39 def normalize; end # @return [Boolean] # # source://activesupport//lib/active_support/duration/iso8601_serializer.rb#52 def week_mixed_with_date?(parts); end end # source://activesupport//lib/active_support/duration/iso8601_serializer.rb#7 ActiveSupport::Duration::ISO8601Serializer::DATE_COMPONENTS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/duration.rb#130 ActiveSupport::Duration::PARTS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/duration.rb#120 ActiveSupport::Duration::PARTS_IN_SECONDS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/duration.rb#115 ActiveSupport::Duration::SECONDS_PER_DAY = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/duration.rb#114 ActiveSupport::Duration::SECONDS_PER_HOUR = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/duration.rb#113 ActiveSupport::Duration::SECONDS_PER_MINUTE = T.let(T.unsafe(nil), Integer) # 1/12 of a gregorian year # # source://activesupport//lib/active_support/duration.rb#117 ActiveSupport::Duration::SECONDS_PER_MONTH = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/duration.rb#116 ActiveSupport::Duration::SECONDS_PER_WEEK = T.let(T.unsafe(nil), Integer) # length of a gregorian year (365.2425 days) # # source://activesupport//lib/active_support/duration.rb#118 ActiveSupport::Duration::SECONDS_PER_YEAR = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/duration.rb#15 class ActiveSupport::Duration::Scalar < ::Numeric # @return [Scalar] a new instance of Scalar # # source://activesupport//lib/active_support/duration.rb#19 def initialize(value); end # source://activesupport//lib/active_support/duration.rb#85 def %(other); end # source://activesupport//lib/active_support/duration.rb#66 def *(other); end # source://activesupport//lib/active_support/duration.rb#41 def +(other); end # source://activesupport//lib/active_support/duration.rb#53 def -(other); end # source://activesupport//lib/active_support/duration.rb#27 def -@; end # source://activesupport//lib/active_support/duration.rb#77 def /(other); end # source://activesupport//lib/active_support/duration.rb#31 def <=>(other); end # source://activesupport//lib/active_support/duration.rb#23 def coerce(other); end # source://activesupport//lib/active_support/duration.rb#17 def to_f(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/duration.rb#17 def to_i(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/duration.rb#17 def to_s(*_arg0, **_arg1, &_arg2); end # Returns the value of attribute value. # # source://activesupport//lib/active_support/duration.rb#16 def value; end # @return [Boolean] # # source://activesupport//lib/active_support/duration.rb#93 def variable?; end private # source://activesupport//lib/active_support/duration.rb#98 def calculate(op, other); end # @raise [TypeError] # # source://activesupport//lib/active_support/duration.rb#108 def raise_type_error(other); end end # source://activesupport//lib/active_support/duration.rb#131 ActiveSupport::Duration::VARIABLE_PARTS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/core_ext/enumerable.rb#4 module ActiveSupport::EnumerableCoreExt; end # source://activesupport//lib/active_support/core_ext/enumerable.rb#5 module ActiveSupport::EnumerableCoreExt::Constants private # source://activesupport//lib/active_support/core_ext/enumerable.rb#7 def const_missing(name); end end # HACK: For performance reasons, Enumerable shouldn't have any constants of its own. # So we move SoleItemExpectedError into ActiveSupport::EnumerableCoreExt. # # source://activesupport//lib/active_support/core_ext/enumerable.rb#25 ActiveSupport::EnumerableCoreExt::SoleItemExpectedError = Enumerable::SoleItemExpectedError # source://activesupport//lib/active_support/environment_inquirer.rb#9 class ActiveSupport::EnvironmentInquirer < ::ActiveSupport::StringInquirer # @raise [ArgumentError] # @return [EnvironmentInquirer] a new instance of EnvironmentInquirer # # source://activesupport//lib/active_support/environment_inquirer.rb#15 def initialize(env); end # source://activesupport//lib/active_support/environment_inquirer.rb#29 def development?; end # Returns true if we're in the development or test environment. # # @return [Boolean] # # source://activesupport//lib/active_support/environment_inquirer.rb#36 def local?; end # source://activesupport//lib/active_support/environment_inquirer.rb#29 def production?; end # source://activesupport//lib/active_support/environment_inquirer.rb#29 def test?; end end # Optimization for the three default environments, so this inquirer doesn't need to rely on # the slower delegation through method_missing that StringInquirer would normally entail. # # source://activesupport//lib/active_support/environment_inquirer.rb#10 ActiveSupport::EnvironmentInquirer::DEFAULT_ENVIRONMENTS = T.let(T.unsafe(nil), Array) # Environments that'll respond true for #local? # # source://activesupport//lib/active_support/environment_inquirer.rb#13 ActiveSupport::EnvironmentInquirer::LOCAL_ENVIRONMENTS = T.let(T.unsafe(nil), Array) # = Active Support \Error Reporter # # +ActiveSupport::ErrorReporter+ is a common interface for error reporting services. # # To rescue and report any unhandled error, you can use the #handle method: # # Rails.error.handle do # do_something! # end # # If an error is raised, it will be reported and swallowed. # # Alternatively, if you want to report the error but not swallow it, you can use #record: # # Rails.error.record do # do_something! # end # # Both methods can be restricted to handle only a specific error class: # # maybe_tags = Rails.error.handle(Redis::BaseError) { redis.get("tags") } # # source://activesupport//lib/active_support/error_reporter.rb#26 class ActiveSupport::ErrorReporter # @return [ErrorReporter] a new instance of ErrorReporter # # source://activesupport//lib/active_support/error_reporter.rb#32 def initialize(*subscribers, logger: T.unsafe(nil)); end # Prevent a subscriber from being notified of errors for the # duration of the block. You may pass in the subscriber itself, or its class. # # This can be helpful for error reporting service integrations, when they wish # to handle any errors higher in the stack. # # source://activesupport//lib/active_support/error_reporter.rb#147 def disable(subscriber); end # Evaluates the given block, reporting and swallowing any unhandled error. # If no error is raised, returns the return value of the block. Otherwise, # returns the result of +fallback.call+, or +nil+ if +fallback+ is not # specified. # # # Will report a TypeError to all subscribers and return nil. # Rails.error.handle do # 1 + '1' # end # # Can be restricted to handle only specific error classes: # # maybe_tags = Rails.error.handle(Redis::BaseError) { redis.get("tags") } # # ==== Options # # * +:severity+ - This value is passed along to subscribers to indicate how # important the error report is. Can be +:error+, +:warning+, or +:info+. # Defaults to +:warning+. # # * +:context+ - Extra information that is passed along to subscribers. For # example: # # Rails.error.handle(context: { section: "admin" }) do # # ... # end # # * +:fallback+ - A callable that provides +handle+'s return value when an # unhandled error is raised. For example: # # user = Rails.error.handle(fallback: -> { User.anonymous }) do # User.find_by(params) # end # # * +:source+ - This value is passed along to subscribers to indicate the # source of the error. Subscribers can use this value to ignore certain # errors. Defaults to "application". # # source://activesupport//lib/active_support/error_reporter.rb#74 def handle(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), fallback: T.unsafe(nil), source: T.unsafe(nil)); end # Returns the value of attribute logger. # # source://activesupport//lib/active_support/error_reporter.rb#30 def logger; end # Sets the attribute logger # # @param value the value to set the attribute logger to. # # source://activesupport//lib/active_support/error_reporter.rb#30 def logger=(_arg0); end # Evaluates the given block, reporting and re-raising any unhandled error. # If no error is raised, returns the return value of the block. # # # Will report a TypeError to all subscribers and re-raise it. # Rails.error.record do # 1 + '1' # end # # Can be restricted to handle only specific error classes: # # tags = Rails.error.record(Redis::BaseError) { redis.get("tags") } # # ==== Options # # * +:severity+ - This value is passed along to subscribers to indicate how # important the error report is. Can be +:error+, +:warning+, or +:info+. # Defaults to +:error+. # # * +:context+ - Extra information that is passed along to subscribers. For # example: # # Rails.error.record(context: { section: "admin" }) do # # ... # end # # * +:source+ - This value is passed along to subscribers to indicate the # source of the error. Subscribers can use this value to ignore certain # errors. Defaults to "application". # # source://activesupport//lib/active_support/error_reporter.rb#110 def record(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end # Report an error directly to subscribers. You can use this method when the # block-based #handle and #record methods are not suitable. # # Rails.error.report(error) # # source://activesupport//lib/active_support/error_reporter.rb#172 def report(error, handled: T.unsafe(nil), severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end # Update the execution context that is accessible to error subscribers. Any # context passed to #handle, #record, or #report will be merged with the # context set here. # # Rails.error.set_context(section: "checkout", user_id: @user.id) # # source://activesupport//lib/active_support/error_reporter.rb#163 def set_context(*_arg0, **_arg1, &_arg2); end # Register a new error subscriber. The subscriber must respond to # # report(Exception, handled: Boolean, severity: (:error OR :warning OR :info), context: Hash, source: String) # # The +report+ method should never raise an error. # # source://activesupport//lib/active_support/error_reporter.rb#123 def subscribe(subscriber); end # Unregister an error subscriber. Accepts either a subscriber or a class. # # subscriber = MyErrorSubscriber.new # Rails.error.subscribe(subscriber) # # Rails.error.unsubscribe(subscriber) # # or # Rails.error.unsubscribe(MyErrorSubscriber) # # source://activesupport//lib/active_support/error_reporter.rb#138 def unsubscribe(subscriber); end end # source://activesupport//lib/active_support/error_reporter.rb#28 ActiveSupport::ErrorReporter::DEFAULT_SOURCE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/error_reporter.rb#27 ActiveSupport::ErrorReporter::SEVERITIES = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/execution_context.rb#4 module ActiveSupport::ExecutionContext class << self # source://activesupport//lib/active_support/execution_context.rb#34 def []=(key, value); end # source://activesupport//lib/active_support/execution_context.rb#7 def after_change(&block); end # source://activesupport//lib/active_support/execution_context.rb#43 def clear; end # Updates the execution context. If a block is given, it resets the provided keys to their # previous value once the block exits. # # source://activesupport//lib/active_support/execution_context.rb#13 def set(**options); end # source://activesupport//lib/active_support/execution_context.rb#39 def to_h; end private # source://activesupport//lib/active_support/execution_context.rb#48 def store; end end end # source://activesupport//lib/active_support/execution_wrapper.rb#8 class ActiveSupport::ExecutionWrapper include ::ActiveSupport::Callbacks extend ::ActiveSupport::Callbacks::ClassMethods extend ::ActiveSupport::DescendantsTracker # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks; end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks?; end # source://activesupport//lib/active_support/callbacks.rb#963 def _complete_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#963 def _run_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#951 def _run_complete_callbacks(&block); end # source://activesupport//lib/active_support/callbacks.rb#951 def _run_run_callbacks(&block); end # source://activesupport//lib/active_support/execution_wrapper.rb#142 def complete; end # Complete this in-flight execution. This method *must* be called # exactly once on the result of any call to +run!+. # # Where possible, prefer +wrap+. # # source://activesupport//lib/active_support/execution_wrapper.rb#136 def complete!; end # source://activesupport//lib/active_support/execution_wrapper.rb#128 def run; end # source://activesupport//lib/active_support/execution_wrapper.rb#123 def run!; end private # source://activesupport//lib/active_support/execution_wrapper.rb#147 def hook_state; end class << self # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks; end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks=(value); end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks?; end # source://activesupport//lib/active_support/callbacks.rb#955 def _complete_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#959 def _complete_callbacks=(value); end # source://activesupport//lib/active_support/callbacks.rb#955 def _run_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#959 def _run_callbacks=(value); end # @return [Boolean] # # source://activesupport//lib/active_support/execution_wrapper.rb#119 def active?; end # source://activesupport//lib/active_support/execution_wrapper.rb#115 def active_key; end # source://activesupport//lib/active_support/execution_wrapper.rb#111 def error_reporter; end # source://activesupport//lib/active_support/execution_wrapper.rb#101 def perform; end # Register an object to be invoked during both the +run+ and # +complete+ steps. # # +hook.complete+ will be passed the value returned from +hook.run+, # and will only be invoked if +run+ has previously been called. # (Mostly, this means it won't be invoked if an exception occurs in # a preceding +to_run+ block; all ordinary +to_complete+ blocks are # invoked in that situation.) # # source://activesupport//lib/active_support/execution_wrapper.rb#51 def register_hook(hook, outer: T.unsafe(nil)); end # Run this execution. # # Returns an instance, whose +complete!+ method *must* be invoked # after the work has been performed. # # Where possible, prefer +wrap+. # # source://activesupport//lib/active_support/execution_wrapper.rb#67 def run!(reset: T.unsafe(nil)); end # source://activesupport//lib/active_support/execution_wrapper.rb#22 def to_complete(*args, &block); end # source://activesupport//lib/active_support/execution_wrapper.rb#18 def to_run(*args, &block); end # Perform the work in the supplied block as an execution. # # source://activesupport//lib/active_support/execution_wrapper.rb#87 def wrap(source: T.unsafe(nil)); end end end # source://activesupport//lib/active_support/execution_wrapper.rb#33 class ActiveSupport::ExecutionWrapper::CompleteHook < ::Struct # source://activesupport//lib/active_support/execution_wrapper.rb#34 def after(target); end # source://activesupport//lib/active_support/execution_wrapper.rb#34 def before(target); end # Returns the value of attribute hook # # @return [Object] the current value of hook def hook; end # Sets the attribute hook # # @param value [Object] the value to set the attribute hook to. # @return [Object] the newly set value def hook=(_); end class << self def [](*_arg0); end def inspect; end def keyword_init?; end def members; end def new(*_arg0); end end end # source://activesupport//lib/active_support/execution_wrapper.rb#11 ActiveSupport::ExecutionWrapper::Null = T.let(T.unsafe(nil), Object) # source://activesupport//lib/active_support/execution_wrapper.rb#26 class ActiveSupport::ExecutionWrapper::RunHook < ::Struct # source://activesupport//lib/active_support/execution_wrapper.rb#27 def before(target); end # Returns the value of attribute hook # # @return [Object] the current value of hook def hook; end # Sets the attribute hook # # @param value [Object] the value to set the attribute hook to. # @return [Object] the newly set value def hook=(_); end class << self def [](*_arg0); end def inspect; end def keyword_init?; end def members; end def new(*_arg0); end end end # source://activesupport//lib/active_support/executor.rb#6 class ActiveSupport::Executor < ::ActiveSupport::ExecutionWrapper; end # = \File Update Checker # # FileUpdateChecker specifies the API used by \Rails to watch files # and control reloading. The API depends on four methods: # # * +initialize+ which expects two parameters and one block as # described below. # # * +updated?+ which returns a boolean if there were updates in # the filesystem or not. # # * +execute+ which executes the given block on initialization # and updates the latest watched files and timestamp. # # * +execute_if_updated+ which just executes the block if it was updated. # # After initialization, a call to +execute_if_updated+ must execute # the block only if there was really a change in the filesystem. # # This class is used by \Rails to reload the I18n framework whenever # they are changed upon a new request. # # i18n_reloader = ActiveSupport::FileUpdateChecker.new(paths) do # I18n.reload! # end # # ActiveSupport::Reloader.to_prepare do # i18n_reloader.execute_if_updated # end # # source://activesupport//lib/active_support/file_update_checker.rb#35 class ActiveSupport::FileUpdateChecker # It accepts two parameters on initialization. The first is an array # of files and the second is an optional hash of directories. The hash must # have directories as keys and the value is an array of extensions to be # watched under that directory. # # This method must also receive a block that will be called once a path # changes. The array of files and list of directories cannot be changed # after FileUpdateChecker has been initialized. # # @return [FileUpdateChecker] a new instance of FileUpdateChecker # # source://activesupport//lib/active_support/file_update_checker.rb#44 def initialize(files, dirs = T.unsafe(nil), &block); end # Executes the given block and updates the latest watched files and # timestamp. # # source://activesupport//lib/active_support/file_update_checker.rb#82 def execute; end # Execute the block given if updated. # # source://activesupport//lib/active_support/file_update_checker.rb#92 def execute_if_updated; end # Check if any of the entries were updated. If so, the watched and/or # updated_at values are cached until the block is executed via +execute+ # or +execute_if_updated+. # # @return [Boolean] # # source://activesupport//lib/active_support/file_update_checker.rb#63 def updated?; end private # source://activesupport//lib/active_support/file_update_checker.rb#158 def compile_ext(array); end # source://activesupport//lib/active_support/file_update_checker.rb#144 def compile_glob(hash); end # source://activesupport//lib/active_support/file_update_checker.rb#154 def escape(key); end # This method returns the maximum mtime of the files in +paths+, or +nil+ # if the array is empty. # # Files with a mtime in the future are ignored. Such abnormal situation # can happen for example if the user changes the clock by hand. It is # healthy to consider this edge case because with mtimes in the future # reloading is not triggered. # # source://activesupport//lib/active_support/file_update_checker.rb#122 def max_mtime(paths); end # source://activesupport//lib/active_support/file_update_checker.rb#111 def updated_at(paths); end # source://activesupport//lib/active_support/file_update_checker.rb#103 def watched; end end # source://activesupport//lib/active_support/fork_tracker.rb#4 module ActiveSupport::ForkTracker class << self # source://activesupport//lib/active_support/fork_tracker.rb#67 def after_fork(&block); end # source://activesupport//lib/active_support/fork_tracker.rb#40 def after_fork_callback; end # source://activesupport//lib/active_support/fork_tracker.rb#49 def check!; end # source://activesupport//lib/active_support/fork_tracker.rb#56 def hook!; end # source://activesupport//lib/active_support/fork_tracker.rb#72 def unregister(callback); end end end # source://activesupport//lib/active_support/fork_tracker.rb#15 module ActiveSupport::ForkTracker::CoreExt # source://activesupport//lib/active_support/fork_tracker.rb#16 def fork(*_arg0, **_arg1, &_arg2); end end # source://activesupport//lib/active_support/fork_tracker.rb#31 module ActiveSupport::ForkTracker::CoreExtPrivate include ::ActiveSupport::ForkTracker::CoreExt private # source://activesupport//lib/active_support/fork_tracker.rb#16 def fork(*_arg0, **_arg1, &_arg2); end end # source://activesupport//lib/active_support/fork_tracker.rb#5 module ActiveSupport::ForkTracker::ModernCoreExt # source://activesupport//lib/active_support/fork_tracker.rb#6 def _fork; end end # = Active Support \Gzip # # A convenient wrapper for the zlib standard library that allows # compression/decompression of strings with gzip. # # gzip = ActiveSupport::Gzip.compress('compress me!') # # => "\x1F\x8B\b\x00o\x8D\xCDO\x00\x03K\xCE\xCF-(J-.V\xC8MU\x04\x00R>n\x83\f\x00\x00\x00" # # ActiveSupport::Gzip.decompress(gzip) # # => "compress me!" # # source://activesupport//lib/active_support/gzip.rb#17 module ActiveSupport::Gzip class << self # Compresses a string using gzip. # # source://activesupport//lib/active_support/gzip.rb#32 def compress(source, level = T.unsafe(nil), strategy = T.unsafe(nil)); end # Decompresses a gzipped string. # # source://activesupport//lib/active_support/gzip.rb#27 def decompress(source); end end end # source://activesupport//lib/active_support/gzip.rb#18 class ActiveSupport::Gzip::Stream < ::StringIO # @return [Stream] a new instance of Stream # # source://activesupport//lib/active_support/gzip.rb#19 def initialize(*_arg0); end # source://activesupport//lib/active_support/gzip.rb#23 def close; end end # = \Hash With Indifferent Access # # Implements a hash where keys :foo and "foo" are considered # to be the same. # # rgb = ActiveSupport::HashWithIndifferentAccess.new # # rgb[:black] = '#000000' # rgb[:black] # => '#000000' # rgb['black'] # => '#000000' # # rgb['white'] = '#FFFFFF' # rgb[:white] # => '#FFFFFF' # rgb['white'] # => '#FFFFFF' # # Internally symbols are mapped to strings when used as keys in the entire # writing interface (calling []=, merge, etc). This # mapping belongs to the public interface. For example, given: # # hash = ActiveSupport::HashWithIndifferentAccess.new(a: 1) # # You are guaranteed that the key is returned as a string: # # hash.keys # => ["a"] # # Technically other types of keys are accepted: # # hash = ActiveSupport::HashWithIndifferentAccess.new(a: 1) # hash[0] = 0 # hash # => {"a"=>1, 0=>0} # # but this class is intended for use cases where strings or symbols are the # expected keys and it is convenient to understand both as the same. For # example the +params+ hash in Ruby on \Rails. # # Note that core extensions define Hash#with_indifferent_access: # # rgb = { black: '#000000', white: '#FFFFFF' }.with_indifferent_access # # which may be handy. # # To access this class outside of \Rails, require the core extension with: # # require "active_support/core_ext/hash/indifferent_access" # # which will, in turn, require this file. # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#57 class ActiveSupport::HashWithIndifferentAccess < ::Hash # @return [HashWithIndifferentAccess] a new instance of HashWithIndifferentAccess # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#70 def initialize(constructor = T.unsafe(nil)); end # Same as Hash#[] where the key passed as argument can be # either a string or a symbol: # # counters = ActiveSupport::HashWithIndifferentAccess.new # counters[:foo] = 1 # # counters['foo'] # => 1 # counters[:foo] # => 1 # counters[:zoo] # => nil # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#168 def [](key); end # Assigns a new value to the hash: # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash[:key] = 'value' # # This value can be later fetched using either +:key+ or 'key'. # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#98 def []=(key, value); end # Same as Hash#assoc where the key passed as argument can be # either a string or a symbol: # # counters = ActiveSupport::HashWithIndifferentAccess.new # counters[:foo] = 1 # # counters.assoc('foo') # => ["foo", 1] # counters.assoc(:foo) # => ["foo", 1] # counters.assoc(:zoo) # => nil # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#181 def assoc(key); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#375 def compact; end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#319 def deep_stringify_keys; end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#317 def deep_stringify_keys!; end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#324 def deep_symbolize_keys; end # Same as Hash#default where the key passed as argument can be # either a string or a symbol: # # hash = ActiveSupport::HashWithIndifferentAccess.new(1) # hash.default # => 1 # # hash = ActiveSupport::HashWithIndifferentAccess.new { |hash, key| key } # hash.default # => nil # hash.default('foo') # => 'foo' # hash.default(:foo) # => 'foo' # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#223 def default(key = T.unsafe(nil)); end # Removes the specified key from the hash. # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#303 def delete(key); end # Same as Hash#dig where the key passed as argument can be # either a string or a symbol: # # counters = ActiveSupport::HashWithIndifferentAccess.new # counters[:foo] = { bar: 1 } # # counters.dig('foo', 'bar') # => 1 # counters.dig(:foo, :bar) # => 1 # counters.dig(:zoo) # => nil # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#208 def dig(*args); end # Returns a shallow copy of the hash. # # hash = ActiveSupport::HashWithIndifferentAccess.new({ a: { b: 'b' } }) # dup = hash.dup # dup[:a][:c] = 'c' # # hash[:a][:c] # => "c" # dup[:a][:c] # => "c" # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#264 def dup; end # Returns a hash with indifferent access that includes everything except given keys. # hash = { a: "x", b: "y", c: 10 }.with_indifferent_access # hash.except(:a, "b") # => {c: 10}.with_indifferent_access # hash # => { a: "x", b: "y", c: 10 }.with_indifferent_access # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#311 def except(*keys); end # Returns +true+ so that Array#extract_options! finds members of # this class. # # @return [Boolean] # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#58 def extractable_options?; end # Same as Hash#fetch where the key passed as argument can be # either a string or a symbol: # # counters = ActiveSupport::HashWithIndifferentAccess.new # counters[:foo] = 1 # # counters.fetch('foo') # => 1 # counters.fetch(:bar, 0) # => 0 # counters.fetch(:bar) { |key| 0 } # => 0 # counters.fetch(:zoo) # => KeyError: key not found: "zoo" # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#195 def fetch(key, *extras); end # Returns an array of the values at the specified indices, but also # raises an exception when one of the keys can't be found. # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash[:a] = 'x' # hash[:b] = 'y' # hash.fetch_values('a', 'b') # => ["x", "y"] # hash.fetch_values('a', 'c') { |key| 'z' } # => ["x", "z"] # hash.fetch_values('a', 'c') # => KeyError: key not found: "c" # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#251 def fetch_values(*indices, &block); end # Checks the hash for a key matching the argument passed in: # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash['key'] = 'value' # hash.key?(:key) # => true # hash.key?('key') # => true # # @return [Boolean] # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#151 def has_key?(key); end # Checks the hash for a key matching the argument passed in: # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash['key'] = 'value' # hash.key?(:key) # => true # hash.key?('key') # => true # # @return [Boolean] # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#151 def include?(key); end # Checks the hash for a key matching the argument passed in: # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash['key'] = 'value' # hash.key?(:key) # => true # hash.key?('key') # => true # # @return [Boolean] # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#151 def key?(key); end # Checks the hash for a key matching the argument passed in: # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash['key'] = 'value' # hash.key?(:key) # => true # hash.key?('key') # => true # # @return [Boolean] # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#151 def member?(key); end # This method has the same semantics of +update+, except it does not # modify the receiver but rather returns a new hash with indifferent # access with the result of the merge. # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#273 def merge(*hashes, &block); end # Updates the receiver in-place, merging in the hashes passed as arguments: # # hash_1 = ActiveSupport::HashWithIndifferentAccess.new # hash_1[:key] = 'value' # # hash_2 = ActiveSupport::HashWithIndifferentAccess.new # hash_2[:key] = 'New Value!' # # hash_1.update(hash_2) # => {"key"=>"New Value!"} # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash.update({ "a" => 1 }, { "b" => 2 }) # => { "a" => 1, "b" => 2 } # # The arguments can be either an # +ActiveSupport::HashWithIndifferentAccess+ or a regular +Hash+. # In either case the merge respects the semantics of indifferent access. # # If the argument is a regular hash with keys +:key+ and "key" only one # of the values end up in the receiver, but which one is unspecified. # # When given a block, the value for duplicated keys will be determined # by the result of invoking the block with the duplicated key, the value # in the receiver, and the value in +other_hash+. The rules for duplicated # keys follow the semantics of indifferent access: # # hash_1[:key] = 10 # hash_2['key'] = 12 # hash_1.update(hash_2) { |key, old, new| old + new } # => {"key"=>22} # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#132 def merge!(*other_hashes, &block); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#66 def nested_under_indifferent_access; end def regular_update(*_arg0); end def regular_writer(_arg0, _arg1); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#332 def reject(*args, &block); end # Replaces the contents of this hash with other_hash. # # h = { "a" => 100, "b" => 200 } # h.replace({ "c" => 300, "d" => 400 }) # => {"c"=>300, "d"=>400} # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#298 def replace(other_hash); end # Like +merge+ but the other way around: Merges the receiver into the # argument and returns a new hash with indifferent access as result: # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash['a'] = nil # hash.reverse_merge(a: 0, b: 1) # => {"a"=>nil, "b"=>1} # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#283 def reverse_merge(other_hash); end # Same semantics as +reverse_merge+ but modifies the receiver in-place. # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#289 def reverse_merge!(other_hash); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#327 def select(*args, &block); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#365 def slice(*keys); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#370 def slice!(*keys); end # Assigns a new value to the hash: # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash[:key] = 'value' # # This value can be later fetched using either +:key+ or 'key'. # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#98 def store(key, value); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#318 def stringify_keys; end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#316 def stringify_keys!; end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#322 def symbolize_keys; end # Convert to a regular hash with string keys. # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#380 def to_hash; end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#322 def to_options; end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#325 def to_options!; end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#344 def transform_keys(hash = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#349 def transform_keys!(hash = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#337 def transform_values(&block); end # Updates the receiver in-place, merging in the hashes passed as arguments: # # hash_1 = ActiveSupport::HashWithIndifferentAccess.new # hash_1[:key] = 'value' # # hash_2 = ActiveSupport::HashWithIndifferentAccess.new # hash_2[:key] = 'New Value!' # # hash_1.update(hash_2) # => {"key"=>"New Value!"} # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash.update({ "a" => 1 }, { "b" => 2 }) # => { "a" => 1, "b" => 2 } # # The arguments can be either an # +ActiveSupport::HashWithIndifferentAccess+ or a regular +Hash+. # In either case the merge respects the semantics of indifferent access. # # If the argument is a regular hash with keys +:key+ and "key" only one # of the values end up in the receiver, but which one is unspecified. # # When given a block, the value for duplicated keys will be determined # by the result of invoking the block with the duplicated key, the value # in the receiver, and the value in +other_hash+. The rules for duplicated # keys follow the semantics of indifferent access: # # hash_1[:key] = 10 # hash_2['key'] = 12 # hash_1.update(hash_2) { |key, old, new| old + new } # => {"key"=>22} # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#132 def update(*other_hashes, &block); end # Returns an array of the values at the specified indices: # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash[:a] = 'x' # hash[:b] = 'y' # hash.values_at('a', 'b') # => ["x", "y"] # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#237 def values_at(*keys); end # Like +merge+ but the other way around: Merges the receiver into the # argument and returns a new hash with indifferent access as result: # # hash = ActiveSupport::HashWithIndifferentAccess.new # hash['a'] = nil # hash.reverse_merge(a: 0, b: 1) # => {"a"=>nil, "b"=>1} # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#283 def with_defaults(other_hash); end # Same semantics as +reverse_merge+ but modifies the receiver in-place. # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#289 def with_defaults!(other_hash); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#62 def with_indifferent_access; end # Returns a hash with indifferent access that includes everything except given keys. # hash = { a: "x", b: "y", c: 10 }.with_indifferent_access # hash.except(:a, "b") # => {c: 10}.with_indifferent_access # hash # => { a: "x", b: "y", c: 10 }.with_indifferent_access # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#311 def without(*keys); end private # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#392 def convert_key(key); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#401 def convert_value(value, conversion: T.unsafe(nil)); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#418 def set_defaults(target); end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#426 def update_with_single_argument(other_hash, block); end class << self # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#85 def [](*args); end end end # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#342 ActiveSupport::HashWithIndifferentAccess::NOT_GIVEN = T.let(T.unsafe(nil), Object) # = Active Support \Inflector # # The Inflector transforms words from singular to plural, class names to table # names, modularized class names to ones without, and class names to foreign # keys. The default inflections for pluralization, singularization, and # uncountable words are kept in inflections.rb. # # The \Rails core team has stated patches for the inflections library will not # be accepted in order to avoid breaking legacy applications which may be # relying on errant inflections. If you discover an incorrect inflection and # require it for your application or wish to define rules for languages other # than English, please correct or add them yourself (explained below). # # source://activesupport//lib/active_support/inflector/inflections.rb#7 module ActiveSupport::Inflector extend ::ActiveSupport::Inflector # Converts strings to UpperCamelCase. # If the +uppercase_first_letter+ parameter is set to false, then produces # lowerCamelCase. # # Also converts '/' to '::' which is useful for converting # paths to namespaces. # # camelize('active_model') # => "ActiveModel" # camelize('active_model', false) # => "activeModel" # camelize('active_model/errors') # => "ActiveModel::Errors" # camelize('active_model/errors', false) # => "activeModel::Errors" # # As a rule of thumb you can think of +camelize+ as the inverse of # #underscore, though there are cases where that does not hold: # # camelize(underscore('SSLError')) # => "SslError" # # source://activesupport//lib/active_support/inflector/methods.rb#70 def camelize(term, uppercase_first_letter = T.unsafe(nil)); end # Creates a class name from a plural table name like \Rails does for table # names to models. Note that this returns a string and not a Class. (To # convert to an actual class follow +classify+ with #constantize.) # # classify('ham_and_eggs') # => "HamAndEgg" # classify('posts') # => "Post" # # Singular names are not handled correctly: # # classify('calculus') # => "Calculu" # # source://activesupport//lib/active_support/inflector/methods.rb#218 def classify(table_name); end # Tries to find a constant with the name specified in the argument string. # # constantize('Module') # => Module # constantize('Foo::Bar') # => Foo::Bar # # The name is assumed to be the one of a top-level constant, no matter # whether it starts with "::" or not. No lexical context is taken into # account: # # C = 'outside' # module M # C = 'inside' # C # => 'inside' # constantize('C') # => 'outside', same as ::C # end # # NameError is raised when the name is not in CamelCase or the constant is # unknown. # # source://activesupport//lib/active_support/inflector/methods.rb#289 def constantize(camel_cased_word); end # Replaces underscores with dashes in the string. # # dasherize('puni_puni') # => "puni-puni" # # source://activesupport//lib/active_support/inflector/methods.rb#226 def dasherize(underscored_word); end # Removes the rightmost segment from the constant expression in the string. # # deconstantize('Net::HTTP') # => "Net" # deconstantize('::Net::HTTP') # => "::Net" # deconstantize('String') # => "" # deconstantize('::String') # => "" # deconstantize('') # => "" # # See also #demodulize. # # source://activesupport//lib/active_support/inflector/methods.rb#256 def deconstantize(path); end # Removes the module part from the expression in the string. # # demodulize('ActiveSupport::Inflector::Inflections') # => "Inflections" # demodulize('Inflections') # => "Inflections" # demodulize('::Inflections') # => "Inflections" # demodulize('') # => "" # # See also #deconstantize. # # source://activesupport//lib/active_support/inflector/methods.rb#238 def demodulize(path); end # Converts the first character in the string to lowercase. # # downcase_first('If they enjoyed The Matrix') # => "if they enjoyed The Matrix" # downcase_first('I') # => "i" # downcase_first('') # => "" # # source://activesupport//lib/active_support/inflector/methods.rb#175 def downcase_first(string); end # Creates a foreign key name from a class name. # +separate_class_name_and_id_with_underscore+ sets whether # the method should put '_' between the name and 'id'. # # foreign_key('Message') # => "message_id" # foreign_key('Message', false) # => "messageid" # foreign_key('Admin::Post') # => "post_id" # # source://activesupport//lib/active_support/inflector/methods.rb#267 def foreign_key(class_name, separate_class_name_and_id_with_underscore = T.unsafe(nil)); end # Tweaks an attribute name for display to end users. # # Specifically, performs these transformations: # # * Applies human inflection rules to the argument. # * Deletes leading underscores, if any. # * Removes an "_id" suffix if present. # * Replaces underscores with spaces, if any. # * Downcases all words except acronyms. # * Capitalizes the first word. # The capitalization of the first word can be turned off by setting the # +:capitalize+ option to false (default is true). # # The trailing '_id' can be kept and capitalized by setting the # optional parameter +keep_id_suffix+ to true (default is false). # # humanize('employee_salary') # => "Employee salary" # humanize('author_id') # => "Author" # humanize('author_id', capitalize: false) # => "author" # humanize('_id') # => "Id" # humanize('author_id', keep_id_suffix: true) # => "Author id" # # If "SSL" was defined to be an acronym: # # humanize('ssl_error') # => "SSL error" # # source://activesupport//lib/active_support/inflector/methods.rb#135 def humanize(lower_case_and_underscored_word, capitalize: T.unsafe(nil), keep_id_suffix: T.unsafe(nil)); end # Yields a singleton instance of Inflector::Inflections so you can specify # additional inflector rules. If passed an optional locale, rules for other # languages can be specified. If not specified, defaults to :en. # Only rules for English are provided. # # ActiveSupport::Inflector.inflections(:en) do |inflect| # inflect.uncountable 'rails' # end # # source://activesupport//lib/active_support/inflector/inflections.rb#265 def inflections(locale = T.unsafe(nil)); end # Returns the suffix that should be added to a number to denote the position # in an ordered sequence such as 1st, 2nd, 3rd, 4th. # # ordinal(1) # => "st" # ordinal(2) # => "nd" # ordinal(1002) # => "nd" # ordinal(1003) # => "rd" # ordinal(-11) # => "th" # ordinal(-1021) # => "st" # # source://activesupport//lib/active_support/inflector/methods.rb#334 def ordinal(number); end # Turns a number into an ordinal string used to denote the position in an # ordered sequence such as 1st, 2nd, 3rd, 4th. # # ordinalize(1) # => "1st" # ordinalize(2) # => "2nd" # ordinalize(1002) # => "1002nd" # ordinalize(1003) # => "1003rd" # ordinalize(-11) # => "-11th" # ordinalize(-1021) # => "-1021st" # # source://activesupport//lib/active_support/inflector/methods.rb#347 def ordinalize(number); end # Replaces special characters in a string so that it may be used as part of # a 'pretty' URL. # # parameterize("Donald E. Knuth") # => "donald-e-knuth" # parameterize("^très|Jolie-- ") # => "tres-jolie" # # To use a custom separator, override the +separator+ argument. # # parameterize("Donald E. Knuth", separator: '_') # => "donald_e_knuth" # parameterize("^très|Jolie__ ", separator: '_') # => "tres_jolie" # # To preserve the case of the characters in a string, use the +preserve_case+ argument. # # parameterize("Donald E. Knuth", preserve_case: true) # => "Donald-E-Knuth" # parameterize("^très|Jolie-- ", preserve_case: true) # => "tres-Jolie" # # It preserves dashes and underscores unless they are used as separators: # # parameterize("^très|Jolie__ ") # => "tres-jolie__" # parameterize("^très|Jolie-- ", separator: "_") # => "tres_jolie--" # parameterize("^très_Jolie-- ", separator: ".") # => "tres_jolie--" # # If the optional parameter +locale+ is specified, # the word will be parameterized as a word of that language. # By default, this parameter is set to nil and it will use # the configured I18n.locale. # # source://activesupport//lib/active_support/inflector/transliterate.rb#123 def parameterize(string, separator: T.unsafe(nil), preserve_case: T.unsafe(nil), locale: T.unsafe(nil)); end # Returns the plural form of the word in the string. # # If passed an optional +locale+ parameter, the word will be # pluralized using rules defined for that language. By default, # this parameter is set to :en. # # pluralize('post') # => "posts" # pluralize('octopus') # => "octopi" # pluralize('sheep') # => "sheep" # pluralize('words') # => "words" # pluralize('CamelOctopus') # => "CamelOctopi" # pluralize('ley', :es) # => "leyes" # # source://activesupport//lib/active_support/inflector/methods.rb#33 def pluralize(word, locale = T.unsafe(nil)); end # Tries to find a constant with the name specified in the argument string. # # safe_constantize('Module') # => Module # safe_constantize('Foo::Bar') # => Foo::Bar # # The name is assumed to be the one of a top-level constant, no matter # whether it starts with "::" or not. No lexical context is taken into # account: # # C = 'outside' # module M # C = 'inside' # C # => 'inside' # safe_constantize('C') # => 'outside', same as ::C # end # # +nil+ is returned when the name is not in CamelCase or the constant (or # part of it) is unknown. # # safe_constantize('blargle') # => nil # safe_constantize('UnknownModule') # => nil # safe_constantize('UnknownModule::Foo::Bar') # => nil # # source://activesupport//lib/active_support/inflector/methods.rb#315 def safe_constantize(camel_cased_word); end # The reverse of #pluralize, returns the singular form of a word in a # string. # # If passed an optional +locale+ parameter, the word will be # singularized using rules defined for that language. By default, # this parameter is set to :en. # # singularize('posts') # => "post" # singularize('octopi') # => "octopus" # singularize('sheep') # => "sheep" # singularize('word') # => "word" # singularize('CamelOctopi') # => "CamelOctopus" # singularize('leyes', :es) # => "ley" # # source://activesupport//lib/active_support/inflector/methods.rb#50 def singularize(word, locale = T.unsafe(nil)); end # Creates the name of a table like \Rails does for models to table names. # This method uses the #pluralize method on the last word in the string. # # tableize('RawScaledScorer') # => "raw_scaled_scorers" # tableize('ham_and_egg') # => "ham_and_eggs" # tableize('fancyCategory') # => "fancy_categories" # # source://activesupport//lib/active_support/inflector/methods.rb#204 def tableize(class_name); end # Capitalizes all the words and replaces some characters in the string to # create a nicer looking title. +titleize+ is meant for creating pretty # output. It is not used in the \Rails internals. # # The trailing '_id','Id'.. can be kept and capitalized by setting the # optional parameter +keep_id_suffix+ to true. # By default, this parameter is false. # # titleize('man from the boondocks') # => "Man From The Boondocks" # titleize('x-men: the last stand') # => "X Men: The Last Stand" # titleize('TheManWithoutAPast') # => "The Man Without A Past" # titleize('raiders_of_the_lost_ark') # => "Raiders Of The Lost Ark" # titleize('string_ending_with_id', keep_id_suffix: true) # => "String Ending With Id" # # source://activesupport//lib/active_support/inflector/methods.rb#192 def titleize(word, keep_id_suffix: T.unsafe(nil)); end # Replaces non-ASCII characters with an ASCII approximation, or if none # exists, a replacement character which defaults to "?". # # transliterate('Ærøskøbing') # # => "AEroskobing" # # Default approximations are provided for Western/Latin characters, # e.g, "ø", "ñ", "é", "ß", etc. # # This method is I18n aware, so you can set up custom approximations for a # locale. This can be useful, for example, to transliterate German's "ü" # and "ö" to "ue" and "oe", or to add support for transliterating Russian # to ASCII. # # In order to make your custom transliterations available, you must set # them as the i18n.transliterate.rule i18n key: # # # Store the transliterations in locales/de.yml # i18n: # transliterate: # rule: # ü: "ue" # ö: "oe" # # # Or set them using Ruby # I18n.backend.store_translations(:de, i18n: { # transliterate: { # rule: { # 'ü' => 'ue', # 'ö' => 'oe' # } # } # }) # # The value for i18n.transliterate.rule can be a simple Hash that # maps characters to ASCII approximations as shown above, or, for more # complex requirements, a Proc: # # I18n.backend.store_translations(:de, i18n: { # transliterate: { # rule: ->(string) { MyTransliterator.transliterate(string) } # } # }) # # Now you can have different transliterations for each locale: # # transliterate('Jürgen', locale: :en) # # => "Jurgen" # # transliterate('Jürgen', locale: :de) # # => "Juergen" # # Transliteration is restricted to UTF-8, US-ASCII, and GB18030 strings. # Other encodings will raise an ArgumentError. # # @raise [ArgumentError] # # source://activesupport//lib/active_support/inflector/transliterate.rb#64 def transliterate(string, replacement = T.unsafe(nil), locale: T.unsafe(nil)); end # Makes an underscored, lowercase form from the expression in the string. # # Changes '::' to '/' to convert namespaces to paths. # # underscore('ActiveModel') # => "active_model" # underscore('ActiveModel::Errors') # => "active_model/errors" # # As a rule of thumb you can think of +underscore+ as the inverse of # #camelize, though there are cases where that does not hold: # # camelize(underscore('SSLError')) # => "SslError" # # source://activesupport//lib/active_support/inflector/methods.rb#99 def underscore(camel_cased_word); end # Converts the first character in the string to uppercase. # # upcase_first('what a Lovely Day') # => "What a Lovely Day" # upcase_first('w') # => "W" # upcase_first('') # => "" # # source://activesupport//lib/active_support/inflector/methods.rb#166 def upcase_first(string); end private # Applies inflection rules for +singularize+ and +pluralize+. # # If passed an optional +locale+ parameter, the uncountables will be # found for that locale. # # apply_inflections('post', inflections.plurals, :en) # => "posts" # apply_inflections('posts', inflections.singulars, :en) # => "post" # # source://activesupport//lib/active_support/inflector/methods.rb#376 def apply_inflections(word, rules, locale = T.unsafe(nil)); end # Mounts a regular expression, returned as a string to ease interpolation, # that will match part by part the given constant. # # const_regexp("Foo::Bar::Baz") # => "Foo(::Bar(::Baz)?)?" # const_regexp("::") # => "::" # # source://activesupport//lib/active_support/inflector/methods.rb#357 def const_regexp(camel_cased_word); end end # source://activesupport//lib/active_support/inflector/transliterate.rb#8 ActiveSupport::Inflector::ALLOWED_ENCODINGS_FOR_TRANSLITERATE = T.let(T.unsafe(nil), Array) # = Active Support \Inflections # # A singleton instance of this class is yielded by Inflector.inflections, # which can then be used to specify additional inflection rules. If passed # an optional locale, rules for other languages can be specified. The # default locale is :en. Only rules for English are provided. # # ActiveSupport::Inflector.inflections(:en) do |inflect| # inflect.plural /^(ox)$/i, '\1\2en' # inflect.singular /^(ox)en/i, '\1' # # inflect.irregular 'cactus', 'cacti' # # inflect.uncountable 'equipment' # end # # New rules are added at the top. So in the example above, the irregular # rule for cactus will now be the first of the pluralization and # singularization rules that is runs. This guarantees that your rules run # before any of the rules that may already have been loaded. # # source://activesupport//lib/active_support/inflector/inflections.rb#30 class ActiveSupport::Inflector::Inflections # @return [Inflections] a new instance of Inflections # # source://activesupport//lib/active_support/inflector/inflections.rb#80 def initialize; end # Specifies a new acronym. An acronym must be specified as it will appear # in a camelized string. An underscore string that contains the acronym # will retain the acronym when passed to +camelize+, +humanize+, or # +titleize+. A camelized string that contains the acronym will maintain # the acronym when titleized or humanized, and will convert the acronym # into a non-delimited single lowercase word when passed to +underscore+. # # acronym 'HTML' # titleize 'html' # => 'HTML' # camelize 'html' # => 'HTML' # underscore 'MyHTML' # => 'my_html' # # The acronym, however, must occur as a delimited unit and not be part of # another word for conversions to recognize it: # # acronym 'HTTP' # camelize 'my_http_delimited' # => 'MyHTTPDelimited' # camelize 'https' # => 'Https', not 'HTTPs' # underscore 'HTTPS' # => 'http_s', not 'https' # # acronym 'HTTPS' # camelize 'https' # => 'HTTPS' # underscore 'HTTPS' # => 'https' # # Note: Acronyms that are passed to +pluralize+ will no longer be # recognized, since the acronym will not occur as a delimited unit in the # pluralized result. To work around this, you must specify the pluralized # form as an acronym as well: # # acronym 'API' # camelize(pluralize('api')) # => 'Apis' # # acronym 'APIs' # camelize(pluralize('api')) # => 'APIs' # # +acronym+ may be used to specify any word that contains an acronym or # otherwise needs to maintain a non-standard capitalization. The only # restriction is that the word must begin with a capital letter. # # acronym 'RESTful' # underscore 'RESTful' # => 'restful' # underscore 'RESTfulController' # => 'restful_controller' # titleize 'RESTfulController' # => 'RESTful Controller' # camelize 'restful' # => 'RESTful' # camelize 'restful_controller' # => 'RESTfulController' # # acronym 'McDonald' # underscore 'McDonald' # => 'mcdonald' # camelize 'mcdonald' # => 'McDonald' # # source://activesupport//lib/active_support/inflector/inflections.rb#142 def acronym(word); end # Returns the value of attribute acronyms. # # source://activesupport//lib/active_support/inflector/inflections.rb#76 def acronyms; end # source://activesupport//lib/active_support/inflector/inflections.rb#78 def acronyms_camelize_regex; end # source://activesupport//lib/active_support/inflector/inflections.rb#78 def acronyms_underscore_regex; end # Clears the loaded inflections within a given scope (default is # :all). Give the scope as a symbol of the inflection type, the # options are: :plurals, :singulars, :uncountables, # :humans, :acronyms. # # clear :all # clear :plurals # # source://activesupport//lib/active_support/inflector/inflections.rb#231 def clear(scope = T.unsafe(nil)); end # Specifies a humanized form of a string by a regular expression rule or # by a string mapping. When using a regular expression based replacement, # the normal humanize formatting is called after the replacement. When a # string is used, the human form should be specified as desired (example: # 'The name', not 'the_name'). # # human /_cnt$/i, '\1_count' # human 'legacy_col_person_name', 'Name' # # source://activesupport//lib/active_support/inflector/inflections.rb#220 def human(rule, replacement); end # Returns the value of attribute humans. # # source://activesupport//lib/active_support/inflector/inflections.rb#76 def humans; end # Specifies a new irregular that applies to both pluralization and # singularization at the same time. This can only be used for strings, not # regular expressions. You simply pass the irregular in singular and # plural form. # # irregular 'cactus', 'cacti' # irregular 'person', 'people' # # source://activesupport//lib/active_support/inflector/inflections.rb#174 def irregular(singular, plural); end # Specifies a new pluralization rule and its replacement. The rule can # either be a string or a regular expression. The replacement should # always be a string that may include references to the matched data from # the rule. # # source://activesupport//lib/active_support/inflector/inflections.rb#151 def plural(rule, replacement); end # Returns the value of attribute plurals. # # source://activesupport//lib/active_support/inflector/inflections.rb#76 def plurals; end # Specifies a new singularization rule and its replacement. The rule can # either be a string or a regular expression. The replacement should # always be a string that may include references to the matched data from # the rule. # # source://activesupport//lib/active_support/inflector/inflections.rb#161 def singular(rule, replacement); end # Returns the value of attribute singulars. # # source://activesupport//lib/active_support/inflector/inflections.rb#76 def singulars; end # Specifies words that are uncountable and should not be inflected. # # uncountable 'money' # uncountable 'money', 'information' # uncountable %w( money information rice ) # # source://activesupport//lib/active_support/inflector/inflections.rb#208 def uncountable(*words); end # Returns the value of attribute uncountables. # # source://activesupport//lib/active_support/inflector/inflections.rb#76 def uncountables; end private # source://activesupport//lib/active_support/inflector/inflections.rb#250 def define_acronym_regex_patterns; end # Private, for the test suite. # # source://activesupport//lib/active_support/inflector/inflections.rb#86 def initialize_dup(orig); end class << self # source://activesupport//lib/active_support/inflector/inflections.rb#65 def instance(locale = T.unsafe(nil)); end # source://activesupport//lib/active_support/inflector/inflections.rb#69 def instance_or_fallback(locale); end end end # source://activesupport//lib/active_support/inflector/inflections.rb#33 class ActiveSupport::Inflector::Inflections::Uncountables < ::Array # @return [Uncountables] a new instance of Uncountables # # source://activesupport//lib/active_support/inflector/inflections.rb#34 def initialize; end # source://activesupport//lib/active_support/inflector/inflections.rb#44 def <<(*word); end # source://activesupport//lib/active_support/inflector/inflections.rb#48 def add(words); end # source://activesupport//lib/active_support/inflector/inflections.rb#39 def delete(entry); end # @return [Boolean] # # source://activesupport//lib/active_support/inflector/inflections.rb#55 def uncountable?(str); end private # source://activesupport//lib/active_support/inflector/inflections.rb#60 def to_regex(string); end end # = Inheritable Options # # +InheritableOptions+ provides a constructor to build an OrderedOptions # hash inherited from another hash. # # Use this if you already have some hash and you want to create a new one based on it. # # h = ActiveSupport::InheritableOptions.new({ girl: 'Mary', boy: 'John' }) # h.girl # => 'Mary' # h.boy # => 'John' # # If the existing hash has string keys, call Hash#symbolize_keys on it. # # h = ActiveSupport::InheritableOptions.new({ 'girl' => 'Mary', 'boy' => 'John' }.symbolize_keys) # h.girl # => 'Mary' # h.boy # => 'John' # # source://activesupport//lib/active_support/ordered_options.rb#93 class ActiveSupport::InheritableOptions < ::ActiveSupport::OrderedOptions # @return [InheritableOptions] a new instance of InheritableOptions # # source://activesupport//lib/active_support/ordered_options.rb#94 def initialize(parent = T.unsafe(nil)); end # source://activesupport//lib/active_support/ordered_options.rb#105 def inheritable_copy; end end # source://activesupport//lib/active_support/isolated_execution_state.rb#6 module ActiveSupport::IsolatedExecutionState class << self # source://activesupport//lib/active_support/isolated_execution_state.rb#37 def [](key); end # source://activesupport//lib/active_support/isolated_execution_state.rb#41 def []=(key, value); end # source://activesupport//lib/active_support/isolated_execution_state.rb#53 def clear; end # source://activesupport//lib/active_support/isolated_execution_state.rb#57 def context; end # source://activesupport//lib/active_support/isolated_execution_state.rb#49 def delete(key); end # Returns the value of attribute isolation_level. # # source://activesupport//lib/active_support/isolated_execution_state.rb#13 def isolation_level; end # source://activesupport//lib/active_support/isolated_execution_state.rb#15 def isolation_level=(level); end # @return [Boolean] # # source://activesupport//lib/active_support/isolated_execution_state.rb#45 def key?(key); end # Returns the value of attribute scope. # # source://activesupport//lib/active_support/isolated_execution_state.rb#13 def scope; end # source://activesupport//lib/active_support/isolated_execution_state.rb#61 def share_with(other); end # source://activesupport//lib/active_support/isolated_execution_state.rb#33 def unique_id; end private # source://activesupport//lib/active_support/isolated_execution_state.rb#69 def state; end end end # source://activesupport//lib/active_support/json/decoding.rb#11 module ActiveSupport::JSON class << self # Parses a JSON string (JavaScript Object Notation) into a hash. # See http://www.json.org for more info. # # ActiveSupport::JSON.decode("{\"team\":\"rails\",\"players\":\"36\"}") # => {"team" => "rails", "players" => "36"} # # source://activesupport//lib/active_support/json/decoding.rb#22 def decode(json); end # source://activesupport//lib/active_support/json/encoding.rb#22 def dump(value, options = T.unsafe(nil)); end # source://activesupport//lib/active_support/json/encoding.rb#22 def encode(value, options = T.unsafe(nil)); end # Parses a JSON string (JavaScript Object Notation) into a hash. # See http://www.json.org for more info. # # ActiveSupport::JSON.decode("{\"team\":\"rails\",\"players\":\"36\"}") # => {"team" => "rails", "players" => "36"} # # source://activesupport//lib/active_support/json/decoding.rb#22 def load(json); end # Returns the class of the error that will be raised when there is an # error in decoding JSON. Using this method means you won't directly # depend on the ActiveSupport's JSON implementation, in case it changes # in the future. # # begin # obj = ActiveSupport::JSON.decode(some_string) # rescue ActiveSupport::JSON.parse_error # Rails.logger.warn("Attempted to decode invalid JSON: #{some_string}") # end # # source://activesupport//lib/active_support/json/decoding.rb#43 def parse_error; end private # source://activesupport//lib/active_support/json/decoding.rb#48 def convert_dates_from(data); end end end # source://activesupport//lib/active_support/json/decoding.rb#14 ActiveSupport::JSON::DATETIME_REGEX = T.let(T.unsafe(nil), Regexp) # matches YAML-formatted dates # # source://activesupport//lib/active_support/json/decoding.rb#13 ActiveSupport::JSON::DATE_REGEX = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/json/encoding.rb#28 module ActiveSupport::JSON::Encoding class << self # If true, encode >, <, & as escaped unicode sequences (e.g. > as \u003e) # as a safety measure. # # source://activesupport//lib/active_support/json/encoding.rb#103 def escape_html_entities_in_json; end # If true, encode >, <, & as escaped unicode sequences (e.g. > as \u003e) # as a safety measure. # # source://activesupport//lib/active_support/json/encoding.rb#103 def escape_html_entities_in_json=(_arg0); end # Sets the encoder used by \Rails to encode Ruby objects into JSON strings # in +Object#to_json+ and +ActiveSupport::JSON.encode+. # # source://activesupport//lib/active_support/json/encoding.rb#111 def json_encoder; end # Sets the encoder used by \Rails to encode Ruby objects into JSON strings # in +Object#to_json+ and +ActiveSupport::JSON.encode+. # # source://activesupport//lib/active_support/json/encoding.rb#111 def json_encoder=(_arg0); end # Sets the precision of encoded time values. # Defaults to 3 (equivalent to millisecond precision) # # source://activesupport//lib/active_support/json/encoding.rb#107 def time_precision; end # Sets the precision of encoded time values. # Defaults to 3 (equivalent to millisecond precision) # # source://activesupport//lib/active_support/json/encoding.rb#107 def time_precision=(_arg0); end # If true, use ISO 8601 format for dates and times. Otherwise, fall back # to the Active Support legacy format. # # source://activesupport//lib/active_support/json/encoding.rb#99 def use_standard_json_time_format; end # If true, use ISO 8601 format for dates and times. Otherwise, fall back # to the Active Support legacy format. # # source://activesupport//lib/active_support/json/encoding.rb#99 def use_standard_json_time_format=(_arg0); end end end # source://activesupport//lib/active_support/json/encoding.rb#29 class ActiveSupport::JSON::Encoding::JSONGemEncoder # @return [JSONGemEncoder] a new instance of JSONGemEncoder # # source://activesupport//lib/active_support/json/encoding.rb#32 def initialize(options = T.unsafe(nil)); end # Encode the given object into a JSON string # # source://activesupport//lib/active_support/json/encoding.rb#37 def encode(value); end # Returns the value of attribute options. # # source://activesupport//lib/active_support/json/encoding.rb#30 def options; end private # Convert an object into a "JSON-ready" representation composed of # primitives like Hash, Array, String, Symbol, Numeric, # and +true+/+false+/+nil+. # Recursively calls #as_json to the object to recursively build a # fully JSON-ready object. # # This allows developers to implement #as_json without having to # worry about what base types of objects they are allowed to return # or having to remember to call #as_json recursively. # # Note: the +options+ hash passed to +object.to_json+ is only passed # to +object.as_json+, not any of this method's recursive +#as_json+ # calls. # # source://activesupport//lib/active_support/json/encoding.rb#70 def jsonify(value); end # Encode a "jsonified" Ruby data structure using the JSON gem # # source://activesupport//lib/active_support/json/encoding.rb#91 def stringify(jsonified); end end # = Key Generator # # KeyGenerator is a simple wrapper around OpenSSL's implementation of PBKDF2. # It can be used to derive a number of keys for various purposes from a given secret. # This lets \Rails applications have a single secure secret, but avoid reusing that # key in multiple incompatible contexts. # # source://activesupport//lib/active_support/key_generator.rb#13 class ActiveSupport::KeyGenerator # @return [KeyGenerator] a new instance of KeyGenerator # # source://activesupport//lib/active_support/key_generator.rb#28 def initialize(secret, options = T.unsafe(nil)); end # Returns a derived key suitable for use. The default +key_size+ is chosen # to be compatible with the default settings of ActiveSupport::MessageVerifier. # i.e. OpenSSL::Digest::SHA1#block_length # # source://activesupport//lib/active_support/key_generator.rb#41 def generate_key(salt, key_size = T.unsafe(nil)); end # source://activesupport//lib/active_support/key_generator.rb#45 def inspect; end class << self # source://activesupport//lib/active_support/key_generator.rb#23 def hash_digest_class; end # source://activesupport//lib/active_support/key_generator.rb#15 def hash_digest_class=(klass); end end end # = Lazy Load Hooks # # LazyLoadHooks allows \Rails to lazily load a lot of components and thus # making the app boot faster. Because of this feature now there is no need to # require +ActiveRecord::Base+ at boot time purely to apply # configuration. Instead a hook is registered that applies configuration once # +ActiveRecord::Base+ is loaded. Here +ActiveRecord::Base+ is # used as example but this feature can be applied elsewhere too. # # Here is an example where on_load method is called to register a hook. # # initializer 'active_record.initialize_timezone' do # ActiveSupport.on_load(:active_record) do # self.time_zone_aware_attributes = true # self.default_timezone = :utc # end # end # # When the entirety of +ActiveRecord::Base+ has been # evaluated then run_load_hooks is invoked. The very last line of # +ActiveRecord::Base+ is: # # ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base) # # run_load_hooks will then execute all the hooks that were registered # with the on_load method. In the case of the above example, it will # execute the block of code that is in the +initializer+. # # Registering a hook that has already run results in that hook executing # immediately. This allows hooks to be nested for code that relies on # multiple lazily loaded components: # # initializer "action_text.renderer" do # ActiveSupport.on_load(:action_controller_base) do # ActiveSupport.on_load(:action_text_content) do # self.default_renderer = Class.new(ActionController::Base).renderer # end # end # end # # source://activesupport//lib/active_support/lazy_load_hooks.rb#43 module ActiveSupport::LazyLoadHooks # Declares a block that will be executed when a \Rails component is fully # loaded. If the component has already loaded, the block is executed # immediately. # # Options: # # * :yield - Yields the object that run_load_hooks to +block+. # * :run_once - Given +block+ will run only once. # # source://activesupport//lib/active_support/lazy_load_hooks.rb#60 def on_load(name, options = T.unsafe(nil), &block); end # Executes all blocks registered to +name+ via on_load, using +base+ as the # evaluation context. # # ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base) # # In the case of the above example, it will execute all hooks registered # for +:active_record+ within the class +ActiveRecord::Base+. # # source://activesupport//lib/active_support/lazy_load_hooks.rb#75 def run_load_hooks(name, base = T.unsafe(nil)); end private # source://activesupport//lib/active_support/lazy_load_hooks.rb#91 def execute_hook(name, base, options, block); end # source://activesupport//lib/active_support/lazy_load_hooks.rb#83 def with_execution_control(name, block, once); end class << self # source://activesupport//lib/active_support/lazy_load_hooks.rb#44 def extended(base); end end end # = Active Support Log \Subscriber # # +ActiveSupport::LogSubscriber+ is an object set to consume # ActiveSupport::Notifications with the sole purpose of logging them. # The log subscriber dispatches notifications to a registered object based # on its given namespace. # # An example would be Active Record log subscriber responsible for logging # queries: # # module ActiveRecord # class LogSubscriber < ActiveSupport::LogSubscriber # attach_to :active_record # # def sql(event) # info "#{event.payload[:name]} (#{event.duration}) #{event.payload[:sql]}" # end # end # end # # ActiveRecord::LogSubscriber.logger must be set as well, but it is assigned # automatically in a \Rails environment. # # After configured, whenever a "sql.active_record" notification is # published, it will properly dispatch the event # (ActiveSupport::Notifications::Event) to the +sql+ method. # # Being an ActiveSupport::Notifications consumer, # +ActiveSupport::LogSubscriber+ exposes a simple interface to check if # instrumented code raises an exception. It is common to log a different # message in case of an error, and this can be achieved by extending # the previous example: # # module ActiveRecord # class LogSubscriber < ActiveSupport::LogSubscriber # def sql(event) # exception = event.payload[:exception] # # if exception # exception_object = event.payload[:exception_object] # # error "[ERROR] #{event.payload[:name]}: #{exception.join(', ')} " \ # "(#{exception_object.backtrace.first})" # else # # standard logger code # end # end # end # end # # +ActiveSupport::LogSubscriber+ also has some helpers to deal with # logging. For example, ActiveSupport::LogSubscriber.flush_all! will ensure # that all logs are flushed, and it is called in Rails::Rack::Logger after a # request finishes. # # source://activesupport//lib/active_support/log_subscriber.rb#64 class ActiveSupport::LogSubscriber < ::ActiveSupport::Subscriber # @return [LogSubscriber] a new instance of LogSubscriber # # source://activesupport//lib/active_support/log_subscriber.rb#136 def initialize; end # source://activesupport//lib/active_support/log_subscriber.rb#149 def call(event); end # source://activesupport//lib/active_support/log_subscriber.rb#86 def colorize_logging; end # source://activesupport//lib/active_support/log_subscriber.rb#86 def colorize_logging=(val); end # source://activesupport//lib/active_support/log_subscriber.rb#166 def debug(progname = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/log_subscriber.rb#166 def error(progname = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/log_subscriber.rb#161 def event_levels=(_arg0); end # source://activesupport//lib/active_support/log_subscriber.rb#166 def fatal(progname = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/log_subscriber.rb#166 def info(progname = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/log_subscriber.rb#141 def logger; end # source://activesupport//lib/active_support/log_subscriber.rb#155 def publish_event(event); end # @return [Boolean] # # source://activesupport//lib/active_support/log_subscriber.rb#145 def silenced?(event); end # source://activesupport//lib/active_support/log_subscriber.rb#166 def unknown(progname = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/log_subscriber.rb#166 def warn(progname = T.unsafe(nil), &block); end private # Set color by using a symbol or one of the defined constants. Set modes # by specifying bold, italic, or underline options. Inspired by Highline, # this method will automatically clear formatting at the end of the returned String. # # source://activesupport//lib/active_support/log_subscriber.rb#175 def color(text, color, mode_options = T.unsafe(nil)); end # source://activesupport//lib/active_support/log_subscriber.rb#197 def log_exception(name, e); end # source://activesupport//lib/active_support/log_subscriber.rb#183 def mode_from(options); end class << self # source://activesupport//lib/active_support/log_subscriber.rb#102 def attach_to(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/log_subscriber.rb#86 def colorize_logging; end # source://activesupport//lib/active_support/log_subscriber.rb#86 def colorize_logging=(val); end # Flush all log_subscribers' logger. # # source://activesupport//lib/active_support/log_subscriber.rb#115 def flush_all!; end # source://activesupport//lib/active_support/log_subscriber.rb#87 def log_levels; end # source://activesupport//lib/active_support/log_subscriber.rb#87 def log_levels=(value); end # source://activesupport//lib/active_support/log_subscriber.rb#87 def log_levels?; end # source://activesupport//lib/active_support/log_subscriber.rb#110 def log_subscribers; end # source://activesupport//lib/active_support/log_subscriber.rb#96 def logger; end # Sets the attribute logger # # @param value the value to set the attribute logger to. # # source://activesupport//lib/active_support/log_subscriber.rb#108 def logger=(_arg0); end private # source://activesupport//lib/active_support/log_subscriber.rb#120 def fetch_public_methods(subscriber, inherit_all); end # source://activesupport//lib/active_support/log_subscriber.rb#124 def set_event_levels; end # source://activesupport//lib/active_support/log_subscriber.rb#130 def subscribe_log_level(method, level); end end end # ANSI sequence colors # # source://activesupport//lib/active_support/log_subscriber.rb#77 ActiveSupport::LogSubscriber::BLACK = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/log_subscriber.rb#81 ActiveSupport::LogSubscriber::BLUE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/log_subscriber.rb#66 ActiveSupport::LogSubscriber::BOLD = T.let(T.unsafe(nil), ActiveSupport::Deprecation::DeprecatedObjectProxy) # Embed in a String to clear all previous ANSI sequences. # # source://activesupport//lib/active_support/log_subscriber.rb#65 ActiveSupport::LogSubscriber::CLEAR = T.let(T.unsafe(nil), ActiveSupport::Deprecation::DeprecatedObjectProxy) # source://activesupport//lib/active_support/log_subscriber.rb#83 ActiveSupport::LogSubscriber::CYAN = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/log_subscriber.rb#79 ActiveSupport::LogSubscriber::GREEN = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/log_subscriber.rb#89 ActiveSupport::LogSubscriber::LEVEL_CHECKS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/log_subscriber.rb#82 ActiveSupport::LogSubscriber::MAGENTA = T.let(T.unsafe(nil), String) # ANSI sequence modes # # source://activesupport//lib/active_support/log_subscriber.rb#69 ActiveSupport::LogSubscriber::MODES = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/log_subscriber.rb#78 ActiveSupport::LogSubscriber::RED = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/log_subscriber.rb#84 ActiveSupport::LogSubscriber::WHITE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/log_subscriber.rb#80 ActiveSupport::LogSubscriber::YELLOW = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/logger.rb#8 class ActiveSupport::Logger < ::Logger include ::ActiveSupport::LoggerSilence include ::ActiveSupport::LoggerThreadSafeLevel # @return [Logger] a new instance of Logger # # source://activesupport//lib/active_support/logger.rb#29 def initialize(*args, **kwargs); end # source://activesupport//lib/active_support/logger_silence.rb#12 def silencer; end # source://activesupport//lib/active_support/logger_silence.rb#12 def silencer=(val); end class << self # Returns true if the logger destination matches one of the sources # # logger = Logger.new(STDOUT) # ActiveSupport::Logger.logger_outputs_to?(logger, STDOUT) # # => true # # @return [Boolean] # # source://activesupport//lib/active_support/logger.rb#16 def logger_outputs_to?(logger, *sources); end # source://activesupport//lib/active_support/logger_silence.rb#12 def silencer; end # source://activesupport//lib/active_support/logger_silence.rb#12 def silencer=(val); end end end # Simple formatter which only displays the message. # # source://activesupport//lib/active_support/logger.rb#36 class ActiveSupport::Logger::SimpleFormatter < ::Logger::Formatter # This method is invoked when a log event occurs # # source://activesupport//lib/active_support/logger.rb#37 def call(severity, timestamp, progname, msg); end end # source://activesupport//lib/active_support/logger_silence.rb#8 module ActiveSupport::LoggerSilence extend ::ActiveSupport::Concern include ::ActiveSupport::LoggerThreadSafeLevel # Silences the logger for the duration of the block. # # source://activesupport//lib/active_support/logger_silence.rb#17 def silence(severity = T.unsafe(nil)); end end # source://activesupport//lib/active_support/logger_thread_safe_level.rb#7 module ActiveSupport::LoggerThreadSafeLevel extend ::ActiveSupport::Concern # source://activesupport//lib/active_support/logger_thread_safe_level.rb#12 def debug?; end # source://activesupport//lib/active_support/logger_thread_safe_level.rb#12 def error?; end # source://activesupport//lib/active_support/logger_thread_safe_level.rb#12 def fatal?; end # source://activesupport//lib/active_support/logger_thread_safe_level.rb#12 def info?; end # source://activesupport//lib/active_support/logger_thread_safe_level.rb#38 def level; end # source://activesupport//lib/active_support/logger_thread_safe_level.rb#18 def local_level; end # source://activesupport//lib/active_support/logger_thread_safe_level.rb#22 def local_level=(level); end # Change the thread-local level for the duration of the given block. # # source://activesupport//lib/active_support/logger_thread_safe_level.rb#43 def log_at(level); end # source://activesupport//lib/active_support/logger_thread_safe_level.rb#12 def unknown?; end # source://activesupport//lib/active_support/logger_thread_safe_level.rb#12 def warn?; end private # source://activesupport//lib/active_support/logger_thread_safe_level.rb#51 def local_level_key; end end # = Active Support Message Encryptor # # MessageEncryptor is a simple way to encrypt values which get stored # somewhere you don't trust. # # The cipher text and initialization vector are base64 encoded and returned # to you. # # This can be used in situations similar to the MessageVerifier, but # where you don't want users to be able to determine the value of the payload. # # len = ActiveSupport::MessageEncryptor.key_len # salt = SecureRandom.random_bytes(len) # key = ActiveSupport::KeyGenerator.new('password').generate_key(salt, len) # => "\x89\xE0\x156\xAC..." # crypt = ActiveSupport::MessageEncryptor.new(key) # => # # encrypted_data = crypt.encrypt_and_sign('my secret data') # => "NlFBTTMwOUV5UlA1QlNEN2xkY2d6eThYWWh..." # crypt.decrypt_and_verify(encrypted_data) # => "my secret data" # # The +decrypt_and_verify+ method will raise an # +ActiveSupport::MessageEncryptor::InvalidMessage+ exception if the data # provided cannot be decrypted or verified. # # crypt.decrypt_and_verify('not encrypted data') # => ActiveSupport::MessageEncryptor::InvalidMessage # # === Confining messages to a specific purpose # # By default any message can be used throughout your app. But they can also be # confined to a specific +:purpose+. # # token = crypt.encrypt_and_sign("this is the chair", purpose: :login) # # Then that same purpose must be passed when verifying to get the data back out: # # crypt.decrypt_and_verify(token, purpose: :login) # => "this is the chair" # crypt.decrypt_and_verify(token, purpose: :shipping) # => nil # crypt.decrypt_and_verify(token) # => nil # # Likewise, if a message has no purpose it won't be returned when verifying with # a specific purpose. # # token = crypt.encrypt_and_sign("the conversation is lively") # crypt.decrypt_and_verify(token, purpose: :scare_tactics) # => nil # crypt.decrypt_and_verify(token) # => "the conversation is lively" # # === Making messages expire # # By default messages last forever and verifying one year from now will still # return the original value. But messages can be set to expire at a given # time with +:expires_in+ or +:expires_at+. # # crypt.encrypt_and_sign(parcel, expires_in: 1.month) # crypt.encrypt_and_sign(doowad, expires_at: Time.now.end_of_year) # # Then the messages can be verified and returned up to the expire time. # Thereafter, verifying returns +nil+. # # === Rotating keys # # MessageEncryptor also supports rotating out old configurations by falling # back to a stack of encryptors. Call +rotate+ to build and add an encryptor # so +decrypt_and_verify+ will also try the fallback. # # By default any rotated encryptors use the values of the primary # encryptor unless specified otherwise. # # You'd give your encryptor the new defaults: # # crypt = ActiveSupport::MessageEncryptor.new(@secret, cipher: "aes-256-gcm") # # Then gradually rotate the old values out by adding them as fallbacks. Any message # generated with the old values will then work until the rotation is removed. # # crypt.rotate old_secret # Fallback to an old secret instead of @secret. # crypt.rotate cipher: "aes-256-cbc" # Fallback to an old cipher instead of aes-256-gcm. # # Though if both the secret and the cipher was changed at the same time, # the above should be combined into: # # crypt.rotate old_secret, cipher: "aes-256-cbc" # # source://activesupport//lib/active_support/message_encryptor.rb#90 class ActiveSupport::MessageEncryptor < ::ActiveSupport::Messages::Codec include ::ActiveSupport::Messages::Rotator # Initialize a new MessageEncryptor. +secret+ must be at least as long as # the cipher key size. For the default 'aes-256-gcm' cipher, this is 256 # bits. If you are using a user-entered secret, you can generate a suitable # key by using ActiveSupport::KeyGenerator or a similar key # derivation function. # # The first additional parameter is used as the signature key for # MessageVerifier. This allows you to specify keys to encrypt and sign # data. Ignored when using an AEAD cipher like 'aes-256-gcm'. # # ActiveSupport::MessageEncryptor.new('secret', 'signature_secret') # # ==== Options # # [+:cipher+] # Cipher to use. Can be any cipher returned by +OpenSSL::Cipher.ciphers+. # Default is 'aes-256-gcm'. # # [+:digest+] # Digest used for signing. Ignored when using an AEAD cipher like # 'aes-256-gcm'. # # [+:serializer+] # The serializer used to serialize message data. You can specify any # object that responds to +dump+ and +load+, or you can choose from # several preconfigured serializers: +:marshal+, +:json_allow_marshal+, # +:json+, +:message_pack_allow_marshal+, +:message_pack+. # # The preconfigured serializers include a fallback mechanism to support # multiple deserialization formats. For example, the +:marshal+ serializer # will serialize using +Marshal+, but can deserialize using +Marshal+, # ActiveSupport::JSON, or ActiveSupport::MessagePack. This makes it easy # to migrate between serializers. # # The +:marshal+, +:json_allow_marshal+, and +:message_pack_allow_marshal+ # serializers support deserializing using +Marshal+, but the others do # not. Beware that +Marshal+ is a potential vector for deserialization # attacks in cases where a message signing secret has been leaked. If # possible, choose a serializer that does not support +Marshal+. # # The +:message_pack+ and +:message_pack_allow_marshal+ serializers use # ActiveSupport::MessagePack, which can roundtrip some Ruby types that are # not supported by JSON, and may provide improved performance. However, # these require the +msgpack+ gem. # # When using \Rails, the default depends on +config.active_support.message_serializer+. # Otherwise, the default is +:marshal+. # # [+:url_safe+] # By default, MessageEncryptor generates RFC 4648 compliant strings # which are not URL-safe. In other words, they can contain "+" and "/". # If you want to generate URL-safe strings (in compliance with "Base 64 # Encoding with URL and Filename Safe Alphabet" in RFC 4648), you can # pass +true+. # # [+:force_legacy_metadata_serializer+] # Whether to use the legacy metadata serializer, which serializes the # message first, then wraps it in an envelope which is also serialized. This # was the default in \Rails 7.0 and below. # # If you don't pass a truthy value, the default is set using # +config.active_support.use_message_serializer_for_metadata+. # # @return [MessageEncryptor] a new instance of MessageEncryptor # # source://activesupport//lib/active_support/messages/rotator.rb#6 def initialize(*args, on_rotation: T.unsafe(nil), **options); end # source://activesupport//lib/active_support/message_encryptor.rb#256 def create_message(value, **options); end # Decrypt and verify a message. We need to verify the message in order to # avoid padding attacks. Reference: https://www.limited-entropy.com/padding-oracle-attacks/. # # ==== Options # # [+:purpose+] # The purpose that the message was generated with. If the purpose does not # match, +decrypt_and_verify+ will return +nil+. # # message = encryptor.encrypt_and_sign("hello", purpose: "greeting") # encryptor.decrypt_and_verify(message, purpose: "greeting") # => "hello" # encryptor.decrypt_and_verify(message) # => nil # # message = encryptor.encrypt_and_sign("bye") # encryptor.decrypt_and_verify(message) # => "bye" # encryptor.decrypt_and_verify(message, purpose: "greeting") # => nil # # source://activesupport//lib/active_support/message_encryptor.rb#241 def decrypt_and_verify(message, **options); end # Encrypt and sign a message. We need to sign the message in order to avoid # padding attacks. Reference: https://www.limited-entropy.com/padding-oracle-attacks/. # # ==== Options # # [+:expires_at+] # The datetime at which the message expires. After this datetime, # verification of the message will fail. # # message = encryptor.encrypt_and_sign("hello", expires_at: Time.now.tomorrow) # encryptor.decrypt_and_verify(message) # => "hello" # # 24 hours later... # encryptor.decrypt_and_verify(message) # => nil # # [+:expires_in+] # The duration for which the message is valid. After this duration has # elapsed, verification of the message will fail. # # message = encryptor.encrypt_and_sign("hello", expires_in: 24.hours) # encryptor.decrypt_and_verify(message) # => "hello" # # 24 hours later... # encryptor.decrypt_and_verify(message) # => nil # # [+:purpose+] # The purpose of the message. If specified, the same purpose must be # specified when verifying the message; otherwise, verification will fail. # (See #decrypt_and_verify.) # # source://activesupport//lib/active_support/message_encryptor.rb#220 def encrypt_and_sign(value, **options); end # source://activesupport//lib/active_support/message_encryptor.rb#264 def inspect; end # source://activesupport//lib/active_support/messages/rotator.rb#23 def read_message(message, on_rotation: T.unsafe(nil), **options); end private # Returns the value of attribute aead_mode. # # source://activesupport//lib/active_support/message_encryptor.rb#371 def aead_mode; end # Returns the value of attribute aead_mode. # # source://activesupport//lib/active_support/message_encryptor.rb#371 def aead_mode?; end # source://activesupport//lib/active_support/message_encryptor.rb#295 def decrypt(encrypted_message); end # source://activesupport//lib/active_support/message_encryptor.rb#277 def encrypt(data); end # source://activesupport//lib/active_support/message_encryptor.rb#340 def extract_part(encrypted_message, rindex, length); end # source://activesupport//lib/active_support/message_encryptor.rb#350 def extract_parts(encrypted_message); end # source://activesupport//lib/active_support/message_encryptor.rb#336 def join_parts(parts); end # source://activesupport//lib/active_support/message_encryptor.rb#320 def length_after_encode(length_before_encode); end # source://activesupport//lib/active_support/message_encryptor.rb#332 def length_of_encoded_auth_tag; end # source://activesupport//lib/active_support/message_encryptor.rb#328 def length_of_encoded_iv; end # source://activesupport//lib/active_support/message_encryptor.rb#367 def new_cipher; end # source://activesupport//lib/active_support/message_encryptor.rb#269 def sign(data); end # source://activesupport//lib/active_support/message_encryptor.rb#273 def verify(data); end class << self # source://activesupport//lib/active_support/message_encryptor.rb#96 def default_cipher; end # Given a cipher, returns the key length of the cipher to help generate the key of desired size # # source://activesupport//lib/active_support/message_encryptor.rb#252 def key_len(cipher = T.unsafe(nil)); end # source://activesupport//lib/active_support/message_encryptor.rb#93 def use_authenticated_message_encryption; end # source://activesupport//lib/active_support/message_encryptor.rb#93 def use_authenticated_message_encryption=(val); end end end # source://activesupport//lib/active_support/message_encryptor.rb#118 ActiveSupport::MessageEncryptor::AUTH_TAG_LENGTH = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/message_encryptor.rb#115 class ActiveSupport::MessageEncryptor::InvalidMessage < ::StandardError; end # source://activesupport//lib/active_support/message_encryptor.rb#105 module ActiveSupport::MessageEncryptor::NullSerializer class << self # source://activesupport//lib/active_support/message_encryptor.rb#110 def dump(value); end # source://activesupport//lib/active_support/message_encryptor.rb#106 def load(value); end end end # source://activesupport//lib/active_support/message_encryptor.rb#116 ActiveSupport::MessageEncryptor::OpenSSLCipherError = OpenSSL::Cipher::CipherError # source://activesupport//lib/active_support/message_encryptor.rb#119 ActiveSupport::MessageEncryptor::SEPARATOR = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/message_encryptors.rb#28 class ActiveSupport::MessageEncryptors < ::ActiveSupport::Messages::RotationCoordinator private # source://activesupport//lib/active_support/message_encryptors.rb#135 def build(salt, secret_generator:, secret_generator_options:, **options); end end # = Active Support Message Verifier # # +MessageVerifier+ makes it easy to generate and verify messages which are # signed to prevent tampering. # # In a \Rails application, you can use +Rails.application.message_verifier+ # to manage unique instances of verifiers for each use case. # {Learn more}[link:classes/Rails/Application.html#method-i-message_verifier]. # # This is useful for cases like remember-me tokens and auto-unsubscribe links # where the session store isn't suitable or available. # # First, generate a signed message: # cookies[:remember_me] = Rails.application.message_verifier(:remember_me).generate([@user.id, 2.weeks.from_now]) # # Later verify that message: # # id, time = Rails.application.message_verifier(:remember_me).verify(cookies[:remember_me]) # if time.future? # self.current_user = User.find(id) # end # # === Confine messages to a specific purpose # # It's not recommended to use the same verifier for different purposes in your application. # Doing so could allow a malicious actor to re-use a signed message to perform an unauthorized # action. # You can reduce this risk by confining signed messages to a specific +:purpose+. # # token = @verifier.generate("signed message", purpose: :login) # # Then that same purpose must be passed when verifying to get the data back out: # # @verifier.verified(token, purpose: :login) # => "signed message" # @verifier.verified(token, purpose: :shipping) # => nil # @verifier.verified(token) # => nil # # @verifier.verify(token, purpose: :login) # => "signed message" # @verifier.verify(token, purpose: :shipping) # => raises ActiveSupport::MessageVerifier::InvalidSignature # @verifier.verify(token) # => raises ActiveSupport::MessageVerifier::InvalidSignature # # Likewise, if a message has no purpose it won't be returned when verifying with # a specific purpose. # # token = @verifier.generate("signed message") # @verifier.verified(token, purpose: :redirect) # => nil # @verifier.verified(token) # => "signed message" # # @verifier.verify(token, purpose: :redirect) # => raises ActiveSupport::MessageVerifier::InvalidSignature # @verifier.verify(token) # => "signed message" # # === Expiring messages # # By default messages last forever and verifying one year from now will still # return the original value. But messages can be set to expire at a given # time with +:expires_in+ or +:expires_at+. # # @verifier.generate("signed message", expires_in: 1.month) # @verifier.generate("signed message", expires_at: Time.now.end_of_year) # # Messages can then be verified and returned until expiry. # Thereafter, the +verified+ method returns +nil+ while +verify+ raises # +ActiveSupport::MessageVerifier::InvalidSignature+. # # === Rotating keys # # MessageVerifier also supports rotating out old configurations by falling # back to a stack of verifiers. Call +rotate+ to build and add a verifier so # either +verified+ or +verify+ will also try verifying with the fallback. # # By default any rotated verifiers use the values of the primary # verifier unless specified otherwise. # # You'd give your verifier the new defaults: # # verifier = ActiveSupport::MessageVerifier.new(@secret, digest: "SHA512", serializer: JSON) # # Then gradually rotate the old values out by adding them as fallbacks. Any message # generated with the old values will then work until the rotation is removed. # # verifier.rotate(old_secret) # Fallback to an old secret instead of @secret. # verifier.rotate(digest: "SHA256") # Fallback to an old digest instead of SHA512. # verifier.rotate(serializer: Marshal) # Fallback to an old serializer instead of JSON. # # Though the above would most likely be combined into one rotation: # # verifier.rotate(old_secret, digest: "SHA256", serializer: Marshal) # # source://activesupport//lib/active_support/message_verifier.rb#98 class ActiveSupport::MessageVerifier < ::ActiveSupport::Messages::Codec include ::ActiveSupport::Messages::Rotator # Initialize a new MessageVerifier with a secret for the signature. # # ==== Options # # [+:digest+] # Digest used for signing. The default is "SHA1". See # +OpenSSL::Digest+ for alternatives. # # [+:serializer+] # The serializer used to serialize message data. You can specify any # object that responds to +dump+ and +load+, or you can choose from # several preconfigured serializers: +:marshal+, +:json_allow_marshal+, # +:json+, +:message_pack_allow_marshal+, +:message_pack+. # # The preconfigured serializers include a fallback mechanism to support # multiple deserialization formats. For example, the +:marshal+ serializer # will serialize using +Marshal+, but can deserialize using +Marshal+, # ActiveSupport::JSON, or ActiveSupport::MessagePack. This makes it easy # to migrate between serializers. # # The +:marshal+, +:json_allow_marshal+, and +:message_pack_allow_marshal+ # serializers support deserializing using +Marshal+, but the others do # not. Beware that +Marshal+ is a potential vector for deserialization # attacks in cases where a message signing secret has been leaked. If # possible, choose a serializer that does not support +Marshal+. # # The +:message_pack+ and +:message_pack_allow_marshal+ serializers use # ActiveSupport::MessagePack, which can roundtrip some Ruby types that are # not supported by JSON, and may provide improved performance. However, # these require the +msgpack+ gem. # # When using \Rails, the default depends on +config.active_support.message_serializer+. # Otherwise, the default is +:marshal+. # # [+:url_safe+] # By default, MessageVerifier generates RFC 4648 compliant strings which are # not URL-safe. In other words, they can contain "+" and "/". If you want to # generate URL-safe strings (in compliance with "Base 64 Encoding with URL # and Filename Safe Alphabet" in RFC 4648), you can pass +true+. # # [+:force_legacy_metadata_serializer+] # Whether to use the legacy metadata serializer, which serializes the # message first, then wraps it in an envelope which is also serialized. This # was the default in \Rails 7.0 and below. # # If you don't pass a truthy value, the default is set using # +config.active_support.use_message_serializer_for_metadata+. # # @raise [ArgumentError] # @return [MessageVerifier] a new instance of MessageVerifier # # source://activesupport//lib/active_support/messages/rotator.rb#6 def initialize(*args, on_rotation: T.unsafe(nil), **options); end # source://activesupport//lib/active_support/message_verifier.rb#296 def create_message(value, **options); end # Generates a signed message for the provided value. # # The message is signed with the +MessageVerifier+'s secret. # Returns Base64-encoded message joined with the generated signature. # # verifier = ActiveSupport::MessageVerifier.new("secret") # verifier.generate("signed message") # => "BAhJIhNzaWduZWQgbWVzc2FnZQY6BkVU--f67d5f27c3ee0b8483cebf2103757455e947493b" # # ==== Options # # [+:expires_at+] # The datetime at which the message expires. After this datetime, # verification of the message will fail. # # message = verifier.generate("hello", expires_at: Time.now.tomorrow) # verifier.verified(message) # => "hello" # # 24 hours later... # verifier.verified(message) # => nil # verifier.verify(message) # => raises ActiveSupport::MessageVerifier::InvalidSignature # # [+:expires_in+] # The duration for which the message is valid. After this duration has # elapsed, verification of the message will fail. # # message = verifier.generate("hello", expires_in: 24.hours) # verifier.verified(message) # => "hello" # # 24 hours later... # verifier.verified(message) # => nil # verifier.verify(message) # => raises ActiveSupport::MessageVerifier::InvalidSignature # # [+:purpose+] # The purpose of the message. If specified, the same purpose must be # specified when verifying the message; otherwise, verification will fail. # (See #verified and #verify.) # # source://activesupport//lib/active_support/message_verifier.rb#292 def generate(value, **options); end # source://activesupport//lib/active_support/message_verifier.rb#304 def inspect; end # source://activesupport//lib/active_support/messages/rotator.rb#23 def read_message(message, on_rotation: T.unsafe(nil), **options); end # Checks if a signed message could have been generated by signing an object # with the +MessageVerifier+'s secret. # # verifier = ActiveSupport::MessageVerifier.new("secret") # signed_message = verifier.generate("signed message") # verifier.valid_message?(signed_message) # => true # # tampered_message = signed_message.chop # editing the message invalidates the signature # verifier.valid_message?(tampered_message) # => false # # @return [Boolean] # # source://activesupport//lib/active_support/message_verifier.rb#169 def valid_message?(message); end # Decodes the signed message using the +MessageVerifier+'s secret. # # verifier = ActiveSupport::MessageVerifier.new("secret") # # signed_message = verifier.generate("signed message") # verifier.verified(signed_message) # => "signed message" # # Returns +nil+ if the message was not signed with the same secret. # # other_verifier = ActiveSupport::MessageVerifier.new("different_secret") # other_verifier.verified(signed_message) # => nil # # Returns +nil+ if the message is not Base64-encoded. # # invalid_message = "f--46a0120593880c733a53b6dad75b42ddc1c8996d" # verifier.verified(invalid_message) # => nil # # Raises any error raised while decoding the signed message. # # incompatible_message = "test--dad7b06c94abba8d46a15fafaef56c327665d5ff" # verifier.verified(incompatible_message) # => TypeError: incompatible marshal file format # # ==== Options # # [+:purpose+] # The purpose that the message was generated with. If the purpose does not # match, +verified+ will return +nil+. # # message = verifier.generate("hello", purpose: "greeting") # verifier.verified(message, purpose: "greeting") # => "hello" # verifier.verified(message, purpose: "chatting") # => nil # verifier.verified(message) # => nil # # message = verifier.generate("bye") # verifier.verified(message) # => "bye" # verifier.verified(message, purpose: "greeting") # => nil # # source://activesupport//lib/active_support/message_verifier.rb#210 def verified(message, **options); end # Decodes the signed message using the +MessageVerifier+'s secret. # # verifier = ActiveSupport::MessageVerifier.new("secret") # signed_message = verifier.generate("signed message") # # verifier.verify(signed_message) # => "signed message" # # Raises +InvalidSignature+ if the message was not signed with the same # secret or was not Base64-encoded. # # other_verifier = ActiveSupport::MessageVerifier.new("different_secret") # other_verifier.verify(signed_message) # => ActiveSupport::MessageVerifier::InvalidSignature # # ==== Options # # [+:purpose+] # The purpose that the message was generated with. If the purpose does not # match, +verify+ will raise ActiveSupport::MessageVerifier::InvalidSignature. # # message = verifier.generate("hello", purpose: "greeting") # verifier.verify(message, purpose: "greeting") # => "hello" # verifier.verify(message, purpose: "chatting") # => raises InvalidSignature # verifier.verify(message) # => raises InvalidSignature # # message = verifier.generate("bye") # verifier.verify(message) # => "bye" # verifier.verify(message, purpose: "greeting") # => raises InvalidSignature # # source://activesupport//lib/active_support/message_verifier.rb#248 def verify(message, **options); end private # source://activesupport//lib/active_support/message_verifier.rb#335 def digest_length_in_hex; end # @return [Boolean] # # source://activesupport//lib/active_support/message_verifier.rb#352 def digest_matches_data?(digest, data); end # source://activesupport//lib/active_support/message_verifier.rb#314 def extract_encoded(signed); end # source://activesupport//lib/active_support/message_verifier.rb#331 def generate_digest(data); end # @return [Boolean] # # source://activesupport//lib/active_support/message_verifier.rb#343 def separator_at?(signed_message, index); end # source://activesupport//lib/active_support/message_verifier.rb#347 def separator_index_for(signed_message); end # source://activesupport//lib/active_support/message_verifier.rb#309 def sign_encoded(encoded); end end # source://activesupport//lib/active_support/message_verifier.rb#101 class ActiveSupport::MessageVerifier::InvalidSignature < ::StandardError; end # source://activesupport//lib/active_support/message_verifier.rb#103 ActiveSupport::MessageVerifier::SEPARATOR = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/message_verifier.rb#104 ActiveSupport::MessageVerifier::SEPARATOR_LENGTH = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/message_verifiers.rb#28 class ActiveSupport::MessageVerifiers < ::ActiveSupport::Messages::RotationCoordinator private # source://activesupport//lib/active_support/message_verifiers.rb#131 def build(salt, secret_generator:, secret_generator_options:, **options); end end # source://activesupport//lib/active_support/messages/rotator.rb#4 module ActiveSupport::Messages; end # source://activesupport//lib/active_support/messages/codec.rb#9 class ActiveSupport::Messages::Codec include ::ActiveSupport::Messages::Metadata # @return [Codec] a new instance of Codec # # source://activesupport//lib/active_support/messages/codec.rb#15 def initialize(**options); end private # source://activesupport//lib/active_support/messages/codec.rb#45 def catch_and_ignore(throwable, &block); end # source://activesupport//lib/active_support/messages/codec.rb#52 def catch_and_raise(throwable, as: T.unsafe(nil), &block); end # source://activesupport//lib/active_support/messages/codec.rb#29 def decode(encoded, url_safe: T.unsafe(nil)); end # source://activesupport//lib/active_support/messages/codec.rb#39 def deserialize(serialized); end # source://activesupport//lib/active_support/messages/codec.rb#25 def encode(data, url_safe: T.unsafe(nil)); end # source://activesupport//lib/active_support/messages/codec.rb#35 def serialize(data); end # Returns the value of attribute serializer. # # source://activesupport//lib/active_support/messages/codec.rb#23 def serializer; end # @return [Boolean] # # source://activesupport//lib/active_support/messages/codec.rb#60 def use_message_serializer_for_metadata?; end class << self # source://activesupport//lib/active_support/messages/codec.rb#12 def default_serializer; end # source://activesupport//lib/active_support/messages/codec.rb#12 def default_serializer=(value); end end end # source://activesupport//lib/active_support/messages/metadata.rb#9 module ActiveSupport::Messages::Metadata private # source://activesupport//lib/active_support/messages/metadata.rb#128 def deserialize_from_json(serialized); end # source://activesupport//lib/active_support/messages/metadata.rb#141 def deserialize_from_json_safe_string(string); end # source://activesupport//lib/active_support/messages/metadata.rb#43 def deserialize_with_metadata(message, **expected_metadata); end # @return [Boolean] # # source://activesupport//lib/active_support/messages/metadata.rb#96 def dual_serialized_metadata_envelope_json?(string); end # source://activesupport//lib/active_support/messages/metadata.rb#78 def extract_from_metadata_envelope(envelope, purpose: T.unsafe(nil)); end # @return [Boolean] # # source://activesupport//lib/active_support/messages/metadata.rb#92 def metadata_envelope?(object); end # source://activesupport//lib/active_support/messages/metadata.rb#114 def parse_expiry(expires_at); end # source://activesupport//lib/active_support/messages/metadata.rb#100 def pick_expiry(expires_at, expires_in); end # source://activesupport//lib/active_support/messages/metadata.rb#124 def serialize_to_json(data); end # source://activesupport//lib/active_support/messages/metadata.rb#137 def serialize_to_json_safe_string(data); end # source://activesupport//lib/active_support/messages/metadata.rb#30 def serialize_with_metadata(data, **metadata); end # @return [Boolean] # # source://activesupport//lib/active_support/messages/metadata.rb#60 def use_message_serializer_for_metadata?; end # source://activesupport//lib/active_support/messages/metadata.rb#64 def wrap_in_metadata_envelope(hash, expires_at: T.unsafe(nil), expires_in: T.unsafe(nil), purpose: T.unsafe(nil)); end # source://activesupport//lib/active_support/messages/metadata.rb#71 def wrap_in_metadata_legacy_envelope(hash, expires_at: T.unsafe(nil), expires_in: T.unsafe(nil), purpose: T.unsafe(nil)); end class << self # source://activesupport//lib/active_support/messages/metadata.rb#10 def use_message_serializer_for_metadata; end # source://activesupport//lib/active_support/messages/metadata.rb#10 def use_message_serializer_for_metadata=(_arg0); end end end # source://activesupport//lib/active_support/messages/metadata.rb#12 ActiveSupport::Messages::Metadata::ENVELOPE_SERIALIZERS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/messages/metadata.rb#19 ActiveSupport::Messages::Metadata::TIMESTAMP_SERIALIZERS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#7 class ActiveSupport::Messages::RotationCoordinator # @raise [ArgumentError] # @return [RotationCoordinator] a new instance of RotationCoordinator # # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#10 def initialize(&secret_generator); end # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#18 def [](salt); end # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#22 def []=(salt, codec); end # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#39 def clear_rotations; end # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#45 def on_rotation(&callback); end # @raise [ArgumentError] # # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#26 def rotate(**options, &block); end # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#35 def rotate_defaults; end # Returns the value of attribute transitional. # # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#8 def transitional; end # Sets the attribute transitional # # @param value the value to set the attribute transitional to. # # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#8 def transitional=(_arg0); end private # @raise [NotImplementedError] # # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#88 def build(salt, secret_generator:, secret_generator_options:, **options); end # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#76 def build_with_rotations(salt); end # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#51 def changing_configuration!; end # source://activesupport//lib/active_support/messages/rotation_coordinator.rb#62 def normalize_options(options); end end # source://activesupport//lib/active_support/messages/rotator.rb#5 module ActiveSupport::Messages::Rotator # source://activesupport//lib/active_support/messages/rotator.rb#6 def initialize(*args, on_rotation: T.unsafe(nil), **options); end # source://activesupport//lib/active_support/messages/rotator.rb#18 def fall_back_to(fallback); end # source://activesupport//lib/active_support/messages/rotator.rb#23 def read_message(message, on_rotation: T.unsafe(nil), **options); end # source://activesupport//lib/active_support/messages/rotator.rb#14 def rotate(*args, **options); end private # source://activesupport//lib/active_support/messages/rotator.rb#44 def build_rotation(*args, **options); end # source://activesupport//lib/active_support/messages/rotator.rb#48 def catch_rotation_error(&block); end end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#8 module ActiveSupport::Messages::SerializerWithFallback # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#17 def load(dumped); end private # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#33 def detect_format(dumped); end # @return [Boolean] # # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#44 def fallback?(format); end class << self # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#9 def [](format); end end end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#48 module ActiveSupport::Messages::SerializerWithFallback::AllowMarshal private # @return [Boolean] # # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#50 def fallback?(format); end end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#78 module ActiveSupport::Messages::SerializerWithFallback::JsonWithFallback include ::ActiveSupport::Messages::SerializerWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback::JsonWithFallback # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#90 def _load(dumped); end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#86 def dump(object); end # @return [Boolean] # # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#96 def dumped?(dumped); end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#82 def format; end private # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#101 def detect_format(dumped); end end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#94 ActiveSupport::Messages::SerializerWithFallback::JsonWithFallback::JSON_START_WITH = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#107 module ActiveSupport::Messages::SerializerWithFallback::JsonWithFallbackAllowMarshal include ::ActiveSupport::Messages::SerializerWithFallback include ::ActiveSupport::Messages::SerializerWithFallback::JsonWithFallback include ::ActiveSupport::Messages::SerializerWithFallback::AllowMarshal extend ::ActiveSupport::Messages::SerializerWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback::JsonWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback::AllowMarshal extend ::ActiveSupport::Messages::SerializerWithFallback::JsonWithFallbackAllowMarshal end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#55 module ActiveSupport::Messages::SerializerWithFallback::MarshalWithFallback include ::ActiveSupport::Messages::SerializerWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback::MarshalWithFallback # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#67 def _load(dumped); end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#63 def dump(object); end # @return [Boolean] # # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#73 def dumped?(dumped); end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#59 def format; end end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#71 ActiveSupport::Messages::SerializerWithFallback::MarshalWithFallback::MARSHAL_SIGNATURE = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#113 module ActiveSupport::Messages::SerializerWithFallback::MessagePackWithFallback include ::ActiveSupport::Messages::SerializerWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback::MessagePackWithFallback # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#125 def _load(dumped); end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#121 def dump(object); end # @return [Boolean] # # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#129 def dumped?(dumped); end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#117 def format; end private # @return [Boolean] # # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#134 def available?; end end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#143 module ActiveSupport::Messages::SerializerWithFallback::MessagePackWithFallbackAllowMarshal include ::ActiveSupport::Messages::SerializerWithFallback include ::ActiveSupport::Messages::SerializerWithFallback::MessagePackWithFallback include ::ActiveSupport::Messages::SerializerWithFallback::AllowMarshal extend ::ActiveSupport::Messages::SerializerWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback::MessagePackWithFallback extend ::ActiveSupport::Messages::SerializerWithFallback::AllowMarshal extend ::ActiveSupport::Messages::SerializerWithFallback::MessagePackWithFallbackAllowMarshal end # source://activesupport//lib/active_support/messages/serializer_with_fallback.rb#149 ActiveSupport::Messages::SerializerWithFallback::SERIALIZERS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/multibyte.rb#4 module ActiveSupport::Multibyte class << self # Returns the current proxy class. # # source://activesupport//lib/active_support/multibyte.rb#19 def proxy_class; end # The proxy class returned when calling mb_chars. You can use this accessor # to configure your own proxy class so you can support other encodings. See # the ActiveSupport::Multibyte::Chars implementation for an example how to # do this. # # ActiveSupport::Multibyte.proxy_class = CharsForUTF32 # # source://activesupport//lib/active_support/multibyte.rb#14 def proxy_class=(klass); end end end # = Active Support \Multibyte \Chars # # Chars enables you to work transparently with UTF-8 encoding in the Ruby # String class without having extensive knowledge about the encoding. A # Chars object accepts a string upon initialization and proxies String # methods in an encoding safe manner. All the normal String methods are also # implemented on the proxy. # # String methods are proxied through the Chars object, and can be accessed # through the +mb_chars+ method. Methods which would normally return a # String object now return a Chars object so methods can be chained. # # 'The Perfect String '.mb_chars.downcase.strip # # => # # # Chars objects are perfectly interchangeable with String objects as long as # no explicit class checks are made. If certain methods do explicitly check # the class, call +to_s+ before you pass chars objects to them. # # bad.explicit_checking_method 'T'.mb_chars.downcase.to_s # # The default Chars implementation assumes that the encoding of the string # is UTF-8, if you want to handle different encodings you can write your own # multibyte string handler and configure it through # ActiveSupport::Multibyte.proxy_class. # # class CharsForUTF32 # def size # @wrapped_string.size / 4 # end # # def self.accepts?(string) # string.length % 4 == 0 # end # end # # ActiveSupport::Multibyte.proxy_class = CharsForUTF32 # # source://activesupport//lib/active_support/multibyte/chars.rb#47 class ActiveSupport::Multibyte::Chars include ::Comparable # Creates a new Chars instance by wrapping _string_. # # @return [Chars] a new instance of Chars # # source://activesupport//lib/active_support/multibyte/chars.rb#56 def initialize(string); end # source://activesupport//lib/active_support/multibyte/chars.rb#53 def <=>(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/multibyte/chars.rb#53 def =~(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/multibyte/chars.rb#53 def acts_like_string?(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/multibyte/chars.rb#161 def as_json(options = T.unsafe(nil)); end # Performs composition on all the characters. # # 'é'.length # => 1 # 'é'.mb_chars.compose.to_s.length # => 1 # # source://activesupport//lib/active_support/multibyte/chars.rb#140 def compose; end # Performs canonical decomposition on all the characters. # # 'é'.length # => 1 # 'é'.mb_chars.decompose.to_s.length # => 2 # # source://activesupport//lib/active_support/multibyte/chars.rb#132 def decompose; end # Returns the number of grapheme clusters in the string. # # 'क्षि'.mb_chars.length # => 4 # 'क्षि'.mb_chars.grapheme_length # => 2 # # source://activesupport//lib/active_support/multibyte/chars.rb#148 def grapheme_length; end # Limits the byte size of the string to a number of bytes without breaking # characters. Usable when the storage for a string is limited for some # reason. # # 'こんにちは'.mb_chars.limit(7).to_s # => "こん" # # source://activesupport//lib/active_support/multibyte/chars.rb#115 def limit(limit); end # source://activesupport//lib/active_support/multibyte/chars.rb#53 def match?(*_arg0, **_arg1, &_arg2); end # Forward all undefined methods to the wrapped string. # # source://activesupport//lib/active_support/multibyte/chars.rb#62 def method_missing(method, *args, &block); end # Reverses all characters in the string. # # 'Café'.mb_chars.reverse.to_s # => 'éfaC' # # source://activesupport//lib/active_support/multibyte/chars.rb#106 def reverse; end # source://activesupport//lib/active_support/multibyte/chars.rb#166 def reverse!(*args); end # Works like String#slice!, but returns an instance of # Chars, or +nil+ if the string was not modified. The string will not be # modified if the range given is out of bounds # # string = 'Welcome' # string.mb_chars.slice!(3) # => # # string # => 'Welome' # string.mb_chars.slice!(0..3) # => # # string # => 'me' # # source://activesupport//lib/active_support/multibyte/chars.rb#96 def slice!(*args); end # Works just like String#split, with the exception that the items # in the resulting list are Chars instances instead of String. This makes # chaining methods easier. # # 'Café périferôl'.mb_chars.split(/é/).map { |part| part.upcase.to_s } # => ["CAF", " P", "RIFERÔL"] # # source://activesupport//lib/active_support/multibyte/chars.rb#83 def split(*args); end # Replaces all ISO-8859-1 or CP1252 characters by their UTF-8 equivalent # resulting in a valid UTF-8 string. # # Passing +true+ will forcibly tidy all bytes, assuming that the string's # encoding is entirely CP1252 or ISO-8859-1. # # source://activesupport//lib/active_support/multibyte/chars.rb#157 def tidy_bytes(force = T.unsafe(nil)); end # source://activesupport//lib/active_support/multibyte/chars.rb#166 def tidy_bytes!(*args); end # Capitalizes the first letter of every word, when possible. # # "ÉL QUE SE ENTERÓ".mb_chars.titleize.to_s # => "Él Que Se Enteró" # "日本語".mb_chars.titleize.to_s # => "日本語" # # source://activesupport//lib/active_support/multibyte/chars.rb#123 def titlecase; end # Capitalizes the first letter of every word, when possible. # # "ÉL QUE SE ENTERÓ".mb_chars.titleize.to_s # => "Él Que Se Enteró" # "日本語".mb_chars.titleize.to_s # => "日本語" # # source://activesupport//lib/active_support/multibyte/chars.rb#123 def titleize; end # Returns the value of attribute wrapped_string. # # source://activesupport//lib/active_support/multibyte/chars.rb#49 def to_s; end # Returns the value of attribute wrapped_string. # # source://activesupport//lib/active_support/multibyte/chars.rb#49 def to_str; end # Returns the value of attribute wrapped_string. # # source://activesupport//lib/active_support/multibyte/chars.rb#49 def wrapped_string; end private # source://activesupport//lib/active_support/multibyte/chars.rb#173 def chars(string); end # Returns +true+ if _obj_ responds to the given method. Private methods # are included in the search only if the optional second parameter # evaluates to +true+. # # @return [Boolean] # # source://activesupport//lib/active_support/multibyte/chars.rb#74 def respond_to_missing?(method, include_private); end end # source://activesupport//lib/active_support/multibyte/unicode.rb#5 module ActiveSupport::Multibyte::Unicode extend ::ActiveSupport::Multibyte::Unicode # Compose decomposed characters to the composed form. # # source://activesupport//lib/active_support/multibyte/unicode.rb#21 def compose(codepoints); end # Decompose composed characters to the decomposed form. # # source://activesupport//lib/active_support/multibyte/unicode.rb#12 def decompose(type, codepoints); end # Replaces all ISO-8859-1 or CP1252 characters by their UTF-8 equivalent # resulting in a valid UTF-8 string. # # Passing +true+ will forcibly tidy all bytes, assuming that the string's # encoding is entirely CP1252 or ISO-8859-1. # # source://activesupport//lib/active_support/multibyte/unicode.rb#30 def tidy_bytes(string, force = T.unsafe(nil)); end private # source://activesupport//lib/active_support/multibyte/unicode.rb#37 def recode_windows1252_chars(string); end end # The Unicode version that is supported by the implementation # # source://activesupport//lib/active_support/multibyte/unicode.rb#9 ActiveSupport::Multibyte::Unicode::UNICODE_VERSION = T.let(T.unsafe(nil), String) # = \Notifications # # +ActiveSupport::Notifications+ provides an instrumentation API for # Ruby. # # == Instrumenters # # To instrument an event you just need to do: # # ActiveSupport::Notifications.instrument('render', extra: :information) do # render plain: 'Foo' # end # # That first executes the block and then notifies all subscribers once done. # # In the example above +render+ is the name of the event, and the rest is called # the _payload_. The payload is a mechanism that allows instrumenters to pass # extra information to subscribers. Payloads consist of a hash whose contents # are arbitrary and generally depend on the event. # # == Subscribers # # You can consume those events and the information they provide by registering # a subscriber. # # ActiveSupport::Notifications.subscribe('render') do |name, start, finish, id, payload| # name # => String, name of the event (such as 'render' from above) # start # => Time, when the instrumented block started execution # finish # => Time, when the instrumented block ended execution # id # => String, unique ID for the instrumenter that fired the event # payload # => Hash, the payload # end # # Here, the +start+ and +finish+ values represent wall-clock time. If you are # concerned about accuracy, you can register a monotonic subscriber. # # ActiveSupport::Notifications.monotonic_subscribe('render') do |name, start, finish, id, payload| # name # => String, name of the event (such as 'render' from above) # start # => Monotonic time, when the instrumented block started execution # finish # => Monotonic time, when the instrumented block ended execution # id # => String, unique ID for the instrumenter that fired the event # payload # => Hash, the payload # end # # The +start+ and +finish+ values above represent monotonic time. # # For instance, let's store all "render" events in an array: # # events = [] # # ActiveSupport::Notifications.subscribe('render') do |*args| # events << ActiveSupport::Notifications::Event.new(*args) # end # # That code returns right away, you are just subscribing to "render" events. # The block is saved and will be called whenever someone instruments "render": # # ActiveSupport::Notifications.instrument('render', extra: :information) do # render plain: 'Foo' # end # # event = events.first # event.name # => "render" # event.duration # => 10 (in milliseconds) # event.payload # => { extra: :information } # # The block in the subscribe call gets the name of the event, start # timestamp, end timestamp, a string with a unique identifier for that event's instrumenter # (something like "535801666f04d0298cd6"), and a hash with the payload, in # that order. # # If an exception happens during that particular instrumentation the payload will # have a key :exception with an array of two elements as value: a string with # the name of the exception class, and the exception message. # The :exception_object key of the payload will have the exception # itself as the value: # # event.payload[:exception] # => ["ArgumentError", "Invalid value"] # event.payload[:exception_object] # => # # # As the earlier example depicts, the class ActiveSupport::Notifications::Event # is able to take the arguments as they come and provide an object-oriented # interface to that data. # # It is also possible to pass an object which responds to call method # as the second parameter to the subscribe method instead of a block: # # module ActionController # class PageRequest # def call(name, started, finished, unique_id, payload) # Rails.logger.debug ['notification:', name, started, finished, unique_id, payload].join(' ') # end # end # end # # ActiveSupport::Notifications.subscribe('process_action.action_controller', ActionController::PageRequest.new) # # resulting in the following output within the logs including a hash with the payload: # # notification: process_action.action_controller 2012-04-13 01:08:35 +0300 2012-04-13 01:08:35 +0300 af358ed7fab884532ec7 { # controller: "Devise::SessionsController", # action: "new", # params: {"action"=>"new", "controller"=>"devise/sessions"}, # format: :html, # method: "GET", # path: "/login/sign_in", # status: 200, # view_runtime: 279.3080806732178, # db_runtime: 40.053 # } # # You can also subscribe to all events whose name matches a certain regexp: # # ActiveSupport::Notifications.subscribe(/render/) do |*args| # ... # end # # and even pass no argument to subscribe, in which case you are subscribing # to all events. # # == Temporary Subscriptions # # Sometimes you do not want to subscribe to an event for the entire life of # the application. There are two ways to unsubscribe. # # WARNING: The instrumentation framework is designed for long-running subscribers, # use this feature sparingly because it wipes some internal caches and that has # a negative impact on performance. # # === Subscribe While a Block Runs # # You can subscribe to some event temporarily while some block runs. For # example, in # # callback = lambda {|*args| ... } # ActiveSupport::Notifications.subscribed(callback, "sql.active_record") do # ... # end # # the callback will be called for all "sql.active_record" events instrumented # during the execution of the block. The callback is unsubscribed automatically # after that. # # To record +started+ and +finished+ values with monotonic time, # specify the optional :monotonic option to the # subscribed method. The :monotonic option is set # to +false+ by default. # # callback = lambda {|name, started, finished, unique_id, payload| ... } # ActiveSupport::Notifications.subscribed(callback, "sql.active_record", monotonic: true) do # ... # end # # === Manual Unsubscription # # The +subscribe+ method returns a subscriber object: # # subscriber = ActiveSupport::Notifications.subscribe("render") do |*args| # ... # end # # To prevent that block from being called anymore, just unsubscribe passing # that reference: # # ActiveSupport::Notifications.unsubscribe(subscriber) # # You can also unsubscribe by passing the name of the subscriber object. Note # that this will unsubscribe all subscriptions with the given name: # # ActiveSupport::Notifications.unsubscribe("render") # # Subscribers using a regexp or other pattern-matching object will remain subscribed # to all events that match their original pattern, unless those events match a string # passed to +unsubscribe+: # # subscriber = ActiveSupport::Notifications.subscribe(/render/) { } # ActiveSupport::Notifications.unsubscribe('render_template.action_view') # subscriber.matches?('render_template.action_view') # => false # subscriber.matches?('render_partial.action_view') # => true # # == Default Queue # # Notifications ships with a queue implementation that consumes and publishes events # to all log subscribers. You can use any queue implementation you want. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#7 module ActiveSupport::Notifications class << self # source://activesupport//lib/active_support/notifications.rb#204 def instrument(name, payload = T.unsafe(nil)); end # source://activesupport//lib/active_support/notifications.rb#268 def instrumenter; end # Performs the same functionality as #subscribe, but the +start+ and # +finish+ block arguments are in monotonic time instead of wall-clock # time. Monotonic time will not jump forward or backward (due to NTP or # Daylights Savings). Use +monotonic_subscribe+ when accuracy of time # duration is important. For example, computing elapsed time between # two events. # # source://activesupport//lib/active_support/notifications.rb#253 def monotonic_subscribe(pattern = T.unsafe(nil), callback = T.unsafe(nil), &block); end # Returns the value of attribute notifier. # # source://activesupport//lib/active_support/notifications.rb#194 def notifier; end # Sets the attribute notifier # # @param value the value to set the attribute notifier to. # # source://activesupport//lib/active_support/notifications.rb#194 def notifier=(_arg0); end # source://activesupport//lib/active_support/notifications.rb#196 def publish(name, *args); end # source://activesupport//lib/active_support/notifications.rb#200 def publish_event(event); end # Subscribe to a given event name with the passed +block+. # # You can subscribe to events by passing a String to match exact event # names, or by passing a Regexp to match all events that match a pattern. # # ActiveSupport::Notifications.subscribe(/render/) do |*args| # @event = ActiveSupport::Notifications::Event.new(*args) # end # # The +block+ will receive five parameters with information about the event: # # ActiveSupport::Notifications.subscribe('render') do |name, start, finish, id, payload| # name # => String, name of the event (such as 'render' from above) # start # => Time, when the instrumented block started execution # finish # => Time, when the instrumented block ended execution # id # => String, unique ID for the instrumenter that fired the event # payload # => Hash, the payload # end # # If the block passed to the method only takes one parameter, # it will yield an event object to the block: # # ActiveSupport::Notifications.subscribe(/render/) do |event| # @event = event # end # # Raises an error if invalid event name type is passed: # # ActiveSupport::Notifications.subscribe(:render) {|*args| ...} # #=> ArgumentError (pattern must be specified as a String, Regexp or empty) # # source://activesupport//lib/active_support/notifications.rb#243 def subscribe(pattern = T.unsafe(nil), callback = T.unsafe(nil), &block); end # source://activesupport//lib/active_support/notifications.rb#257 def subscribed(callback, pattern = T.unsafe(nil), monotonic: T.unsafe(nil), &block); end # source://activesupport//lib/active_support/notifications.rb#264 def unsubscribe(subscriber_or_name); end private # source://activesupport//lib/active_support/notifications.rb#273 def registry; end end end # source://activesupport//lib/active_support/notifications/instrumenter.rb#106 class ActiveSupport::Notifications::Event # @return [Event] a new instance of Event # # source://activesupport//lib/active_support/notifications/instrumenter.rb#110 def initialize(name, start, ending, transaction_id, payload); end # Returns the number of allocations made between the call to #start! and # the call to #finish!. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#164 def allocations; end # source://activesupport//lib/active_support/notifications/instrumenter.rb#168 def children; end # Returns the CPU time (in milliseconds) passed between the call to # #start! and the call to #finish!. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#151 def cpu_time; end # Returns the difference in milliseconds between when the execution of the # event started and when it ended. # # ActiveSupport::Notifications.subscribe('wait') do |*args| # @event = ActiveSupport::Notifications::Event.new(*args) # end # # ActiveSupport::Notifications.instrument('wait') do # sleep 1 # end # # @event.duration # => 1000.138 # # source://activesupport//lib/active_support/notifications/instrumenter.rb#197 def duration; end # Returns the value of attribute end. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#107 def end; end # Record information at the time this event finishes # # source://activesupport//lib/active_support/notifications/instrumenter.rb#143 def finish!; end # Returns the idle time time (in milliseconds) passed between the call to # #start! and the call to #finish!. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#157 def idle_time; end # Returns the value of attribute name. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#107 def name; end # @return [Boolean] # # source://activesupport//lib/active_support/notifications/instrumenter.rb#176 def parent_of?(event); end # Returns the value of attribute payload. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#108 def payload; end # Sets the attribute payload # # @param value the value to set the attribute payload to. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#108 def payload=(_arg0); end # source://activesupport//lib/active_support/notifications/instrumenter.rb#122 def record; end # Record information at the time this event starts # # source://activesupport//lib/active_support/notifications/instrumenter.rb#136 def start!; end # Returns the value of attribute time. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#107 def time; end # Returns the value of attribute transaction_id. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#107 def transaction_id; end private # source://activesupport//lib/active_support/notifications/instrumenter.rb#202 def now; end # Likely on JRuby, TruffleRuby # # source://activesupport//lib/active_support/notifications/instrumenter.rb#219 def now_allocations; end # source://activesupport//lib/active_support/notifications/instrumenter.rb#209 def now_cpu; end end # This is a default queue implementation that ships with Notifications. # It just pushes events to all registered log subscribers. # # This class is thread safe. All methods are reentrant. # # source://activesupport//lib/active_support/notifications/fanout.rb#51 class ActiveSupport::Notifications::Fanout include ::Mutex_m include ::ActiveSupport::Notifications::FanoutIteration # @return [Fanout] a new instance of Fanout # # source://activesupport//lib/active_support/notifications/fanout.rb#54 def initialize; end # source://activesupport//lib/active_support/notifications/fanout.rb#301 def all_listeners_for(name); end # source://activesupport//lib/active_support/notifications/fanout.rb#276 def build_handle(name, id, payload); end # source://activesupport//lib/active_support/notifications/fanout.rb#105 def clear_cache(key = T.unsafe(nil)); end # source://activesupport//lib/active_support/notifications/fanout.rb#287 def finish(name, id, payload, listeners = T.unsafe(nil)); end # source://activesupport//lib/active_support/notifications/fanout.rb#191 def groups_for(name); end # source://activesupport//lib/active_support/notifications/fanout.rb#63 def inspect; end # source://activesupport//lib/active_support/notifications/fanout.rb#310 def listeners_for(name); end # @return [Boolean] # # source://activesupport//lib/active_support/notifications/fanout.rb#314 def listening?(name); end # source://mutex_m/0.2.0/lib/mutex_m.rb#91 def lock; end # source://mutex_m/0.2.0/lib/mutex_m.rb#81 def locked?; end # source://activesupport//lib/active_support/notifications/fanout.rb#293 def publish(name, *args); end # source://activesupport//lib/active_support/notifications/fanout.rb#297 def publish_event(event); end # source://activesupport//lib/active_support/notifications/fanout.rb#280 def start(name, id, payload); end # source://activesupport//lib/active_support/notifications/fanout.rb#68 def subscribe(pattern = T.unsafe(nil), callable = T.unsafe(nil), monotonic: T.unsafe(nil), &block); end # source://mutex_m/0.2.0/lib/mutex_m.rb#76 def synchronize(&block); end # source://mutex_m/0.2.0/lib/mutex_m.rb#86 def try_lock; end # source://mutex_m/0.2.0/lib/mutex_m.rb#96 def unlock; end # source://activesupport//lib/active_support/notifications/fanout.rb#85 def unsubscribe(subscriber_or_name); end # This is a sync queue, so there is no waiting. # # source://activesupport//lib/active_support/notifications/fanout.rb#319 def wait; end end # source://activesupport//lib/active_support/notifications/fanout.rb#117 class ActiveSupport::Notifications::Fanout::BaseGroup include ::ActiveSupport::Notifications::FanoutIteration # @return [BaseGroup] a new instance of BaseGroup # # source://activesupport//lib/active_support/notifications/fanout.rb#120 def initialize(listeners, name, id, payload); end # source://activesupport//lib/active_support/notifications/fanout.rb#124 def each(&block); end end # source://activesupport//lib/active_support/notifications/fanout.rb#129 class ActiveSupport::Notifications::Fanout::BaseTimeGroup < ::ActiveSupport::Notifications::Fanout::BaseGroup # source://activesupport//lib/active_support/notifications/fanout.rb#134 def finish(name, id, payload); end # source://activesupport//lib/active_support/notifications/fanout.rb#130 def start(name, id, payload); end end # source://activesupport//lib/active_support/notifications/fanout.rb#170 class ActiveSupport::Notifications::Fanout::EventObjectGroup < ::ActiveSupport::Notifications::Fanout::BaseGroup # source://activesupport//lib/active_support/notifications/fanout.rb#176 def finish(name, id, payload); end # source://activesupport//lib/active_support/notifications/fanout.rb#171 def start(name, id, payload); end private # source://activesupport//lib/active_support/notifications/fanout.rb#186 def build_event(name, id, payload); end end # source://activesupport//lib/active_support/notifications/fanout.rb#156 class ActiveSupport::Notifications::Fanout::EventedGroup < ::ActiveSupport::Notifications::Fanout::BaseGroup # source://activesupport//lib/active_support/notifications/fanout.rb#163 def finish(name, id, payload); end # source://activesupport//lib/active_support/notifications/fanout.rb#157 def start(name, id, payload); end end # A +Handle+ is used to record the start and finish time of event. # # Both #start and #finish must each be called exactly once. # # Where possible, it's best to use the block form: ActiveSupport::Notifications.instrument. # +Handle+ is a low-level API intended for cases where the block form can't be used. # # handle = ActiveSupport::Notifications.instrumenter.build_handle("my.event", {}) # begin # handle.start # # work to be instrumented # ensure # handle.finish # end # # source://activesupport//lib/active_support/notifications/fanout.rb#231 class ActiveSupport::Notifications::Fanout::Handle include ::ActiveSupport::Notifications::FanoutIteration # @return [Handle] a new instance of Handle # # source://activesupport//lib/active_support/notifications/fanout.rb#234 def initialize(notifier, name, id, payload); end # source://activesupport//lib/active_support/notifications/fanout.rb#253 def finish; end # source://activesupport//lib/active_support/notifications/fanout.rb#257 def finish_with_values(name, id, payload); end # source://activesupport//lib/active_support/notifications/fanout.rb#244 def start; end private # source://activesupport//lib/active_support/notifications/fanout.rb#267 def ensure_state!(expected); end end # source://activesupport//lib/active_support/notifications/fanout.rb#142 class ActiveSupport::Notifications::Fanout::MonotonicTimedGroup < ::ActiveSupport::Notifications::Fanout::BaseTimeGroup private # source://activesupport//lib/active_support/notifications/fanout.rb#144 def now; end end # source://activesupport//lib/active_support/notifications/fanout.rb#322 module ActiveSupport::Notifications::Fanout::Subscribers class << self # source://activesupport//lib/active_support/notifications/fanout.rb#323 def new(pattern, listener, monotonic); end end end # source://activesupport//lib/active_support/notifications/fanout.rb#437 class ActiveSupport::Notifications::Fanout::Subscribers::EventObject < ::ActiveSupport::Notifications::Fanout::Subscribers::Evented # source://activesupport//lib/active_support/notifications/fanout.rb#438 def group_class; end # source://activesupport//lib/active_support/notifications/fanout.rb#442 def publish_event(event); end end # source://activesupport//lib/active_support/notifications/fanout.rb#379 class ActiveSupport::Notifications::Fanout::Subscribers::Evented # @return [Evented] a new instance of Evented # # source://activesupport//lib/active_support/notifications/fanout.rb#382 def initialize(pattern, delegate); end # Returns the value of attribute delegate. # # source://activesupport//lib/active_support/notifications/fanout.rb#380 def delegate; end # source://activesupport//lib/active_support/notifications/fanout.rb#390 def group_class; end # Returns the value of attribute pattern. # # source://activesupport//lib/active_support/notifications/fanout.rb#380 def pattern; end # source://activesupport//lib/active_support/notifications/fanout.rb#394 def publish(name, *args); end # source://activesupport//lib/active_support/notifications/fanout.rb#400 def publish_event(event); end # Returns the value of attribute silenceable. # # source://activesupport//lib/active_support/notifications/fanout.rb#380 def silenceable; end # @return [Boolean] # # source://activesupport//lib/active_support/notifications/fanout.rb#408 def silenced?(name); end # @return [Boolean] # # source://activesupport//lib/active_support/notifications/fanout.rb#412 def subscribed_to?(name); end # source://activesupport//lib/active_support/notifications/fanout.rb#416 def unsubscribe!(name); end end # source://activesupport//lib/active_support/notifications/fanout.rb#342 class ActiveSupport::Notifications::Fanout::Subscribers::Matcher # @return [Matcher] a new instance of Matcher # # source://activesupport//lib/active_support/notifications/fanout.rb#355 def initialize(pattern); end # source://activesupport//lib/active_support/notifications/fanout.rb#364 def ===(name); end # Returns the value of attribute exclusions. # # source://activesupport//lib/active_support/notifications/fanout.rb#343 def exclusions; end # Returns the value of attribute pattern. # # source://activesupport//lib/active_support/notifications/fanout.rb#343 def pattern; end # source://activesupport//lib/active_support/notifications/fanout.rb#360 def unsubscribe!(name); end class << self # source://activesupport//lib/active_support/notifications/fanout.rb#345 def wrap(pattern); end end end # source://activesupport//lib/active_support/notifications/fanout.rb#368 class ActiveSupport::Notifications::Fanout::Subscribers::Matcher::AllMessages # source://activesupport//lib/active_support/notifications/fanout.rb#369 def ===(name); end # source://activesupport//lib/active_support/notifications/fanout.rb#373 def unsubscribe!(*_arg0); end end # source://activesupport//lib/active_support/notifications/fanout.rb#431 class ActiveSupport::Notifications::Fanout::Subscribers::MonotonicTimed < ::ActiveSupport::Notifications::Fanout::Subscribers::Timed # source://activesupport//lib/active_support/notifications/fanout.rb#432 def group_class; end end # source://activesupport//lib/active_support/notifications/fanout.rb#421 class ActiveSupport::Notifications::Fanout::Subscribers::Timed < ::ActiveSupport::Notifications::Fanout::Subscribers::Evented # source://activesupport//lib/active_support/notifications/fanout.rb#422 def group_class; end # source://activesupport//lib/active_support/notifications/fanout.rb#426 def publish(name, *args); end end # source://activesupport//lib/active_support/notifications/fanout.rb#149 class ActiveSupport::Notifications::Fanout::TimedGroup < ::ActiveSupport::Notifications::Fanout::BaseTimeGroup private # source://activesupport//lib/active_support/notifications/fanout.rb#151 def now; end end # source://activesupport//lib/active_support/notifications/fanout.rb#20 module ActiveSupport::Notifications::FanoutIteration private # source://activesupport//lib/active_support/notifications/fanout.rb#22 def iterate_guarding_exceptions(collection); end end # source://activesupport//lib/active_support/notifications/fanout.rb#10 class ActiveSupport::Notifications::InstrumentationSubscriberError < ::RuntimeError # @return [InstrumentationSubscriberError] a new instance of InstrumentationSubscriberError # # source://activesupport//lib/active_support/notifications/fanout.rb#13 def initialize(exceptions); end # Returns the value of attribute exceptions. # # source://activesupport//lib/active_support/notifications/fanout.rb#11 def exceptions; end end # Instrumenters are stored in a thread local. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#9 class ActiveSupport::Notifications::Instrumenter # @return [Instrumenter] a new instance of Instrumenter # # source://activesupport//lib/active_support/notifications/instrumenter.rb#12 def initialize(notifier); end # Returns a "handle" for an event with the given +name+ and +payload+. # # #start and #finish must each be called exactly once on the returned object. # # Where possible, it's best to use #instrument, which will record the # start and finish of the event and correctly handle any exceptions. # +build_handle+ is a low-level API intended for cases where using # +instrument+ isn't possible. # # See ActiveSupport::Notifications::Fanout::Handle. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#78 def build_handle(name, payload); end # Send a finish notification with +name+ and +payload+. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#92 def finish(name, payload); end # source://activesupport//lib/active_support/notifications/instrumenter.rb#96 def finish_with_state(listeners_state, name, payload); end # Returns the value of attribute id. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#10 def id; end # Given a block, instrument it by measuring the time taken to execute # and publish it. Without a block, simply send a message via the # notifier. Notice that events get sent even if an error occurs in the # passed-in block. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#54 def instrument(name, payload = T.unsafe(nil)); end # source://activesupport//lib/active_support/notifications/instrumenter.rb#82 def new_event(name, payload = T.unsafe(nil)); end # Send a start notification with +name+ and +payload+. # # source://activesupport//lib/active_support/notifications/instrumenter.rb#87 def start(name, payload); end private # source://activesupport//lib/active_support/notifications/instrumenter.rb#101 def unique_id; end end # source://activesupport//lib/active_support/notifications/instrumenter.rb#21 class ActiveSupport::Notifications::Instrumenter::LegacyHandle # @return [LegacyHandle] a new instance of LegacyHandle # # source://activesupport//lib/active_support/notifications/instrumenter.rb#34 def initialize(notifier, name, id, payload); end # source://activesupport//lib/active_support/notifications/instrumenter.rb#45 def finish; end # source://activesupport//lib/active_support/notifications/instrumenter.rb#41 def start; end end # source://activesupport//lib/active_support/notifications/instrumenter.rb#22 class ActiveSupport::Notifications::Instrumenter::LegacyHandle::Wrapper # @return [Wrapper] a new instance of Wrapper # # source://activesupport//lib/active_support/notifications/instrumenter.rb#23 def initialize(notifier); end # source://activesupport//lib/active_support/notifications/instrumenter.rb#27 def build_handle(name, id, payload); end # source://activesupport//lib/active_support/notifications/instrumenter.rb#31 def finish(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/notifications/instrumenter.rb#31 def start(*_arg0, **_arg1, &_arg2); end end # source://activesupport//lib/active_support/number_helper.rb#4 module ActiveSupport::NumberHelper extend ::ActiveSupport::Autoload extend ::ActiveSupport::NumberHelper # Formats a +number+ into a currency string. # # number_to_currency(1234567890.50) # => "$1,234,567,890.50" # number_to_currency(1234567890.506) # => "$1,234,567,890.51" # number_to_currency("12x34") # => "$12x34" # # number_to_currency(1234567890.50, unit: "£", separator: ",", delimiter: "") # # => "£1234567890,50" # # The currency unit and number formatting of the current locale will be used # unless otherwise specified via options. No currency conversion is # performed. If the user is given a way to change their locale, they will # also be able to change the relative value of the currency displayed with # this helper. If your application will ever support multiple locales, you # may want to specify a constant +:locale+ option or consider using a # library capable of currency conversion. # # ==== Options # # [+:locale+] # The locale to use for formatting. Defaults to the current locale. # # number_to_currency(1234567890.506, locale: :fr) # # => "1 234 567 890,51 €" # # [+:precision+] # The level of precision. Defaults to 2. # # number_to_currency(1234567890.123, precision: 3) # => "$1,234,567,890.123" # number_to_currency(0.456789, precision: 0) # => "$0" # # [+:round_mode+] # Specifies how rounding is performed. See +BigDecimal.mode+. Defaults to # +:default+. # # number_to_currency(1234567890.01, precision: 0, round_mode: :up) # # => "$1,234,567,891" # # [+:unit+] # The denomination of the currency. Defaults to "$". # # [+:separator+] # The decimal separator. Defaults to ".". # # [+:delimiter+] # The thousands delimiter. Defaults to ",". # # [+:format+] # The format for non-negative numbers. %u represents the currency, # and %n represents the number. Defaults to "%u%n". # # number_to_currency(1234567890.50, format: "%n %u") # # => "1,234,567,890.50 $" # # [+:negative_format+] # The format for negative numbers. %u and %n behave the # same as in +:format+, but %n represents the absolute value of # the number. Defaults to the value of +:format+ prepended with -. # # number_to_currency(-1234567890.50, negative_format: "(%u%n)") # # => "($1,234,567,890.50)" # # [+:strip_insignificant_zeros+] # Whether to remove insignificant zeros after the decimal separator. # Defaults to false. # # number_to_currency(1234567890.50, strip_insignificant_zeros: true) # # => "$1,234,567,890.5" # # source://activesupport//lib/active_support/number_helper.rb#139 def number_to_currency(number, options = T.unsafe(nil)); end # Formats +number+ by grouping thousands with a delimiter. # # number_to_delimited(12345678) # => "12,345,678" # number_to_delimited("123456") # => "123,456" # number_to_delimited(12345678.9876) # => "12,345,678.9876" # number_to_delimited("12x34") # => "12x34" # # number_to_delimited(12345678.9876, delimiter: ".", separator: ",") # # => "12.345.678,9876" # # ==== Options # # [+:locale+] # The locale to use for formatting. Defaults to the current locale. # # number_to_delimited(12345678.05, locale: :fr) # # => "12 345 678,05" # # [+:delimiter+] # The thousands delimiter. Defaults to ",". # # number_to_delimited(12345678, delimiter: ".") # # => "12.345.678" # # [+:separator+] # The decimal separator. Defaults to ".". # # number_to_delimited(12345678.05, separator: " ") # # => "12,345,678 05" # # [+:delimiter_pattern+] # A regexp to determine the placement of delimiters. Helpful when using # currency formats like INR. # # number_to_delimited("123456.78", delimiter_pattern: /(\d+?)(?=(\d\d)+(\d)(?!\d))/) # # => "1,23,456.78" # # source://activesupport//lib/active_support/number_helper.rb#242 def number_to_delimited(number, options = T.unsafe(nil)); end # Formats +number+ into a more human-friendly representation. Useful for # numbers that can become very large and too hard to read. # # number_to_human(123) # => "123" # number_to_human(1234) # => "1.23 Thousand" # number_to_human(12345) # => "12.3 Thousand" # number_to_human(1234567) # => "1.23 Million" # number_to_human(1234567890) # => "1.23 Billion" # number_to_human(1234567890123) # => "1.23 Trillion" # number_to_human(1234567890123456) # => "1.23 Quadrillion" # number_to_human(1234567890123456789) # => "1230 Quadrillion" # # See #number_to_human_size if you want to pretty-print a file size. # # ==== Options # # [+:locale+] # The locale to use for formatting. Defaults to the current locale. # # [+:precision+] # The level of precision. Defaults to 3. # # number_to_human(123456, precision: 2) # => "120 Thousand" # number_to_human(123456, precision: 4) # => "123.5 Thousand" # # [+:round_mode+] # Specifies how rounding is performed. See +BigDecimal.mode+. Defaults to # +:default+. # # number_to_human(123456, precision: 2, round_mode: :up) # # => "130 Thousand" # # [+:significant+] # Whether +:precision+ should be applied to significant digits instead of # fractional digits. Defaults to true. # # [+:separator+] # The decimal separator. Defaults to ".". # # number_to_human(123456, precision: 4, separator: ",") # # => "123,5 Thousand" # # [+:delimiter+] # The thousands delimiter. Defaults to ",". # # [+:strip_insignificant_zeros+] # Whether to remove insignificant zeros after the decimal separator. # Defaults to true. # # number_to_human(1000000) # => "1 Million" # number_to_human(1000000, strip_insignificant_zeros: false) # => "1.00 Million" # number_to_human(10.01) # => "10" # number_to_human(10.01, strip_insignificant_zeros: false) # => "10.0" # # [+:format+] # The format of the output. %n represents the number, and # %u represents the quantifier (e.g., "Thousand"). Defaults to # "%n %u". # # [+:units+] # A Hash of custom unit quantifier names. # # number_to_human(1, units: { unit: "m", thousand: "km" }) # => "1 m" # number_to_human(100, units: { unit: "m", thousand: "km" }) # => "100 m" # number_to_human(1000, units: { unit: "m", thousand: "km" }) # => "1 km" # number_to_human(100000, units: { unit: "m", thousand: "km" }) # => "100 km" # number_to_human(10000000, units: { unit: "m", thousand: "km" }) # => "10000 km" # # The following keys are supported for integer units: +:unit+, +:ten+, # +:hundred+, +:thousand+, +:million+, +:billion+, +:trillion+, # +:quadrillion+. Additionally, the following keys are supported for # fractional units: +:deci+, +:centi+, +:mili+, +:micro+, +:nano+, # +:pico+, +:femto+. # # The Hash can also be defined as a scope in an I18n locale. For example: # # en: # distance: # centi: # one: "centimeter" # other: "centimeters" # unit: # one: "meter" # other: "meters" # thousand: # one: "kilometer" # other: "kilometers" # # Then it can be specified by name: # # number_to_human(1, units: :distance) # => "1 meter" # number_to_human(100, units: :distance) # => "100 meters" # number_to_human(1000, units: :distance) # => "1 kilometer" # number_to_human(100000, units: :distance) # => "100 kilometers" # number_to_human(10000000, units: :distance) # => "10000 kilometers" # number_to_human(0.1, units: :distance) # => "10 centimeters" # number_to_human(0.01, units: :distance) # => "1 centimeter" # # source://activesupport//lib/active_support/number_helper.rb#453 def number_to_human(number, options = T.unsafe(nil)); end # Formats +number+ as bytes into a more human-friendly representation. # Useful for reporting file sizes to users. # # number_to_human_size(123) # => "123 Bytes" # number_to_human_size(1234) # => "1.21 KB" # number_to_human_size(12345) # => "12.1 KB" # number_to_human_size(1234567) # => "1.18 MB" # number_to_human_size(1234567890) # => "1.15 GB" # number_to_human_size(1234567890123) # => "1.12 TB" # number_to_human_size(1234567890123456) # => "1.1 PB" # number_to_human_size(1234567890123456789) # => "1.07 EB" # # See #number_to_human if you want to pretty-print a generic number. # # ==== Options # # [+:locale+] # The locale to use for formatting. Defaults to the current locale. # # [+:precision+] # The level of precision. Defaults to 3. # # number_to_human_size(123456, precision: 2) # => "120 KB" # number_to_human_size(1234567, precision: 2) # => "1.2 MB" # # [+:round_mode+] # Specifies how rounding is performed. See +BigDecimal.mode+. Defaults to # +:default+. # # number_to_human_size(123456, precision: 2, round_mode: :up) # # => "130 KB" # # [+:significant+] # Whether +:precision+ should be applied to significant digits instead of # fractional digits. Defaults to true. # # [+:separator+] # The decimal separator. Defaults to ".". # # number_to_human_size(1234567, separator: ",") # # => "1,18 MB" # # [+:delimiter+] # The thousands delimiter. Defaults to ",". # # [+:strip_insignificant_zeros+] # Whether to remove insignificant zeros after the decimal separator. # Defaults to true. # # source://activesupport//lib/active_support/number_helper.rb#351 def number_to_human_size(number, options = T.unsafe(nil)); end # Formats +number+ as a percentage string. # # number_to_percentage(100) # => "100.000%" # number_to_percentage("99") # => "99.000%" # number_to_percentage("99x") # => "99x%" # # number_to_percentage(12345.6789, delimiter: ".", separator: ",", precision: 2) # # => "12.345,68%" # # ==== Options # # [+:locale+] # The locale to use for formatting. Defaults to the current locale. # # number_to_percentage(1000, locale: :fr) # # => "1000,000%" # # [+:precision+] # The level of precision, or +nil+ to preserve +number+'s precision. # Defaults to 2. # # number_to_percentage(12.3456789, precision: 4) # => "12.3457%" # number_to_percentage(99.999, precision: 0) # => "100%" # number_to_percentage(99.999, precision: nil) # => "99.999%" # # [+:round_mode+] # Specifies how rounding is performed. See +BigDecimal.mode+. Defaults to # +:default+. # # number_to_percentage(12.3456789, precision: 4, round_mode: :down) # # => "12.3456%" # # [+:significant+] # Whether +:precision+ should be applied to significant digits instead of # fractional digits. Defaults to false. # # number_to_percentage(12345.6789) # => "12345.679%" # number_to_percentage(12345.6789, significant: true) # => "12300%" # number_to_percentage(12345.6789, precision: 2) # => "12345.68%" # number_to_percentage(12345.6789, precision: 2, significant: true) # => "12000%" # # [+:separator+] # The decimal separator. Defaults to ".". # # [+:delimiter+] # The thousands delimiter. Defaults to ",". # # [+:strip_insignificant_zeros+] # Whether to remove insignificant zeros after the decimal separator. # Defaults to false. # # [+:format+] # The format of the output. %n represents the number. Defaults to # "%n%". # # number_to_percentage(100, format: "%n %") # # => "100.000 %" # # source://activesupport//lib/active_support/number_helper.rb#201 def number_to_percentage(number, options = T.unsafe(nil)); end # Formats +number+ into a phone number. # # number_to_phone(5551234) # => "555-1234" # number_to_phone("5551234") # => "555-1234" # number_to_phone(1235551234) # => "123-555-1234" # number_to_phone("12x34") # => "12x34" # # number_to_phone(1235551234, delimiter: ".", country_code: 1, extension: 1343) # # => "+1.123.555.1234 x 1343" # # ==== Options # # [+:area_code+] # Whether to use parentheses for the area code. Defaults to false. # # number_to_phone(1235551234, area_code: true) # # => "(123) 555-1234" # # [+:delimiter+] # The digit group delimiter to use. Defaults to "-". # # number_to_phone(1235551234, delimiter: " ") # # => "123 555 1234" # # [+:country_code+] # A country code to prepend. # # number_to_phone(1235551234, country_code: 1) # # => "+1-123-555-1234" # # [+:extension+] # An extension to append. # # number_to_phone(1235551234, extension: 555) # # => "123-555-1234 x 555" # # [+:pattern+] # A regexp that specifies how the digits should be grouped. The first # three captures from the regexp are treated as digit groups. # # number_to_phone(13312345678, pattern: /(\d{3})(\d{4})(\d{4})$/) # # => "133-1234-5678" # number_to_phone(75561234567, pattern: /(\d{1,4})(\d{4})(\d{4})$/, area_code: true) # # => "(755) 6123-4567" # # source://activesupport//lib/active_support/number_helper.rb#66 def number_to_phone(number, options = T.unsafe(nil)); end # Formats +number+ to a specific level of precision. # # number_to_rounded(12345.6789) # => "12345.679" # number_to_rounded(12345.6789, precision: 2) # => "12345.68" # number_to_rounded(12345.6789, precision: 0) # => "12345" # number_to_rounded(12345, precision: 5) # => "12345.00000" # # ==== Options # # [+:locale+] # The locale to use for formatting. Defaults to the current locale. # # number_to_rounded(111.234, locale: :fr) # # => "111,234" # # [+:precision+] # The level of precision, or +nil+ to preserve +number+'s precision. # Defaults to 3. # # number_to_rounded(12345.6789, precision: nil) # # => "12345.6789" # # [+:round_mode+] # Specifies how rounding is performed. See +BigDecimal.mode+. Defaults to # +:default+. # # number_to_rounded(12.34, precision: 0, round_mode: :up) # # => "13" # # [+:significant+] # Whether +:precision+ should be applied to significant digits instead of # fractional digits. Defaults to false. # # number_to_rounded(12345.6789) # => "12345.679" # number_to_rounded(12345.6789, significant: true) # => "12300" # number_to_rounded(12345.6789, precision: 2) # => "12345.68" # number_to_rounded(12345.6789, precision: 2, significant: true) # => "12000" # # [+:separator+] # The decimal separator. Defaults to ".". # # [+:delimiter+] # The thousands delimiter. Defaults to ",". # # [+:strip_insignificant_zeros+] # Whether to remove insignificant zeros after the decimal separator. # Defaults to false. # # number_to_rounded(12.34, strip_insignificant_zeros: false) # => "12.340" # number_to_rounded(12.34, strip_insignificant_zeros: true) # => "12.34" # number_to_rounded(12.3456, strip_insignificant_zeros: true) # => "12.346" # # source://activesupport//lib/active_support/number_helper.rb#298 def number_to_rounded(number, options = T.unsafe(nil)); end end # source://activesupport//lib/active_support/number_helper/number_converter.rb#12 class ActiveSupport::NumberHelper::NumberConverter # @return [NumberConverter] a new instance of NumberConverter # # source://activesupport//lib/active_support/number_helper/number_converter.rb#124 def initialize(number, options); end # source://activesupport//lib/active_support/number_helper/number_converter.rb#130 def execute; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace=(_arg0); end # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace?; end # Returns the value of attribute number. # # source://activesupport//lib/active_support/number_helper/number_converter.rb#19 def number; end # Returns the value of attribute opts. # # source://activesupport//lib/active_support/number_helper/number_converter.rb#19 def opts; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float=(_arg0); end # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float?; end private # source://activesupport//lib/active_support/number_helper/number_converter.rb#149 def default_format_options; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#174 def default_value(key); end # source://activesupport//lib/active_support/number_helper/number_converter.rb#145 def format_options; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#155 def i18n_format_options; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#141 def options; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#170 def translate_in_locale(key, **i18n_options); end # source://activesupport//lib/active_support/number_helper/number_converter.rb#166 def translate_number_value_with_default(key, **i18n_options); end # source://activesupport//lib/active_support/number_helper/number_converter.rb#178 def valid_bigdecimal; end class << self # source://activesupport//lib/active_support/number_helper/number_converter.rb#120 def convert(number, options); end # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace=(value); end # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace?; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float=(value); end # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float?; end end end # source://activesupport//lib/active_support/number_helper/number_converter.rb#21 ActiveSupport::NumberHelper::NumberConverter::DEFAULTS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/number_helper/number_to_currency_converter.rb#7 class ActiveSupport::NumberHelper::NumberToCurrencyConverter < ::ActiveSupport::NumberHelper::NumberConverter # source://activesupport//lib/active_support/number_helper/number_to_currency_converter.rb#10 def convert; end private # source://activesupport//lib/active_support/number_helper/number_to_currency_converter.rb#38 def i18n_opts; end # source://activesupport//lib/active_support/number_helper/number_to_currency_converter.rb#29 def options; end class << self # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace; end end end # source://activesupport//lib/active_support/number_helper/number_to_delimited_converter.rb#7 class ActiveSupport::NumberHelper::NumberToDelimitedConverter < ::ActiveSupport::NumberHelper::NumberConverter # source://activesupport//lib/active_support/number_helper/number_to_delimited_converter.rb#12 def convert; end private # source://activesupport//lib/active_support/number_helper/number_to_delimited_converter.rb#25 def delimiter_pattern; end # source://activesupport//lib/active_support/number_helper/number_to_delimited_converter.rb#17 def parts; end class << self # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float; end end end # source://activesupport//lib/active_support/number_helper/number_to_delimited_converter.rb#10 ActiveSupport::NumberHelper::NumberToDelimitedConverter::DEFAULT_DELIMITER_REGEX = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/number_helper/number_to_human_converter.rb#7 class ActiveSupport::NumberHelper::NumberToHumanConverter < ::ActiveSupport::NumberHelper::NumberConverter # source://activesupport//lib/active_support/number_helper/number_to_human_converter.rb#15 def convert; end private # source://activesupport//lib/active_support/number_helper/number_to_human_converter.rb#50 def calculate_exponent(units); end # source://activesupport//lib/active_support/number_helper/number_to_human_converter.rb#38 def determine_unit(units, exponent); end # source://activesupport//lib/active_support/number_helper/number_to_human_converter.rb#34 def format; end # source://activesupport//lib/active_support/number_helper/number_to_human_converter.rb#55 def unit_exponents(units); end class << self # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float; end end end # source://activesupport//lib/active_support/number_helper/number_to_human_converter.rb#8 ActiveSupport::NumberHelper::NumberToHumanConverter::DECIMAL_UNITS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/number_helper/number_to_human_converter.rb#10 ActiveSupport::NumberHelper::NumberToHumanConverter::INVERTED_DECIMAL_UNITS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/number_helper/number_to_human_size_converter.rb#7 class ActiveSupport::NumberHelper::NumberToHumanSizeConverter < ::ActiveSupport::NumberHelper::NumberConverter # source://activesupport//lib/active_support/number_helper/number_to_human_size_converter.rb#13 def convert; end private # source://activesupport//lib/active_support/number_helper/number_to_human_size_converter.rb#55 def base; end # source://activesupport//lib/active_support/number_helper/number_to_human_size_converter.rb#31 def conversion_format; end # source://activesupport//lib/active_support/number_helper/number_to_human_size_converter.rb#44 def exponent; end # @return [Boolean] # # source://activesupport//lib/active_support/number_helper/number_to_human_size_converter.rb#51 def smaller_than_base?; end # source://activesupport//lib/active_support/number_helper/number_to_human_size_converter.rb#39 def storage_unit_key; end # source://activesupport//lib/active_support/number_helper/number_to_human_size_converter.rb#35 def unit; end class << self # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float; end end end # source://activesupport//lib/active_support/number_helper/number_to_human_size_converter.rb#8 ActiveSupport::NumberHelper::NumberToHumanSizeConverter::STORAGE_UNITS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/number_helper/number_to_percentage_converter.rb#7 class ActiveSupport::NumberHelper::NumberToPercentageConverter < ::ActiveSupport::NumberHelper::NumberConverter # source://activesupport//lib/active_support/number_helper/number_to_percentage_converter.rb#10 def convert; end class << self # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace; end end end # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#8 class ActiveSupport::NumberHelper::NumberToPhoneConverter < ::ActiveSupport::NumberHelper::NumberConverter # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#9 def convert; end private # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#16 def convert_to_phone_number(number); end # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#24 def convert_with_area_code(number); end # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#31 def convert_without_area_code(number); end # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#47 def country_code(code); end # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#43 def delimiter; end # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#51 def phone_ext(ext); end # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#55 def regexp_pattern(default_pattern); end # @return [Boolean] # # source://activesupport//lib/active_support/number_helper/number_to_phone_converter.rb#39 def start_with_delimiter?(number); end end # source://activesupport//lib/active_support/number_helper/number_to_rounded_converter.rb#7 class ActiveSupport::NumberHelper::NumberToRoundedConverter < ::ActiveSupport::NumberHelper::NumberConverter # source://activesupport//lib/active_support/number_helper/number_to_rounded_converter.rb#11 def convert; end private # source://activesupport//lib/active_support/number_helper/number_to_rounded_converter.rb#49 def format_number(number); end # source://activesupport//lib/active_support/number_helper/number_to_rounded_converter.rb#45 def strip_insignificant_zeros; end class << self # source://activesupport//lib/active_support/number_helper/number_converter.rb#14 def namespace; end # source://activesupport//lib/active_support/number_helper/number_converter.rb#17 def validate_float; end end end # source://activesupport//lib/active_support/number_helper/rounding_helper.rb#5 class ActiveSupport::NumberHelper::RoundingHelper # @return [RoundingHelper] a new instance of RoundingHelper # # source://activesupport//lib/active_support/number_helper/rounding_helper.rb#8 def initialize(options); end # source://activesupport//lib/active_support/number_helper/rounding_helper.rb#20 def digit_count(number); end # Returns the value of attribute options. # # source://activesupport//lib/active_support/number_helper/rounding_helper.rb#6 def options; end # source://activesupport//lib/active_support/number_helper/rounding_helper.rb#12 def round(number); end private # source://activesupport//lib/active_support/number_helper/rounding_helper.rb#37 def absolute_precision(number); end # source://activesupport//lib/active_support/number_helper/rounding_helper.rb#26 def convert_to_decimal(number); end end # source://activesupport//lib/active_support/option_merger.rb#6 class ActiveSupport::OptionMerger # @return [OptionMerger] a new instance of OptionMerger # # source://activesupport//lib/active_support/option_merger.rb#11 def initialize(context, options); end private # source://activesupport//lib/active_support/option_merger.rb#16 def method_missing(method, *arguments, &block); end # @return [Boolean] # # source://activesupport//lib/active_support/option_merger.rb#34 def respond_to_missing?(*arguments); end end # DEPRECATED: +ActiveSupport::OrderedHash+ implements a hash that preserves # insertion order. # # oh = ActiveSupport::OrderedHash.new # oh[:a] = 1 # oh[:b] = 2 # oh.keys # => [:a, :b], this order is guaranteed # # Also, maps the +omap+ feature for YAML files # (See https://yaml.org/type/omap.html) to support ordered items # when loading from YAML. # # +ActiveSupport::OrderedHash+ is namespaced to prevent conflicts # with other implementations. # # source://activesupport//lib/active_support/ordered_hash.rb#24 class ActiveSupport::OrderedHash < ::Hash # source://activesupport//lib/active_support/ordered_hash.rb#29 def encode_with(coder); end # Returns true to make sure that this hash is extractable via Array#extract_options! # # @return [Boolean] # # source://activesupport//lib/active_support/ordered_hash.rb#46 def extractable_options?; end # source://activesupport//lib/active_support/ordered_hash.rb#41 def nested_under_indifferent_access; end # source://activesupport//lib/active_support/ordered_hash.rb#37 def reject(*args, &block); end # source://activesupport//lib/active_support/ordered_hash.rb#33 def select(*args, &block); end # source://activesupport//lib/active_support/ordered_hash.rb#25 def to_yaml_type; end end # = Ordered Options # # +OrderedOptions+ inherits from +Hash+ and provides dynamic accessor methods. # # With a +Hash+, key-value pairs are typically managed like this: # # h = {} # h[:boy] = 'John' # h[:girl] = 'Mary' # h[:boy] # => 'John' # h[:girl] # => 'Mary' # h[:dog] # => nil # # Using +OrderedOptions+, the above code can be written as: # # h = ActiveSupport::OrderedOptions.new # h.boy = 'John' # h.girl = 'Mary' # h.boy # => 'John' # h.girl # => 'Mary' # h.dog # => nil # # To raise an exception when the value is blank, append a # bang to the key name, like: # # h.dog! # => raises KeyError: :dog is blank # # source://activesupport//lib/active_support/ordered_options.rb#33 class ActiveSupport::OrderedOptions < ::Hash # source://activesupport//lib/active_support/ordered_options.rb#41 def [](key); end # source://activesupport//lib/active_support/ordered_options.rb#37 def []=(key, value); end # source://activesupport//lib/active_support/ordered_options.rb#45 def dig(key, *identifiers); end # @return [Boolean] # # source://activesupport//lib/active_support/ordered_options.rb#68 def extractable_options?; end # source://activesupport//lib/active_support/ordered_options.rb#72 def inspect; end # source://activesupport//lib/active_support/ordered_options.rb#49 def method_missing(name, *args); end protected # preserve the original #[] method def _get(_arg0); end private # @return [Boolean] # # source://activesupport//lib/active_support/ordered_options.rb#64 def respond_to_missing?(name, include_private); end end # = Active Support Proxy \Object # # A class with no predefined methods that behaves similarly to Builder's # BlankSlate. Used for proxy classes. # # source://activesupport//lib/active_support/proxy_object.rb#8 class ActiveSupport::ProxyObject < ::BasicObject # Let ActiveSupport::ProxyObject at least raise exceptions. # # source://activesupport//lib/active_support/proxy_object.rb#13 def raise(*args); end end # = Active Support \Reloader # # This class defines several callbacks: # # to_prepare -- Run once at application startup, and also from # +to_run+. # # to_run -- Run before a work run that is reloading. If # +reload_classes_only_on_change+ is true (the default), the class # unload will have already occurred. # # to_complete -- Run after a work run that has reloaded. If # +reload_classes_only_on_change+ is false, the class unload will # have occurred after the work run, but before this callback. # # before_class_unload -- Run immediately before the classes are # unloaded. # # after_class_unload -- Run immediately after the classes are # unloaded. # # source://activesupport//lib/active_support/reloader.rb#28 class ActiveSupport::Reloader < ::ActiveSupport::ExecutionWrapper # @return [Reloader] a new instance of Reloader # # source://activesupport//lib/active_support/reloader.rb#99 def initialize; end # source://activesupport//lib/active_support/callbacks.rb#963 def _class_unload_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#963 def _prepare_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#951 def _run_class_unload_callbacks(&block); end # source://activesupport//lib/active_support/callbacks.rb#951 def _run_prepare_callbacks(&block); end # source://activesupport//lib/active_support/reloader.rb#85 def check; end # source://activesupport//lib/active_support/reloader.rb#85 def check=(_arg0); end # source://activesupport//lib/active_support/reloader.rb#85 def check?; end # source://activesupport//lib/active_support/reloader.rb#126 def class_unload!(&block); end # source://activesupport//lib/active_support/reloader.rb#131 def complete!; end # source://activesupport//lib/active_support/reloader.rb#84 def executor; end # source://activesupport//lib/active_support/reloader.rb#84 def executor=(_arg0); end # source://activesupport//lib/active_support/reloader.rb#84 def executor?; end # Release the unload lock if it has been previously obtained # # source://activesupport//lib/active_support/reloader.rb#114 def release_unload_lock!; end # Acquire the ActiveSupport::Dependencies::Interlock unload lock, # ensuring it will be released automatically # # source://activesupport//lib/active_support/reloader.rb#106 def require_unload_lock!; end # source://activesupport//lib/active_support/reloader.rb#121 def run!; end class << self # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks; end # source://activesupport//lib/active_support/callbacks.rb#955 def _class_unload_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#959 def _class_unload_callbacks=(value); end # source://activesupport//lib/active_support/callbacks.rb#955 def _prepare_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#959 def _prepare_callbacks=(value); end # Registers a callback that will run immediately after the classes are unloaded. # # source://activesupport//lib/active_support/reloader.rb#44 def after_class_unload(*args, &block); end # Registers a callback that will run immediately before the classes are unloaded. # # source://activesupport//lib/active_support/reloader.rb#39 def before_class_unload(*args, &block); end # source://activesupport//lib/active_support/reloader.rb#85 def check; end # source://activesupport//lib/active_support/reloader.rb#87 def check!; end # source://activesupport//lib/active_support/reloader.rb#85 def check=(value); end # source://activesupport//lib/active_support/reloader.rb#85 def check?; end # source://activesupport//lib/active_support/reloader.rb#84 def executor; end # source://activesupport//lib/active_support/reloader.rb#84 def executor=(value); end # source://activesupport//lib/active_support/reloader.rb#84 def executor?; end # source://activesupport//lib/active_support/reloader.rb#95 def prepare!; end # Initiate a manual reload # # source://activesupport//lib/active_support/reloader.rb#51 def reload!; end # source://activesupport//lib/active_support/reloader.rb#91 def reloaded!; end # source://activesupport//lib/active_support/reloader.rb#62 def run!(reset: T.unsafe(nil)); end # Registers a callback that will run once at application startup and every time the code is reloaded. # # source://activesupport//lib/active_support/reloader.rb#34 def to_prepare(*args, &block); end # Run the supplied block as a work unit, reloading code as needed # # source://activesupport//lib/active_support/reloader.rb#71 def wrap(**kwargs); end end end # = Active Support \Rescuable # # Rescuable module adds support for easier exception handling. # # source://activesupport//lib/active_support/rescuable.rb#11 module ActiveSupport::Rescuable extend ::ActiveSupport::Concern include GeneratedInstanceMethods mixes_in_class_methods GeneratedClassMethods mixes_in_class_methods ::ActiveSupport::Rescuable::ClassMethods # Internal handler lookup. Delegates to class method. Some libraries call # this directly, so keeping it around for compatibility. # # source://activesupport//lib/active_support/rescuable.rb#172 def handler_for_rescue(exception); end # Delegates to the class method, but uses the instance as the subject for # rescue_from handlers (method calls, +instance_exec+ blocks). # # source://activesupport//lib/active_support/rescuable.rb#166 def rescue_with_handler(exception); end module GeneratedClassMethods def rescue_handlers; end def rescue_handlers=(value); end def rescue_handlers?; end end module GeneratedInstanceMethods def rescue_handlers; end def rescue_handlers=(value); end def rescue_handlers?; end end end # source://activesupport//lib/active_support/rescuable.rb#18 module ActiveSupport::Rescuable::ClassMethods # source://activesupport//lib/active_support/rescuable.rb#105 def handler_for_rescue(exception, object: T.unsafe(nil)); end # Registers exception classes with a handler to be called by rescue_with_handler. # # rescue_from receives a series of exception classes or class # names, and an exception handler specified by a trailing :with # option containing the name of a method or a Proc object. Alternatively, a block # can be given as the handler. # # Handlers that take one argument will be called with the exception, so # that the exception can be inspected when dealing with it. # # Handlers are inherited. They are searched from right to left, from # bottom to top, and up the hierarchy. The handler of the first class for # which exception.is_a?(klass) holds true is the one invoked, if # any. # # class ApplicationController < ActionController::Base # rescue_from User::NotAuthorized, with: :deny_access # rescue_from ActiveRecord::RecordInvalid, with: :show_record_errors # # rescue_from "MyApp::BaseError" do |exception| # redirect_to root_url, alert: exception.message # end # # private # def deny_access # head :forbidden # end # # def show_record_errors(exception) # redirect_back_or_to root_url, alert: exception.record.errors.full_messages.to_sentence # end # end # # Exceptions raised inside exception handlers are not propagated up. # # source://activesupport//lib/active_support/rescuable.rb#53 def rescue_from(*klasses, with: T.unsafe(nil), &block); end # Matches an exception to a handler based on the exception class. # # If no handler matches the exception, check for a handler matching the # (optional) +exception.cause+. If no handler matches the exception or its # cause, this returns +nil+, so you can deal with unhandled exceptions. # Be sure to re-raise unhandled exceptions if this is what you expect. # # begin # # ... # rescue => exception # rescue_with_handler(exception) || raise # end # # Returns the exception if it was handled and +nil+ if it was not. # # source://activesupport//lib/active_support/rescuable.rb#90 def rescue_with_handler(exception, object: T.unsafe(nil), visited_exceptions: T.unsafe(nil)); end private # source://activesupport//lib/active_support/rescuable.rb#139 def constantize_rescue_handler_class(class_or_name); end # source://activesupport//lib/active_support/rescuable.rb#124 def find_rescue_handler(exception); end end # source://activesupport//lib/active_support/ruby_features.rb#4 module ActiveSupport::RubyFeatures; end # RUBY_VERSION >= "3.1" # # source://activesupport//lib/active_support/ruby_features.rb#5 ActiveSupport::RubyFeatures::CLASS_SUBCLASSES = T.let(T.unsafe(nil), TrueClass) # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#19 class ActiveSupport::SafeBuffer < ::String # @return [SafeBuffer] a new instance of SafeBuffer # # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#70 def initialize(str = T.unsafe(nil)); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#130 def %(args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#123 def *(_); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#119 def +(other); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#87 def <<(value); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#38 def [](*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#111 def []=(arg1, arg2, arg3 = T.unsafe(nil)); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#95 def bytesplice(*args, value); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def capitalize(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def capitalize!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def chomp(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def chomp!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def chop(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def chop!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#59 def chr; end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#80 def clone_empty; end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#87 def concat(value); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def delete(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def delete!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def delete_prefix(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def delete_prefix!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def delete_suffix(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def delete_suffix!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def downcase(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def downcase!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#153 def encode_with(coder); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#174 def gsub(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#185 def gsub!(*args, &block); end # Returns the value of attribute html_safe. # # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#141 def html_safe?; end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#99 def insert(index, value); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def lstrip(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def lstrip!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def next(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def next!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#103 def prepend(value); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#107 def replace(value); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def reverse(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def reverse!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def rstrip(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def rstrip!(*args); end # @raise [SafeConcatError] # # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#65 def safe_concat(value); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def scrub(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def scrub!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#38 def slice(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#51 def slice!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def squeeze(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def squeeze!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def strip(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def strip!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#174 def sub(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#185 def sub!(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def succ(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def succ!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def swapcase(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def swapcase!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#149 def to_param; end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#145 def to_s; end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def tr(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def tr!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def tr_s(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def tr_s!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def unicode_normalize(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def unicode_normalize!(*args); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#160 def upcase(*args, &block); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#164 def upcase!(*args); end private # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#200 def explicit_html_escape_interpolated_argument(arg); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#204 def implicit_html_escape_interpolated_argument(arg); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#75 def initialize_copy(other); end def original_concat(*_arg0); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#212 def set_block_back_references(block, match_data); end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#218 def string_into_safe_buffer(new_string, is_html_safe); end end # Raised when ActiveSupport::SafeBuffer#safe_concat is called on unsafe buffers. # # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#32 class ActiveSupport::SafeBuffer::SafeConcatError < ::StandardError # @return [SafeConcatError] a new instance of SafeConcatError # # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#33 def initialize; end end # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#20 ActiveSupport::SafeBuffer::UNSAFE_STRING_METHODS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#26 ActiveSupport::SafeBuffer::UNSAFE_STRING_METHODS_WITH_BACKREF = T.let(T.unsafe(nil), Array) # = Secure Compare Rotator # # The ActiveSupport::SecureCompareRotator is a wrapper around ActiveSupport::SecurityUtils.secure_compare # and allows you to rotate a previously defined value to a new one. # # It can be used as follow: # # rotator = ActiveSupport::SecureCompareRotator.new('new_production_value') # rotator.rotate('previous_production_value') # rotator.secure_compare!('previous_production_value') # # One real use case example would be to rotate a basic auth credentials: # # class MyController < ApplicationController # def authenticate_request # rotator = ActiveSupport::SecureCompareRotator.new('new_password') # rotator.rotate('old_password') # # authenticate_or_request_with_http_basic do |username, password| # rotator.secure_compare!(password) # rescue ActiveSupport::SecureCompareRotator::InvalidMatch # false # end # end # end # # source://activesupport//lib/active_support/secure_compare_rotator.rb#32 class ActiveSupport::SecureCompareRotator include ::ActiveSupport::SecurityUtils # @return [SecureCompareRotator] a new instance of SecureCompareRotator # # source://activesupport//lib/active_support/secure_compare_rotator.rb#37 def initialize(value, on_rotation: T.unsafe(nil)); end # source://activesupport//lib/active_support/secure_compare_rotator.rb#43 def rotate(previous_value); end # source://activesupport//lib/active_support/secure_compare_rotator.rb#47 def secure_compare!(other_value, on_rotation: T.unsafe(nil)); end end # source://activesupport//lib/active_support/secure_compare_rotator.rb#35 class ActiveSupport::SecureCompareRotator::InvalidMatch < ::StandardError; end # source://activesupport//lib/active_support/security_utils.rb#4 module ActiveSupport::SecurityUtils private # @raise [ArgumentError] # # source://activesupport//lib/active_support/security_utils.rb#11 def fixed_length_secure_compare(a, b); end # Secure string comparison for strings of variable length. # # While a timing attack would not be able to discern the content of # a secret compared via secure_compare, it is possible to determine # the secret length. This should be considered when using secure_compare # to compare weak, short secrets to user input. # # source://activesupport//lib/active_support/security_utils.rb#33 def secure_compare(a, b); end class << self # @raise [ArgumentError] # # source://activesupport//lib/active_support/security_utils.rb#11 def fixed_length_secure_compare(a, b); end # Secure string comparison for strings of variable length. # # While a timing attack would not be able to discern the content of # a secret compared via secure_compare, it is possible to determine # the secret length. This should be considered when using secure_compare # to compare weak, short secrets to user input. # # source://activesupport//lib/active_support/security_utils.rb#33 def secure_compare(a, b); end end end # = \String Inquirer # # Wrapping a string in this class gives you a prettier way to test # for equality. The value returned by Rails.env is wrapped # in a StringInquirer object, so instead of calling this: # # Rails.env == 'production' # # you can call this: # # Rails.env.production? # # == Instantiating a new \StringInquirer # # vehicle = ActiveSupport::StringInquirer.new('car') # vehicle.car? # => true # vehicle.bike? # => false # # source://activesupport//lib/active_support/string_inquirer.rb#21 class ActiveSupport::StringInquirer < ::String private # source://activesupport//lib/active_support/string_inquirer.rb#27 def method_missing(method_name, *arguments); end # @return [Boolean] # # source://activesupport//lib/active_support/string_inquirer.rb#23 def respond_to_missing?(method_name, include_private = T.unsafe(nil)); end end # = Active Support \Subscriber # # +ActiveSupport::Subscriber+ is an object set to consume # ActiveSupport::Notifications. The subscriber dispatches notifications to # a registered object based on its given namespace. # # An example would be an Active Record subscriber responsible for collecting # statistics about queries: # # module ActiveRecord # class StatsSubscriber < ActiveSupport::Subscriber # attach_to :active_record # # def sql(event) # Statsd.timing("sql.#{event.payload[:name]}", event.duration) # end # end # end # # After configured, whenever a "sql.active_record" notification is # published, it will properly dispatch the event # (ActiveSupport::Notifications::Event) to the +sql+ method. # # We can detach a subscriber as well: # # ActiveRecord::StatsSubscriber.detach_from(:active_record) # # source://activesupport//lib/active_support/subscriber.rb#32 class ActiveSupport::Subscriber # @return [Subscriber] a new instance of Subscriber # # source://activesupport//lib/active_support/subscriber.rb#130 def initialize; end # source://activesupport//lib/active_support/subscriber.rb#135 def call(event); end # source://activesupport//lib/active_support/subscriber.rb#128 def patterns; end # source://activesupport//lib/active_support/subscriber.rb#140 def publish_event(event); end class << self # Attach the subscriber to a namespace. # # source://activesupport//lib/active_support/subscriber.rb#35 def attach_to(namespace, subscriber = T.unsafe(nil), notifier = T.unsafe(nil), inherit_all: T.unsafe(nil)); end # Detach the subscriber from a namespace. # # source://activesupport//lib/active_support/subscriber.rb#50 def detach_from(namespace, notifier = T.unsafe(nil)); end # Adds event subscribers for all new methods added to the class. # # source://activesupport//lib/active_support/subscriber.rb#69 def method_added(event); end # source://activesupport//lib/active_support/subscriber.rb#78 def subscribers; end private # source://activesupport//lib/active_support/subscriber.rb#85 def add_event_subscriber(event); end # source://activesupport//lib/active_support/subscriber.rb#123 def fetch_public_methods(subscriber, inherit_all); end # source://activesupport//lib/active_support/subscriber.rb#107 def find_attached_subscriber; end # @return [Boolean] # # source://activesupport//lib/active_support/subscriber.rb#111 def invalid_event?(event); end # Returns the value of attribute namespace. # # source://activesupport//lib/active_support/subscriber.rb#83 def namespace; end # Returns the value of attribute notifier. # # source://activesupport//lib/active_support/subscriber.rb#83 def notifier; end # @return [Boolean] # # source://activesupport//lib/active_support/subscriber.rb#119 def pattern_subscribed?(pattern); end # source://activesupport//lib/active_support/subscriber.rb#115 def prepare_pattern(event); end # source://activesupport//lib/active_support/subscriber.rb#96 def remove_event_subscriber(event); end # Returns the value of attribute subscriber. # # source://activesupport//lib/active_support/subscriber.rb#83 def subscriber; end end end # = Active Support Tagged Logging # # Wraps any standard Logger object to provide tagging capabilities. # # May be called with a block: # # logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT)) # logger.tagged('BCX') { logger.info 'Stuff' } # Logs "[BCX] Stuff" # logger.tagged('BCX', "Jason") { |tagged_logger| tagged_logger.info 'Stuff' } # Logs "[BCX] [Jason] Stuff" # logger.tagged('BCX') { logger.tagged('Jason') { logger.info 'Stuff' } } # Logs "[BCX] [Jason] Stuff" # # If called without a block, a new logger will be returned with applied tags: # # logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT)) # logger.tagged("BCX").info "Stuff" # Logs "[BCX] Stuff" # logger.tagged("BCX", "Jason").info "Stuff" # Logs "[BCX] [Jason] Stuff" # logger.tagged("BCX").tagged("Jason").info "Stuff" # Logs "[BCX] [Jason] Stuff" # # This is used by the default Rails.logger as configured by Railties to make # it easy to stamp log lines with subdomains, request ids, and anything else # to aid debugging of multi-user production applications. # # source://activesupport//lib/active_support/tagged_logging.rb#30 module ActiveSupport::TaggedLogging # source://activesupport//lib/active_support/tagged_logging.rb#131 def clear_tags!(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/tagged_logging.rb#144 def flush; end # source://activesupport//lib/active_support/tagged_logging.rb#131 def pop_tags(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/tagged_logging.rb#131 def push_tags(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/tagged_logging.rb#133 def tagged(*tags); end class << self # source://activesupport//lib/active_support/tagged_logging.rb#117 def new(logger); end end end # source://activesupport//lib/active_support/tagged_logging.rb#31 module ActiveSupport::TaggedLogging::Formatter # This method is invoked when a log event occurs. # # source://activesupport//lib/active_support/tagged_logging.rb#33 def call(severity, timestamp, progname, msg); end # source://activesupport//lib/active_support/tagged_logging.rb#52 def clear_tags!; end # source://activesupport//lib/active_support/tagged_logging.rb#62 def current_tags; end # source://activesupport//lib/active_support/tagged_logging.rb#48 def pop_tags(count = T.unsafe(nil)); end # source://activesupport//lib/active_support/tagged_logging.rb#44 def push_tags(*tags); end # source://activesupport//lib/active_support/tagged_logging.rb#56 def tag_stack; end # source://activesupport//lib/active_support/tagged_logging.rb#37 def tagged(*tags); end # source://activesupport//lib/active_support/tagged_logging.rb#66 def tags_text; end end # source://activesupport//lib/active_support/tagged_logging.rb#109 module ActiveSupport::TaggedLogging::LocalTagStorage # Returns the value of attribute tag_stack. # # source://activesupport//lib/active_support/tagged_logging.rb#110 def tag_stack; end # Sets the attribute tag_stack # # @param value the value to set the attribute tag_stack to. # # source://activesupport//lib/active_support/tagged_logging.rb#110 def tag_stack=(_arg0); end class << self # @private # # source://activesupport//lib/active_support/tagged_logging.rb#112 def extended(base); end end end # source://activesupport//lib/active_support/tagged_logging.rb#71 class ActiveSupport::TaggedLogging::TagStack # @return [TagStack] a new instance of TagStack # # source://activesupport//lib/active_support/tagged_logging.rb#74 def initialize; end # source://activesupport//lib/active_support/tagged_logging.rb#92 def clear; end # source://activesupport//lib/active_support/tagged_logging.rb#97 def format_message(message); end # source://activesupport//lib/active_support/tagged_logging.rb#87 def pop_tags(count); end # source://activesupport//lib/active_support/tagged_logging.rb#79 def push_tags(tags); end # Returns the value of attribute tags. # # source://activesupport//lib/active_support/tagged_logging.rb#72 def tags; end end # source://activesupport//lib/active_support/test_case.rb#20 class ActiveSupport::TestCase < ::Minitest::Test include ::ActiveSupport::Testing::SetupAndTeardown include ::ActiveSupport::Testing::TaggedLogging include ::ActiveSupport::Callbacks include ::ActiveSupport::Testing::Assertions include ::ActiveSupport::Testing::ErrorReporterAssertions include ::ActiveSupport::Testing::Deprecation include ::ActiveSupport::Testing::ConstantStubbing include ::ActiveSupport::Testing::TimeHelpers include ::ActiveSupport::Testing::FileFixtures extend ::ActiveSupport::Callbacks::ClassMethods extend ::ActiveSupport::DescendantsTracker extend ::ActiveSupport::Testing::SetupAndTeardown::ClassMethods extend ::ActiveSupport::Testing::Declarative # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks; end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks?; end # source://activesupport//lib/active_support/callbacks.rb#951 def _run_setup_callbacks(&block); end # source://activesupport//lib/active_support/callbacks.rb#951 def _run_teardown_callbacks(&block); end # source://activesupport//lib/active_support/callbacks.rb#963 def _setup_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#963 def _teardown_callbacks; end # source://minitest/5.21.1/lib/minitest/assertions.rb#736 def assert_no_match(matcher, obj, msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#665 def assert_not_empty(obj, msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#676 def assert_not_equal(exp, act, msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#688 def assert_not_in_delta(exp, act, delta = T.unsafe(nil), msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#700 def assert_not_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#707 def assert_not_includes(collection, obj, msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#718 def assert_not_instance_of(cls, obj, msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#728 def assert_not_kind_of(cls, obj, msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#746 def assert_not_nil(obj, msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#781 def assert_not_operator(o1, op, o2 = T.unsafe(nil), msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#804 def assert_not_predicate(o1, op, msg = T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#813 def assert_not_respond_to(obj, meth, msg = T.unsafe(nil), include_all: T.unsafe(nil)); end # source://minitest/5.21.1/lib/minitest/assertions.rb#822 def assert_not_same(exp, act, msg = T.unsafe(nil)); end # source://activesupport//lib/active_support/testing/file_fixtures.rb#20 def file_fixture_path; end # source://activesupport//lib/active_support/testing/file_fixtures.rb#20 def file_fixture_path?; end # source://activesupport//lib/active_support/test_case.rb#298 def inspect; end # source://minitest/5.21.1/lib/minitest.rb#311 def method_name; end class << self # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks; end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks=(value); end # source://activesupport//lib/active_support/callbacks.rb#70 def __callbacks?; end # source://activesupport//lib/active_support/callbacks.rb#955 def _setup_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#959 def _setup_callbacks=(value); end # source://activesupport//lib/active_support/callbacks.rb#955 def _teardown_callbacks; end # source://activesupport//lib/active_support/callbacks.rb#959 def _teardown_callbacks=(value); end # source://activesupport//lib/active_support/testing/file_fixtures.rb#20 def file_fixture_path; end # source://activesupport//lib/active_support/testing/file_fixtures.rb#20 def file_fixture_path=(value); end # source://activesupport//lib/active_support/testing/file_fixtures.rb#20 def file_fixture_path?; end # Parallelizes the test suite. # # Takes a +workers+ argument that controls how many times the process # is forked. For each process a new database will be created suffixed # with the worker number. # # test-database-0 # test-database-1 # # If ENV["PARALLEL_WORKERS"] is set the workers argument will be ignored # and the environment variable will be used instead. This is useful for CI # environments, or other environments where you may need more workers than # you do for local testing. # # If the number of workers is set to +1+ or fewer, the tests will not be # parallelized. # # If +workers+ is set to +:number_of_processors+, the number of workers will be # set to the actual core count on the machine you are on. # # The default parallelization method is to fork processes. If you'd like to # use threads instead you can pass with: :threads to the +parallelize+ # method. Note the threaded parallelization does not create multiple # databases and will not work with system tests. # # parallelize(workers: :number_of_processors, with: :threads) # # The threaded parallelization uses minitest's parallel executor directly. # The processes parallelization uses a Ruby DRb server. # # Because parallelization presents an overhead, it is only enabled when the # number of tests to run is above the +threshold+ param. The default value is # 50, and it's configurable via +config.active_support.test_parallelization_threshold+. # # source://activesupport//lib/active_support/test_case.rb#80 def parallelize(workers: T.unsafe(nil), with: T.unsafe(nil), threshold: T.unsafe(nil)); end # Set up hook for parallel testing. This can be used if you have multiple # databases or any behavior that needs to be run after the process is forked # but before the tests run. # # Note: this feature is not available with the threaded parallelization. # # In your +test_helper.rb+ add the following: # # class ActiveSupport::TestCase # parallelize_setup do # # create databases # end # end # # source://activesupport//lib/active_support/test_case.rb#100 def parallelize_setup(&block); end # Clean up hook for parallel testing. This can be used to drop databases # if your app uses multiple write/read databases or other clean up before # the tests finish. This runs before the forked process is closed. # # Note: this feature is not available with the threaded parallelization. # # In your +test_helper.rb+ add the following: # # class ActiveSupport::TestCase # parallelize_teardown do # # drop databases # end # end # # source://activesupport//lib/active_support/test_case.rb#117 def parallelize_teardown(&block); end # Returns the order in which test cases are run. # # ActiveSupport::TestCase.test_order # => :random # # Possible values are +:random+, +:parallel+, +:alpha+, +:sorted+. # Defaults to +:random+. # # source://activesupport//lib/active_support/test_case.rb#43 def test_order; end # Sets the order in which test cases are run. # # ActiveSupport::TestCase.test_order = :random # => :random # # Valid values are: # * +:random+ (to run tests in random order) # * +:parallel+ (to run tests in parallel) # * +:sorted+ (to run tests alphabetically by method name) # * +:alpha+ (equivalent to +:sorted+) # # source://activesupport//lib/active_support/test_case.rb#33 def test_order=(new_order); end end end # source://activesupport//lib/active_support/test_case.rb#21 ActiveSupport::TestCase::Assertion = Minitest::Assertion # source://activesupport//lib/active_support/testing/tagged_logging.rb#4 module ActiveSupport::Testing; end # source://activesupport//lib/active_support/testing/assertions.rb#7 module ActiveSupport::Testing::Assertions # Assertion that the result of evaluating an expression is changed before # and after invoking the passed in block. # # assert_changes 'Status.all_good?' do # post :create, params: { status: { ok: false } } # end # # You can pass the block as a string to be evaluated in the context of # the block. A lambda can be passed for the block as well. # # assert_changes -> { Status.all_good? } do # post :create, params: { status: { ok: false } } # end # # The assertion is useful to test side effects. The passed block can be # anything that can be converted to string with #to_s. # # assert_changes :@object do # @object = 42 # end # # The keyword arguments +:from+ and +:to+ can be given to specify the # expected initial value and the expected value after the block was # executed. # # assert_changes :@object, from: nil, to: :foo do # @object = :foo # end # # An error message can be specified. # # assert_changes -> { Status.all_good? }, 'Expected the status to be bad' do # post :create, params: { status: { incident: true } } # end # # source://activesupport//lib/active_support/testing/assertions.rb#191 def assert_changes(expression, message = T.unsafe(nil), from: T.unsafe(nil), to: T.unsafe(nil), &block); end # Test numeric difference between the return value of an expression as a # result of what is evaluated in the yielded block. # # assert_difference 'Article.count' do # post :create, params: { article: {...} } # end # # An arbitrary expression is passed in and evaluated. # # assert_difference 'Article.last.comments(:reload).size' do # post :create, params: { comment: {...} } # end # # An arbitrary positive or negative difference can be specified. # The default is +1+. # # assert_difference 'Article.count', -1 do # post :delete, params: { id: ... } # end # # An array of expressions can also be passed in and evaluated. # # assert_difference [ 'Article.count', 'Post.count' ], 2 do # post :create, params: { article: {...} } # end # # A hash of expressions/numeric differences can also be passed in and evaluated. # # assert_difference ->{ Article.count } => 1, ->{ Notification.count } => 2 do # post :create, params: { article: {...} } # end # # A lambda or a list of lambdas can be passed in and evaluated: # # assert_difference ->{ Article.count }, 2 do # post :create, params: { article: {...} } # end # # assert_difference [->{ Article.count }, ->{ Post.count }], 2 do # post :create, params: { article: {...} } # end # # An error message can be specified. # # assert_difference 'Article.count', -1, 'An Article should be destroyed' do # post :delete, params: { id: ... } # end # # source://activesupport//lib/active_support/testing/assertions.rb#101 def assert_difference(expression, *args, &block); end # Assertion that the result of evaluating an expression is not changed before # and after invoking the passed in block. # # assert_no_changes 'Status.all_good?' do # post :create, params: { status: { ok: true } } # end # # Provide the optional keyword argument +:from+ to specify the expected # initial value. # # assert_no_changes -> { Status.all_good? }, from: true do # post :create, params: { status: { ok: true } } # end # # An error message can be specified. # # assert_no_changes -> { Status.all_good? }, 'Expected the status to be good' do # post :create, params: { status: { ok: false } } # end # # source://activesupport//lib/active_support/testing/assertions.rb#238 def assert_no_changes(expression, message = T.unsafe(nil), from: T.unsafe(nil), &block); end # Assertion that the numeric result of evaluating an expression is not # changed before and after invoking the passed in block. # # assert_no_difference 'Article.count' do # post :create, params: { article: invalid_attributes } # end # # A lambda can be passed in and evaluated. # # assert_no_difference -> { Article.count } do # post :create, params: { article: invalid_attributes } # end # # An error message can be specified. # # assert_no_difference 'Article.count', 'An Article should not be created' do # post :create, params: { article: invalid_attributes } # end # # An array of expressions can also be passed in and evaluated. # # assert_no_difference [ 'Article.count', -> { Post.count } ] do # post :create, params: { article: invalid_attributes } # end # # source://activesupport//lib/active_support/testing/assertions.rb#153 def assert_no_difference(expression, message = T.unsafe(nil), &block); end # Asserts that an expression is not truthy. Passes if +object+ is +nil+ or # +false+. "Truthy" means "considered true in a conditional" like if # foo. # # assert_not nil # => true # assert_not false # => true # assert_not 'foo' # => Expected "foo" to be nil or false # # An error message can be specified. # # assert_not foo, 'foo should be false' # # source://activesupport//lib/active_support/testing/assertions.rb#21 def assert_not(object, message = T.unsafe(nil)); end # Assertion that the block should not raise an exception. # # Passes if evaluated code in the yielded block raises no exception. # # assert_nothing_raised do # perform_service(param: 'no_exception') # end # # source://activesupport//lib/active_support/testing/assertions.rb#48 def assert_nothing_raised; end # Asserts that a block raises one of +exp+. This is an enhancement of the # standard Minitest assertion method with the ability to test error # messages. # # assert_raises(ArgumentError, match: /incorrect param/i) do # perform_service(param: 'exception') # end # # source://activesupport//lib/active_support/testing/assertions.rb#34 def assert_raise(*exp, match: T.unsafe(nil), &block); end # Asserts that a block raises one of +exp+. This is an enhancement of the # standard Minitest assertion method with the ability to test error # messages. # # assert_raises(ArgumentError, match: /incorrect param/i) do # perform_service(param: 'exception') # end # # source://activesupport//lib/active_support/testing/assertions.rb#34 def assert_raises(*exp, match: T.unsafe(nil), &block); end private # source://activesupport//lib/active_support/testing/assertions.rb#265 def _assert_nothing_raised_or_warn(assertion, &block); end end # source://activesupport//lib/active_support/testing/assertions.rb#8 ActiveSupport::Testing::Assertions::UNTRACKED = T.let(T.unsafe(nil), Object) # Resolves a constant from a minitest spec name. # # Given the following spec-style test: # # describe WidgetsController, :index do # describe "authenticated user" do # describe "returns widgets" do # it "has a controller that exists" do # assert_kind_of WidgetsController, @controller # end # end # end # end # # The test will have the following name: # # "WidgetsController::index::authenticated user::returns widgets" # # The constant WidgetsController can be resolved from the name. # The following code will resolve the constant: # # controller = determine_constant_from_test_name(name) do |constant| # Class === constant && constant < ::ActionController::Metal # end # # source://activesupport//lib/active_support/testing/constant_lookup.rb#32 module ActiveSupport::Testing::ConstantLookup extend ::ActiveSupport::Concern mixes_in_class_methods ::ActiveSupport::Testing::ConstantLookup::ClassMethods end # source://activesupport//lib/active_support/testing/constant_lookup.rb#35 module ActiveSupport::Testing::ConstantLookup::ClassMethods # source://activesupport//lib/active_support/testing/constant_lookup.rb#36 def determine_constant_from_test_name(test_name); end end # source://activesupport//lib/active_support/testing/constant_stubbing.rb#5 module ActiveSupport::Testing::ConstantStubbing # Changes the value of a constant for the duration of a block. Example: # # # World::List::Import::LARGE_IMPORT_THRESHOLD = 5000 # stub_const(World::List::Import, :LARGE_IMPORT_THRESHOLD, 1) do # assert_equal 1, World::List::Import::LARGE_IMPORT_THRESHOLD # end # # assert_equal 5000, World::List::Import::LARGE_IMPORT_THRESHOLD # # Using this method rather than forcing World::List::Import::LARGE_IMPORT_THRESHOLD = 5000 prevents # warnings from being thrown, and ensures that the old value is returned after the test has completed. # # Note: Stubbing a const will stub it across all threads. So if you have concurrent threads # (like separate test suites running in parallel) that all depend on the same constant, it's possible # divergent stubbing will trample on each other. # # source://activesupport//lib/active_support/testing/constant_stubbing.rb#21 def stub_const(mod, constant, new_value); end end # source://activesupport//lib/active_support/testing/declarative.rb#5 module ActiveSupport::Testing::Declarative # Helper to define a test method using a String. Under the hood, it replaces # spaces with underscores and defines the test method. # # test "verify something" do # ... # end # # source://activesupport//lib/active_support/testing/declarative.rb#13 def test(name, &block); end end # source://activesupport//lib/active_support/testing/deprecation.rb#7 module ActiveSupport::Testing::Deprecation # :call-seq: # assert_deprecated(deprecator, &block) # assert_deprecated(match, deprecator, &block) # # Asserts that a matching deprecation warning was emitted by the given deprecator during the execution of the yielded block. # # assert_deprecated(/foo/, CustomDeprecator) do # CustomDeprecator.warn "foo should no longer be used" # end # # The +match+ object may be a +Regexp+, or +String+ appearing in the message. # # assert_deprecated('foo', CustomDeprecator) do # CustomDeprecator.warn "foo should no longer be used" # end # # If the +match+ is omitted (or explicitly +nil+), any deprecation warning will match. # # assert_deprecated(CustomDeprecator) do # CustomDeprecator.warn "foo should no longer be used" # end # # source://activesupport//lib/active_support/testing/deprecation.rb#30 def assert_deprecated(match = T.unsafe(nil), deprecator = T.unsafe(nil), &block); end # Asserts that no deprecation warnings are emitted by the given deprecator during the execution of the yielded block. # # assert_not_deprecated(CustomDeprecator) do # CustomDeprecator.warn "message" # fails assertion # end # # assert_not_deprecated(ActiveSupport::Deprecation.new) do # CustomDeprecator.warn "message" # passes assertion, different deprecator # end # # source://activesupport//lib/active_support/testing/deprecation.rb#54 def assert_not_deprecated(deprecator = T.unsafe(nil), &block); end # Returns the return value of the block and an array of all the deprecation warnings emitted by the given # +deprecator+ during the execution of the yielded block. # # collect_deprecations(CustomDeprecator) do # CustomDeprecator.warn "message" # ActiveSupport::Deprecation.new.warn "other message" # :result # end # => [:result, ["message"]] # # source://activesupport//lib/active_support/testing/deprecation.rb#72 def collect_deprecations(deprecator = T.unsafe(nil)); end end # source://activesupport//lib/active_support/testing/error_reporter_assertions.rb#5 module ActiveSupport::Testing::ErrorReporterAssertions # Assertion that the block should cause at least one exception to be reported # to +Rails.error+. # # Passes if the evaluated code in the yielded block reports a matching exception. # # assert_error_reported(IOError) do # Rails.error.report(IOError.new("Oops")) # end # # To test further details about the reported exception, you can use the return # value. # # report = assert_error_reported(IOError) do # # ... # end # assert_equal "Oops", report.error.message # assert_equal "admin", report.context[:section] # assert_equal :warning, report.severity # assert_predicate report, :handled? # # source://activesupport//lib/active_support/testing/error_reporter_assertions.rb#88 def assert_error_reported(error_class = T.unsafe(nil), &block); end # Assertion that the block should not cause an exception to be reported # to +Rails.error+. # # Passes if evaluated code in the yielded block reports no exception. # # assert_no_error_reported do # perform_service(param: 'no_exception') # end # # source://activesupport//lib/active_support/testing/error_reporter_assertions.rb#62 def assert_no_error_reported(&block); end end # source://activesupport//lib/active_support/testing/error_reporter_assertions.rb#6 module ActiveSupport::Testing::ErrorReporterAssertions::ErrorCollector class << self # source://activesupport//lib/active_support/testing/error_reporter_assertions.rb#16 def record; end # source://activesupport//lib/active_support/testing/error_reporter_assertions.rb#29 def report(error, **kwargs); end private # source://activesupport//lib/active_support/testing/error_reporter_assertions.rb#38 def subscribe; end end end # source://activesupport//lib/active_support/testing/error_reporter_assertions.rb#10 class ActiveSupport::Testing::ErrorReporterAssertions::ErrorCollector::Report < ::Struct # Returns the value of attribute context # # @return [Object] the current value of context def context; end # Sets the attribute context # # @param value [Object] the value to set the attribute context to. # @return [Object] the newly set value def context=(_); end # Returns the value of attribute error # # @return [Object] the current value of error def error; end # Sets the attribute error # # @param value [Object] the value to set the attribute error to. # @return [Object] the newly set value def error=(_); end # Returns the value of attribute handled # # @return [Object] the current value of handled def handled; end # Sets the attribute handled # # @param value [Object] the value to set the attribute handled to. # @return [Object] the newly set value def handled=(_); end # Returns the value of attribute handled # # @return [Object] the current value of handled def handled?; end # Returns the value of attribute severity # # @return [Object] the current value of severity def severity; end # Sets the attribute severity # # @param value [Object] the value to set the attribute severity to. # @return [Object] the newly set value def severity=(_); end # Returns the value of attribute source # # @return [Object] the current value of source def source; end # Sets the attribute source # # @param value [Object] the value to set the attribute source to. # @return [Object] the newly set value def source=(_); end class << self def [](*_arg0); end def inspect; end def keyword_init?; end def members; end def new(*_arg0); end end end # Adds simple access to sample files called file fixtures. # File fixtures are normal files stored in # ActiveSupport::TestCase.file_fixture_path. # # File fixtures are represented as +Pathname+ objects. # This makes it easy to extract specific information: # # file_fixture("example.txt").read # get the file's content # file_fixture("example.mp3").size # get the file size # # source://activesupport//lib/active_support/testing/file_fixtures.rb#16 module ActiveSupport::Testing::FileFixtures extend ::ActiveSupport::Concern include GeneratedInstanceMethods mixes_in_class_methods GeneratedClassMethods # Returns a +Pathname+ to the fixture file named +fixture_name+. # # Raises +ArgumentError+ if +fixture_name+ can't be found. # # source://activesupport//lib/active_support/testing/file_fixtures.rb#26 def file_fixture(fixture_name); end module GeneratedClassMethods def file_fixture_path; end def file_fixture_path=(value); end def file_fixture_path?; end end module GeneratedInstanceMethods def file_fixture_path; end def file_fixture_path?; end end end # source://activesupport//lib/active_support/testing/isolation.rb#5 module ActiveSupport::Testing::Isolation include ::ActiveSupport::Testing::Isolation::Forking # source://activesupport//lib/active_support/testing/isolation.rb#18 def run; end class << self # @return [Boolean] # # source://activesupport//lib/active_support/testing/isolation.rb#14 def forking_env?; end # source://activesupport//lib/active_support/testing/isolation.rb#8 def included(klass); end end end # source://activesupport//lib/active_support/testing/isolation.rb#26 module ActiveSupport::Testing::Isolation::Forking # source://activesupport//lib/active_support/testing/isolation.rb#27 def run_in_isolation(&blk); end end # source://activesupport//lib/active_support/testing/isolation.rb#64 module ActiveSupport::Testing::Isolation::Subprocess # Complicated H4X to get this working in Windows / JRuby with # no forking. # # source://activesupport//lib/active_support/testing/isolation.rb#69 def run_in_isolation(&blk); end end # source://activesupport//lib/active_support/testing/isolation.rb#65 ActiveSupport::Testing::Isolation::Subprocess::ORIG_ARGV = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/testing/parallelization/server.rb#8 class ActiveSupport::Testing::Parallelization # @return [Parallelization] a new instance of Parallelization # # source://activesupport//lib/active_support/testing/parallelization.rb#28 def initialize(worker_count); end # source://activesupport//lib/active_support/testing/parallelization.rb#41 def <<(work); end # source://activesupport//lib/active_support/testing/parallelization.rb#18 def after_fork_hooks; end # source://activesupport//lib/active_support/testing/parallelization.rb#26 def run_cleanup_hooks; end # source://activesupport//lib/active_support/testing/parallelization.rb#49 def shutdown; end # source://activesupport//lib/active_support/testing/parallelization.rb#45 def size; end # source://activesupport//lib/active_support/testing/parallelization.rb#35 def start; end class << self # source://activesupport//lib/active_support/testing/parallelization.rb#14 def after_fork_hook(&blk); end # source://activesupport//lib/active_support/testing/parallelization.rb#18 def after_fork_hooks; end # source://activesupport//lib/active_support/testing/parallelization.rb#22 def run_cleanup_hook(&blk); end # source://activesupport//lib/active_support/testing/parallelization.rb#26 def run_cleanup_hooks; end end end # source://activesupport//lib/active_support/testing/parallelization/server.rb#9 class ActiveSupport::Testing::Parallelization::Server include ::DRb::DRbUndumped # @return [Server] a new instance of Server # # source://activesupport//lib/active_support/testing/parallelization/server.rb#12 def initialize; end # source://activesupport//lib/active_support/testing/parallelization/server.rb#28 def <<(o); end # @return [Boolean] # # source://activesupport//lib/active_support/testing/parallelization/server.rb#48 def active_workers?; end # source://activesupport//lib/active_support/testing/parallelization/server.rb#52 def interrupt; end # source://activesupport//lib/active_support/testing/parallelization/server.rb#33 def pop; end # @raise [DRb::DRbConnError] # # source://activesupport//lib/active_support/testing/parallelization/server.rb#18 def record(reporter, result); end # source://activesupport//lib/active_support/testing/parallelization/server.rb#56 def shutdown; end # source://activesupport//lib/active_support/testing/parallelization/server.rb#40 def start_worker(worker_id); end # source://activesupport//lib/active_support/testing/parallelization/server.rb#44 def stop_worker(worker_id); end end # source://activesupport//lib/active_support/testing/parallelization/worker.rb#6 class ActiveSupport::Testing::Parallelization::Worker # @return [Worker] a new instance of Worker # # source://activesupport//lib/active_support/testing/parallelization/worker.rb#7 def initialize(number, url); end # source://activesupport//lib/active_support/testing/parallelization/worker.rb#80 def after_fork; end # source://activesupport//lib/active_support/testing/parallelization/worker.rb#42 def perform_job(job); end # source://activesupport//lib/active_support/testing/parallelization/worker.rb#86 def run_cleanup; end # source://activesupport//lib/active_support/testing/parallelization/worker.rb#56 def safe_record(reporter, result); end # source://activesupport//lib/active_support/testing/parallelization/worker.rb#14 def start; end # source://activesupport//lib/active_support/testing/parallelization/worker.rb#36 def work_from_queue; end private # source://activesupport//lib/active_support/testing/parallelization/worker.rb#93 def add_setup_exception(result); end # source://activesupport//lib/active_support/testing/parallelization/worker.rb#97 def set_process_title(status); end end # source://activesupport//lib/active_support/testing/parallelize_executor.rb#5 class ActiveSupport::Testing::ParallelizeExecutor # @return [ParallelizeExecutor] a new instance of ParallelizeExecutor # # source://activesupport//lib/active_support/testing/parallelize_executor.rb#8 def initialize(size:, with:, threshold: T.unsafe(nil)); end # source://activesupport//lib/active_support/testing/parallelize_executor.rb#22 def <<(work); end # Returns the value of attribute parallelize_with. # # source://activesupport//lib/active_support/testing/parallelize_executor.rb#6 def parallelize_with; end # source://activesupport//lib/active_support/testing/parallelize_executor.rb#26 def shutdown; end # Returns the value of attribute size. # # source://activesupport//lib/active_support/testing/parallelize_executor.rb#6 def size; end # source://activesupport//lib/active_support/testing/parallelize_executor.rb#15 def start; end # Returns the value of attribute threshold. # # source://activesupport//lib/active_support/testing/parallelize_executor.rb#6 def threshold; end private # source://activesupport//lib/active_support/testing/parallelize_executor.rb#35 def build_parallel_executor; end # source://activesupport//lib/active_support/testing/parallelize_executor.rb#72 def execution_info; end # @return [Boolean] # # source://activesupport//lib/active_support/testing/parallelize_executor.rb#60 def many_workers?; end # source://activesupport//lib/active_support/testing/parallelize_executor.rb#31 def parallel_executor; end # source://activesupport//lib/active_support/testing/parallelize_executor.rb#47 def parallelize; end # @return [Boolean] # # source://activesupport//lib/active_support/testing/parallelize_executor.rb#52 def parallelized?; end # @return [Boolean] # # source://activesupport//lib/active_support/testing/parallelize_executor.rb#56 def should_parallelize?; end # source://activesupport//lib/active_support/testing/parallelize_executor.rb#68 def show_execution_info; end # source://activesupport//lib/active_support/testing/parallelize_executor.rb#64 def tests_count; end end # Adds support for +setup+ and +teardown+ callbacks. # These callbacks serve as a replacement to overwriting the # #setup and #teardown methods of your TestCase. # # class ExampleTest < ActiveSupport::TestCase # setup do # # ... # end # # teardown do # # ... # end # end # # source://activesupport//lib/active_support/testing/setup_and_teardown.rb#20 module ActiveSupport::Testing::SetupAndTeardown # source://activesupport//lib/active_support/testing/setup_and_teardown.rb#44 def after_teardown; end # source://activesupport//lib/active_support/testing/setup_and_teardown.rb#39 def before_setup; end class << self # source://activesupport//lib/active_support/testing/setup_and_teardown.rb#21 def prepended(klass); end end end # source://activesupport//lib/active_support/testing/setup_and_teardown.rb#27 module ActiveSupport::Testing::SetupAndTeardown::ClassMethods # Add a callback, which runs before TestCase#setup. # # source://activesupport//lib/active_support/testing/setup_and_teardown.rb#29 def setup(*args, &block); end # Add a callback, which runs after TestCase#teardown. # # source://activesupport//lib/active_support/testing/setup_and_teardown.rb#34 def teardown(*args, &block); end end # Manages stubs for TimeHelpers # # source://activesupport//lib/active_support/testing/time_helpers.rb#9 class ActiveSupport::Testing::SimpleStubs # @return [SimpleStubs] a new instance of SimpleStubs # # source://activesupport//lib/active_support/testing/time_helpers.rb#12 def initialize; end # Stubs object.method_name with the given block # If the method is already stubbed, remove that stub # so that removing this stub will restore the original implementation. # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # target = Time.zone.local(2004, 11, 24, 1, 4, 44) # simple_stubs.stub_object(Time, :now) { at(target.to_i) } # Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00 # # source://activesupport//lib/active_support/testing/time_helpers.rb#23 def stub_object(object, method_name, &block); end # Returns true if any stubs are set, false if there are none # # @return [Boolean] # # source://activesupport//lib/active_support/testing/time_helpers.rb#53 def stubbed?; end # Returns the Stub for object#method_name # (nil if it is not stubbed) # # source://activesupport//lib/active_support/testing/time_helpers.rb#48 def stubbing(object, method_name); end # Remove all object-method stubs held by this instance # # source://activesupport//lib/active_support/testing/time_helpers.rb#37 def unstub_all!; end private # Restores the original object.method described by the Stub # # source://activesupport//lib/active_support/testing/time_helpers.rb#59 def unstub_object(stub); end end # source://activesupport//lib/active_support/testing/time_helpers.rb#10 class ActiveSupport::Testing::SimpleStubs::Stub < ::Struct # Returns the value of attribute method_name # # @return [Object] the current value of method_name def method_name; end # Sets the attribute method_name # # @param value [Object] the value to set the attribute method_name to. # @return [Object] the newly set value def method_name=(_); end # Returns the value of attribute object # # @return [Object] the current value of object def object; end # Sets the attribute object # # @param value [Object] the value to set the attribute object to. # @return [Object] the newly set value def object=(_); end # Returns the value of attribute original_method # # @return [Object] the current value of original_method def original_method; end # Sets the attribute original_method # # @param value [Object] the value to set the attribute original_method to. # @return [Object] the newly set value def original_method=(_); end class << self def [](*_arg0); end def inspect; end def keyword_init?; end def members; end def new(*_arg0); end end end # Logs a "PostsControllerTest: test name" heading before each test to # make test.log easier to search and follow along with. # # source://activesupport//lib/active_support/testing/tagged_logging.rb#7 module ActiveSupport::Testing::TaggedLogging # source://activesupport//lib/active_support/testing/tagged_logging.rb#10 def before_setup; end # source://activesupport//lib/active_support/testing/tagged_logging.rb#8 def tagged_logger=(_arg0); end private # source://activesupport//lib/active_support/testing/tagged_logging.rb#22 def tagged_logger; end end # Contains helpers that help you test passage of time. # # source://activesupport//lib/active_support/testing/time_helpers.rb#68 module ActiveSupport::Testing::TimeHelpers # source://activesupport//lib/active_support/testing/time_helpers.rb#69 def after_teardown; end # Calls +travel_to+ with +Time.now+. Forwards optional with_usec argument. # # Time.current # => Sun, 09 Jul 2017 15:34:49 EST -05:00 # freeze_time # sleep(1) # Time.current # => Sun, 09 Jul 2017 15:34:49 EST -05:00 # # This method also accepts a block, which will return the current time back to its original # state at the end of the block: # # Time.current # => Sun, 09 Jul 2017 15:34:49 EST -05:00 # freeze_time do # sleep(1) # User.create.created_at # => Sun, 09 Jul 2017 15:34:49 EST -05:00 # end # Time.current # => Sun, 09 Jul 2017 15:34:50 EST -05:00 # # source://activesupport//lib/active_support/testing/time_helpers.rb#256 def freeze_time(with_usec: T.unsafe(nil), &block); end # Changes current time to the time in the future or in the past by a given time difference by # stubbing +Time.now+, +Date.today+, and +DateTime.now+. The stubs are automatically removed # at the end of the test. # # Note that the usec for the resulting time will be set to 0 to prevent rounding # errors with external services, like MySQL (which will round instead of floor, # leading to off-by-one-second errors), unless the with_usec argument # is set to true. # # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # travel 1.day # Time.current # => Sun, 10 Nov 2013 15:34:49 EST -05:00 # Date.current # => Sun, 10 Nov 2013 # DateTime.current # => Sun, 10 Nov 2013 15:34:49 -0500 # # This method also accepts a block, which will return the current time back to its original # state at the end of the block: # # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # travel 1.day do # User.create.created_at # => Sun, 10 Nov 2013 15:34:49 EST -05:00 # end # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # # source://activesupport//lib/active_support/testing/time_helpers.rb#97 def travel(duration, with_usec: T.unsafe(nil), &block); end # Returns the current time back to its original state, by removing the stubs added by # +travel+, +travel_to+, and +freeze_time+. # # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # # travel_to Time.zone.local(2004, 11, 24, 1, 4, 44) # Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00 # # travel_back # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # # This method also accepts a block, which brings the stubs back at the end of the block: # # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # # travel_to Time.zone.local(2004, 11, 24, 1, 4, 44) # Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00 # # travel_back do # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # end # # Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00 # # source://activesupport//lib/active_support/testing/time_helpers.rb#230 def travel_back; end # Changes current time to the given time by stubbing +Time.now+, +Time.new+, # +Date.today+, and +DateTime.now+ to return the time or date passed into this method. # The stubs are automatically removed at the end of the test. # # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # travel_to Time.zone.local(2004, 11, 24, 1, 4, 44) # Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00 # Date.current # => Wed, 24 Nov 2004 # DateTime.current # => Wed, 24 Nov 2004 01:04:44 -0500 # # Dates are taken as their timestamp at the beginning of the day in the # application time zone. Time.current returns said timestamp, # and Time.now its equivalent in the system time zone. Similarly, # Date.current returns a date equal to the argument, and # Date.today the date according to Time.now, which may # be different. (Note that you rarely want to deal with Time.now, # or Date.today, in order to honor the application time zone # please always use Time.current and Date.current.) # # Note that the usec for the time passed will be set to 0 to prevent rounding # errors with external services, like MySQL (which will round instead of floor, # leading to off-by-one-second errors), unless the with_usec argument # is set to true. # # This method also accepts a block, which will return the current time back to its original # state at the end of the block: # # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # travel_to Time.zone.local(2004, 11, 24, 1, 4, 44) do # Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00 # end # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # # source://activesupport//lib/active_support/testing/time_helpers.rb#133 def travel_to(date_or_time, with_usec: T.unsafe(nil)); end # Returns the current time back to its original state, by removing the stubs added by # +travel+, +travel_to+, and +freeze_time+. # # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # # travel_to Time.zone.local(2004, 11, 24, 1, 4, 44) # Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00 # # travel_back # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # # This method also accepts a block, which brings the stubs back at the end of the block: # # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # # travel_to Time.zone.local(2004, 11, 24, 1, 4, 44) # Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00 # # travel_back do # Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00 # end # # Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00 # # source://activesupport//lib/active_support/testing/time_helpers.rb#230 def unfreeze_time; end private # Returns the value of attribute in_block. # # source://activesupport//lib/active_support/testing/time_helpers.rb#265 def in_block; end # Sets the attribute in_block # # @param value the value to set the attribute in_block to. # # source://activesupport//lib/active_support/testing/time_helpers.rb#265 def in_block=(_arg0); end # source://activesupport//lib/active_support/testing/time_helpers.rb#261 def simple_stubs; end end # = Active Support \Time With Zone # # A Time-like class that can represent a time in any time zone. Necessary # because standard Ruby Time instances are limited to UTC and the # system's ENV['TZ'] zone. # # You shouldn't ever need to create a TimeWithZone instance directly via +new+. # Instead use methods +local+, +parse+, +at+, and +now+ on TimeZone instances, # and +in_time_zone+ on Time and DateTime instances. # # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # Time.zone.local(2007, 2, 10, 15, 30, 45) # => Sat, 10 Feb 2007 15:30:45.000000000 EST -05:00 # Time.zone.parse('2007-02-10 15:30:45') # => Sat, 10 Feb 2007 15:30:45.000000000 EST -05:00 # Time.zone.at(1171139445) # => Sat, 10 Feb 2007 15:30:45.000000000 EST -05:00 # Time.zone.now # => Sun, 18 May 2008 13:07:55.754107581 EDT -04:00 # Time.utc(2007, 2, 10, 20, 30, 45).in_time_zone # => Sat, 10 Feb 2007 15:30:45.000000000 EST -05:00 # # See Time and TimeZone for further documentation of these methods. # # TimeWithZone instances implement the same API as Ruby Time instances, so # that Time and TimeWithZone instances are interchangeable. # # t = Time.zone.now # => Sun, 18 May 2008 13:27:25.031505668 EDT -04:00 # t.hour # => 13 # t.dst? # => true # t.utc_offset # => -14400 # t.zone # => "EDT" # t.to_fs(:rfc822) # => "Sun, 18 May 2008 13:27:25 -0400" # t + 1.day # => Mon, 19 May 2008 13:27:25.031505668 EDT -04:00 # t.beginning_of_year # => Tue, 01 Jan 2008 00:00:00.000000000 EST -05:00 # t > Time.utc(1999) # => true # t.is_a?(Time) # => true # t.is_a?(ActiveSupport::TimeWithZone) # => true # # source://activesupport//lib/active_support/time_with_zone.rb#44 class ActiveSupport::TimeWithZone include ::DateAndTime::Compatibility include ::Comparable # @return [TimeWithZone] a new instance of TimeWithZone # # source://activesupport//lib/active_support/time_with_zone.rb#51 def initialize(utc_time, time_zone, local_time = T.unsafe(nil), period = T.unsafe(nil)); end # Adds an interval of time to the current object's time and returns that # value as a new TimeWithZone object. # # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # now = Time.zone.now # => Sun, 02 Nov 2014 01:26:28.725182881 EDT -04:00 # now + 1000 # => Sun, 02 Nov 2014 01:43:08.725182881 EDT -04:00 # # If we're adding a Duration of variable length (i.e., years, months, days), # move forward from #time, otherwise move forward from #utc, for accuracy # when moving across DST boundaries. # # For instance, a time + 24.hours will advance exactly 24 hours, while a # time + 1.day will advance 23-25 hours, depending on the day. # # now + 24.hours # => Mon, 03 Nov 2014 00:26:28.725182881 EST -05:00 # now + 1.day # => Mon, 03 Nov 2014 01:26:28.725182881 EST -05:00 # # source://activesupport//lib/active_support/time_with_zone.rb#299 def +(other); end # Subtracts an interval of time and returns a new TimeWithZone object unless # the other value +acts_like?+ time. In which case, it will subtract the # other time and return the difference in seconds as a Float. # # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # now = Time.zone.now # => Mon, 03 Nov 2014 00:26:28.725182881 EST -05:00 # now - 1000 # => Mon, 03 Nov 2014 00:09:48.725182881 EST -05:00 # # If subtracting a Duration of variable length (i.e., years, months, days), # move backward from #time, otherwise move backward from #utc, for accuracy # when moving across DST boundaries. # # For instance, a time - 24.hours will go subtract exactly 24 hours, while a # time - 1.day will subtract 23-25 hours, depending on the day. # # now - 24.hours # => Sun, 02 Nov 2014 01:26:28.725182881 EDT -04:00 # now - 1.day # => Sun, 02 Nov 2014 00:26:28.725182881 EDT -04:00 # # If both the TimeWithZone object and the other value act like Time, a Float # will be returned. # # Time.zone.now - 1.day.ago # => 86399.999967 # # source://activesupport//lib/active_support/time_with_zone.rb#333 def -(other); end # Use the time in UTC for comparisons. # # source://activesupport//lib/active_support/time_with_zone.rb#232 def <=>(other); end # So that +self+ acts_like?(:time). # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#494 def acts_like_time?; end # Uses Date to provide precise Time calculations for years, months, and days # according to the proleptic Gregorian calendar. The result is returned as a # new TimeWithZone object. # # The +options+ parameter takes a hash with any of these keys: # :years, :months, :weeks, :days, # :hours, :minutes, :seconds. # # If advancing by a value of variable length (i.e., years, weeks, months, # days), move forward from #time, otherwise move forward from #utc, for # accuracy when moving across DST boundaries. # # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # now = Time.zone.now # => Sun, 02 Nov 2014 01:26:28.558049687 EDT -04:00 # now.advance(seconds: 1) # => Sun, 02 Nov 2014 01:26:29.558049687 EDT -04:00 # now.advance(minutes: 1) # => Sun, 02 Nov 2014 01:27:28.558049687 EDT -04:00 # now.advance(hours: 1) # => Sun, 02 Nov 2014 01:26:28.558049687 EST -05:00 # now.advance(days: 1) # => Mon, 03 Nov 2014 01:26:28.558049687 EST -05:00 # now.advance(weeks: 1) # => Sun, 09 Nov 2014 01:26:28.558049687 EST -05:00 # now.advance(months: 1) # => Tue, 02 Dec 2014 01:26:28.558049687 EST -05:00 # now.advance(years: 1) # => Mon, 02 Nov 2015 01:26:28.558049687 EST -05:00 # # source://activesupport//lib/active_support/time_with_zone.rb#422 def advance(options); end def after?(_arg0); end # Subtracts an interval of time from the current object's time and returns # the result as a new TimeWithZone object. # # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # now = Time.zone.now # => Mon, 03 Nov 2014 00:26:28.725182881 EST -05:00 # now.ago(1000) # => Mon, 03 Nov 2014 00:09:48.725182881 EST -05:00 # # If we're subtracting a Duration of variable length (i.e., years, months, # days), move backward from #time, otherwise move backward from #utc, for # accuracy when moving across DST boundaries. # # For instance, time.ago(24.hours) will move back exactly 24 hours, # while time.ago(1.day) will move back 23-25 hours, depending on # the day. # # now.ago(24.hours) # => Sun, 02 Nov 2014 01:26:28.725182881 EDT -04:00 # now.ago(1.day) # => Sun, 02 Nov 2014 00:26:28.725182881 EDT -04:00 # # source://activesupport//lib/active_support/time_with_zone.rb#361 def ago(other); end # Coerces time to a string for JSON encoding. The default format is ISO 8601. # You can get %Y/%m/%d %H:%M:%S +offset style by setting # ActiveSupport::JSON::Encoding.use_standard_json_time_format # to +false+. # # # With ActiveSupport::JSON::Encoding.use_standard_json_time_format = true # Time.utc(2005,2,1,15,15,10).in_time_zone("Hawaii").to_json # # => "2005-02-01T05:15:10.000-10:00" # # # With ActiveSupport::JSON::Encoding.use_standard_json_time_format = false # Time.utc(2005,2,1,15,15,10).in_time_zone("Hawaii").to_json # # => "2005/02/01 05:15:10 -1000" # # source://activesupport//lib/active_support/time_with_zone.rb#166 def as_json(options = T.unsafe(nil)); end def before?(_arg0); end # Returns true if the current object's time is within the specified # +min+ and +max+ time. # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#240 def between?(min, max); end # An instance of ActiveSupport::TimeWithZone is never blank # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#505 def blank?; end # Returns a new +ActiveSupport::TimeWithZone+ where one or more of the elements have # been changed according to the +options+ parameter. The time options (:hour, # :min, :sec, :usec, :nsec) reset cascadingly, # so if only the hour is passed, then minute, sec, usec, and nsec is set to 0. If the # hour and minute is passed, then sec, usec, and nsec is set to 0. The +options+ # parameter takes a hash with any of these keys: :year, :month, # :day, :hour, :min, :sec, :usec, # :nsec, :offset, :zone. Pass either :usec # or :nsec, not both. Similarly, pass either :zone or # :offset, not both. # # t = Time.zone.now # => Fri, 14 Apr 2017 11:45:15.116992711 EST -05:00 # t.change(year: 2020) # => Tue, 14 Apr 2020 11:45:15.116992711 EST -05:00 # t.change(hour: 12) # => Fri, 14 Apr 2017 12:00:00.116992711 EST -05:00 # t.change(min: 30) # => Fri, 14 Apr 2017 11:30:00.116992711 EST -05:00 # t.change(offset: "-10:00") # => Fri, 14 Apr 2017 11:45:15.116992711 HST -10:00 # t.change(zone: "Hawaii") # => Fri, 14 Apr 2017 11:45:15.116992711 HST -10:00 # # source://activesupport//lib/active_support/time_with_zone.rb#382 def change(options); end # Returns a Time instance of the simultaneous time in the UTC timezone. # # source://activesupport//lib/active_support/time_with_zone.rb#63 def comparable_time; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def day; end # Returns true if the current time is within Daylight Savings Time for the # specified time zone. # # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # Time.zone.parse("2012-5-30").dst? # => true # Time.zone.parse("2012-11-30").dst? # => false # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#94 def dst?; end # source://activesupport//lib/active_support/time_with_zone.rb#178 def encode_with(coder); end # Returns +true+ if +other+ is equal to current object. # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#275 def eql?(other); end # Returns a formatted string of the offset from UTC, or an alternative # string if the time zone is already UTC. # # Time.zone = 'Eastern Time (US & Canada)' # => "Eastern Time (US & Canada)" # Time.zone.now.formatted_offset(true) # => "-05:00" # Time.zone.now.formatted_offset(false) # => "-0500" # Time.zone = 'UTC' # => "UTC" # Time.zone.now.formatted_offset(true, "0") # => "0" # # source://activesupport//lib/active_support/time_with_zone.rb#125 def formatted_offset(colon = T.unsafe(nil), alternate_utc_string = T.unsafe(nil)); end # source://activesupport//lib/active_support/time_with_zone.rb#509 def freeze; end # Returns true if the current object's time is in the future. # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#270 def future?; end # Returns a Time instance of the simultaneous time in the UTC timezone. # # source://activesupport//lib/active_support/time_with_zone.rb#63 def getgm; end # Returns a Time instance of the simultaneous time in the system timezone. # # source://activesupport//lib/active_support/time_with_zone.rb#83 def getlocal(utc_offset = T.unsafe(nil)); end # Returns a Time instance of the simultaneous time in the UTC timezone. # # source://activesupport//lib/active_support/time_with_zone.rb#63 def getutc; end # Returns true if the current time zone is set to UTC. # # Time.zone = 'UTC' # => 'UTC' # Time.zone.now.utc? # => true # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # Time.zone.now.utc? # => false # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#105 def gmt?; end # Returns the offset from current time to UTC time in seconds. # # source://activesupport//lib/active_support/time_with_zone.rb#111 def gmt_offset; end # Returns a Time instance of the simultaneous time in the UTC timezone. # # source://activesupport//lib/active_support/time_with_zone.rb#63 def gmtime; end # Returns the offset from current time to UTC time in seconds. # # source://activesupport//lib/active_support/time_with_zone.rb#111 def gmtoff; end # source://activesupport//lib/active_support/time_with_zone.rb#279 def hash; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def hour; end # Returns a string of the object's date and time in the format used by # HTTP requests. # # Time.zone.now.httpdate # => "Tue, 01 Jan 2013 04:39:43 GMT" # # source://activesupport//lib/active_support/time_with_zone.rb#186 def httpdate; end # Adds an interval of time to the current object's time and returns that # value as a new TimeWithZone object. # # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # now = Time.zone.now # => Sun, 02 Nov 2014 01:26:28.725182881 EDT -04:00 # now + 1000 # => Sun, 02 Nov 2014 01:43:08.725182881 EDT -04:00 # # If we're adding a Duration of variable length (i.e., years, months, days), # move forward from #time, otherwise move forward from #utc, for accuracy # when moving across DST boundaries. # # For instance, a time + 24.hours will advance exactly 24 hours, while a # time + 1.day will advance 23-25 hours, depending on the day. # # now + 24.hours # => Mon, 03 Nov 2014 00:26:28.725182881 EST -05:00 # now + 1.day # => Mon, 03 Nov 2014 01:26:28.725182881 EST -05:00 # # source://activesupport//lib/active_support/time_with_zone.rb#299 def in(other); end # Returns the simultaneous time in Time.zone, or the specified zone. # # source://activesupport//lib/active_support/time_with_zone.rb#77 def in_time_zone(new_zone = T.unsafe(nil)); end # source://activesupport//lib/active_support/time_with_zone.rb#174 def init_with(coder); end # Returns a string of the object's date, time, zone, and offset from UTC. # # Time.zone.now.inspect # => "Thu, 04 Dec 2014 11:00:25.624541392 EST -05:00" # # source://activesupport//lib/active_support/time_with_zone.rb#140 def inspect; end # Say we're a Time to thwart type checking. # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#499 def is_a?(klass); end # Returns true if the current time is within Daylight Savings Time for the # specified time zone. # # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # Time.zone.parse("2012-5-30").dst? # => true # Time.zone.parse("2012-11-30").dst? # => false # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#94 def isdst; end # Returns a string of the object's date and time in the ISO 8601 standard # format. # # Time.zone.now.xmlschema # => "2014-12-04T11:02:37-05:00" # # source://activesupport//lib/active_support/time_with_zone.rb#148 def iso8601(fraction_digits = T.unsafe(nil)); end # Say we're a Time to thwart type checking. # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#499 def kind_of?(klass); end # Returns a Time instance of the simultaneous time in the system timezone. # # source://activesupport//lib/active_support/time_with_zone.rb#83 def localtime(utc_offset = T.unsafe(nil)); end # source://activesupport//lib/active_support/time_with_zone.rb#515 def marshal_dump; end # source://activesupport//lib/active_support/time_with_zone.rb#519 def marshal_load(variables); end # source://activesupport//lib/active_support/time_with_zone.rb#434 def mday; end # Send the missing method to +time+ instance, and wrap result in a new # TimeWithZone with the existing +time_zone+. # # source://activesupport//lib/active_support/time_with_zone.rb#540 def method_missing(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/time_with_zone.rb#434 def min; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def mon; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def month; end # Returns true if the current object's time falls within # the next day (tomorrow). # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#257 def next_day?; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def nsec; end # Returns true if the current object's time is in the past. # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#245 def past?; end # Returns the underlying +TZInfo::TimezonePeriod+. # # source://activesupport//lib/active_support/time_with_zone.rb#72 def period; end # Returns true if the current object's time falls within # the previous day (yesterday). # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#264 def prev_day?; end # respond_to_missing? is not called in some cases, such as when type conversion is # performed with Kernel#String # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#525 def respond_to?(sym, include_priv = T.unsafe(nil)); end # Returns a string of the object's date and time in the RFC 2822 standard # format. # # Time.zone.now.rfc2822 # => "Tue, 01 Jan 2013 04:51:39 +0000" # # source://activesupport//lib/active_support/time_with_zone.rb#194 def rfc2822; end # Returns a string of the object's date and time in the ISO 8601 standard # format. # # Time.zone.now.xmlschema # => "2014-12-04T11:02:37-05:00" # # source://activesupport//lib/active_support/time_with_zone.rb#148 def rfc3339(fraction_digits = T.unsafe(nil)); end # Returns a string of the object's date and time in the RFC 2822 standard # format. # # Time.zone.now.rfc2822 # => "Tue, 01 Jan 2013 04:51:39 +0000" # # source://activesupport//lib/active_support/time_with_zone.rb#194 def rfc822; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def sec; end # Adds an interval of time to the current object's time and returns that # value as a new TimeWithZone object. # # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # now = Time.zone.now # => Sun, 02 Nov 2014 01:26:28.725182881 EDT -04:00 # now + 1000 # => Sun, 02 Nov 2014 01:43:08.725182881 EDT -04:00 # # If we're adding a Duration of variable length (i.e., years, months, days), # move forward from #time, otherwise move forward from #utc, for accuracy # when moving across DST boundaries. # # For instance, a time + 24.hours will advance exactly 24 hours, while a # time + 1.day will advance 23-25 hours, depending on the day. # # now + 24.hours # => Mon, 03 Nov 2014 00:26:28.725182881 EST -05:00 # now + 1.day # => Mon, 03 Nov 2014 01:26:28.725182881 EST -05:00 # # source://activesupport//lib/active_support/time_with_zone.rb#299 def since(other); end # Replaces %Z directive with +zone before passing to Time#strftime, # so that zone information is correct. # # source://activesupport//lib/active_support/time_with_zone.rb#226 def strftime(format); end # Returns a Time instance that represents the time in +time_zone+. # # source://activesupport//lib/active_support/time_with_zone.rb#58 def time; end # Returns the value of attribute time_zone. # # source://activesupport//lib/active_support/time_with_zone.rb#49 def time_zone; end # Returns Array of parts of Time in sequence of # [seconds, minutes, hours, day, month, year, weekday, yearday, dst?, zone]. # # now = Time.zone.now # => Tue, 18 Aug 2015 02:29:27.485278555 UTC +00:00 # now.to_a # => [27, 29, 2, 18, 8, 2015, 2, 230, false, "UTC"] # # source://activesupport//lib/active_support/time_with_zone.rb#445 def to_a; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def to_date; end # Returns an instance of DateTime with the timezone's UTC offset # # Time.zone.now.to_datetime # => Tue, 18 Aug 2015 02:32:20 +0000 # Time.current.in_time_zone('Hawaii').to_datetime # => Mon, 17 Aug 2015 16:32:20 -1000 # # source://activesupport//lib/active_support/time_with_zone.rb#478 def to_datetime; end # Returns the object's date and time as a floating-point number of seconds # since the Epoch (January 1, 1970 00:00 UTC). # # Time.zone.now.to_f # => 1417709320.285418 # # source://activesupport//lib/active_support/time_with_zone.rb#453 def to_f; end # Returns a string of the object's date and time. # # This method is aliased to to_formatted_s. # # Accepts an optional format: # * :default - default value, mimics Ruby Time#to_s format. # * :db - format outputs time in UTC :db time. See Time#to_fs(:db). # * Any key in +Time::DATE_FORMATS+ can be used. See active_support/core_ext/time/conversions.rb. # # source://activesupport//lib/active_support/time_with_zone.rb#212 def to_formatted_s(format = T.unsafe(nil)); end # Returns a string of the object's date and time. # # This method is aliased to to_formatted_s. # # Accepts an optional format: # * :default - default value, mimics Ruby Time#to_s format. # * :db - format outputs time in UTC :db time. See Time#to_fs(:db). # * Any key in +Time::DATE_FORMATS+ can be used. See active_support/core_ext/time/conversions.rb. # # source://activesupport//lib/active_support/time_with_zone.rb#212 def to_fs(format = T.unsafe(nil)); end # Returns the object's date and time as an integer number of seconds # since the Epoch (January 1, 1970 00:00 UTC). # # Time.zone.now.to_i # => 1417709320 # # source://activesupport//lib/active_support/time_with_zone.rb#461 def to_i; end # Returns the object's date and time as a rational number of seconds # since the Epoch (January 1, 1970 00:00 UTC). # # Time.zone.now.to_r # => (708854548642709/500000) # # source://activesupport//lib/active_support/time_with_zone.rb#470 def to_r; end # Returns a string of the object's date and time. # # source://activesupport//lib/active_support/time_with_zone.rb#200 def to_s; end # Returns an instance of +Time+, either with the same UTC offset # as +self+ or in the local system timezone depending on the setting # of +ActiveSupport.to_time_preserves_timezone+. # # source://activesupport//lib/active_support/time_with_zone.rb#485 def to_time; end # Returns true if the current object's time falls within # the current day. # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#251 def today?; end # Returns true if the current object's time falls within # the next day (tomorrow). # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#257 def tomorrow?; end # Returns the object's date and time as an integer number of seconds # since the Epoch (January 1, 1970 00:00 UTC). # # Time.zone.now.to_i # => 1417709320 # # source://activesupport//lib/active_support/time_with_zone.rb#461 def tv_sec; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def usec; end # Returns a Time instance of the simultaneous time in the UTC timezone. # # source://activesupport//lib/active_support/time_with_zone.rb#63 def utc; end # Returns true if the current time zone is set to UTC. # # Time.zone = 'UTC' # => 'UTC' # Time.zone.now.utc? # => true # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' # Time.zone.now.utc? # => false # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#105 def utc?; end # Returns the offset from current time to UTC time in seconds. # # source://activesupport//lib/active_support/time_with_zone.rb#111 def utc_offset; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def wday; end # Returns a string of the object's date and time in the ISO 8601 standard # format. # # Time.zone.now.xmlschema # => "2014-12-04T11:02:37-05:00" # # source://activesupport//lib/active_support/time_with_zone.rb#148 def xmlschema(fraction_digits = T.unsafe(nil)); end # source://activesupport//lib/active_support/time_with_zone.rb#434 def yday; end # source://activesupport//lib/active_support/time_with_zone.rb#434 def year; end # Returns true if the current object's time falls within # the previous day (yesterday). # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#264 def yesterday?; end # Returns the time zone abbreviation. # # Time.zone = 'Eastern Time (US & Canada)' # => "Eastern Time (US & Canada)" # Time.zone.now.zone # => "EST" # # source://activesupport//lib/active_support/time_with_zone.rb#133 def zone; end private # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#576 def duration_of_variable_length?(obj); end # source://activesupport//lib/active_support/time_with_zone.rb#557 def get_period_and_ensure_valid_local_time(period); end # source://activesupport//lib/active_support/time_with_zone.rb#549 def incorporate_utc_offset(time, offset); end # Ensure proxy class responds to all methods that underlying time instance # responds to. # # @return [Boolean] # # source://activesupport//lib/active_support/time_with_zone.rb#533 def respond_to_missing?(sym, include_priv); end # source://activesupport//lib/active_support/time_with_zone.rb#570 def transfer_time_values_to_utc_constructor(time); end # source://activesupport//lib/active_support/time_with_zone.rb#580 def wrap_with_time_zone(time); end end # source://activesupport//lib/active_support/time_with_zone.rb#45 ActiveSupport::TimeWithZone::PRECISIONS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/time_with_zone.rb#547 ActiveSupport::TimeWithZone::SECONDS_PER_DAY = T.let(T.unsafe(nil), Integer) # = Active Support \Time Zone # # The TimeZone class serves as a wrapper around +TZInfo::Timezone+ instances. # It allows us to do the following: # # * Limit the set of zones provided by TZInfo to a meaningful subset of 134 # zones. # * Retrieve and display zones with a friendlier name # (e.g., "Eastern Time (US & Canada)" instead of "America/New_York"). # * Lazily load +TZInfo::Timezone+ instances only when they're needed. # * Create ActiveSupport::TimeWithZone instances via TimeZone's +local+, # +parse+, +at+, and +now+ methods. # # If you set config.time_zone in the \Rails Application, you can # access this TimeZone object via Time.zone: # # # application.rb: # class Application < Rails::Application # config.time_zone = 'Eastern Time (US & Canada)' # end # # Time.zone # => # # Time.zone.name # => "Eastern Time (US & Canada)" # Time.zone.now # => Sun, 18 May 2008 14:30:44 EDT -04:00 # # source://activesupport//lib/active_support/values/time_zone.rb#31 class ActiveSupport::TimeZone include ::Comparable # Create a new TimeZone object with the given name and offset. The # offset is the number of seconds that this time zone is offset from UTC # (GMT). Seconds were chosen as the offset unit because that is the unit # that Ruby uses to represent time zone offsets (see Time#utc_offset). # # @return [TimeZone] a new instance of TimeZone # # source://activesupport//lib/active_support/values/time_zone.rb#303 def initialize(name, utc_offset = T.unsafe(nil), tzinfo = T.unsafe(nil)); end # Compare this time zone to the parameter. The two are compared first on # their offsets, and then by name. # # source://activesupport//lib/active_support/values/time_zone.rb#326 def <=>(zone); end # Compare #name and TZInfo identifier to a supplied regexp, returning +true+ # if a match is found. # # source://activesupport//lib/active_support/values/time_zone.rb#335 def =~(re); end # Method for creating new ActiveSupport::TimeWithZone instance in time zone # of +self+ from number of seconds since the Unix epoch. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.utc(2000).to_f # => 946684800.0 # Time.zone.at(946684800.0) # => Fri, 31 Dec 1999 14:00:00 HST -10:00 # # A second argument can be supplied to specify sub-second precision. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.at(946684800, 123456.789).nsec # => 123456789 # # source://activesupport//lib/active_support/values/time_zone.rb#372 def at(*args); end # source://activesupport//lib/active_support/values/time_zone.rb#568 def encode_with(coder); end # Returns a formatted string of the offset from UTC, or an alternative # string if the time zone is already UTC. # # zone = ActiveSupport::TimeZone['Central Time (US & Canada)'] # zone.formatted_offset # => "-06:00" # zone.formatted_offset(false) # => "-0600" # # source://activesupport//lib/active_support/values/time_zone.rb#320 def formatted_offset(colon = T.unsafe(nil), alternate_utc_string = T.unsafe(nil)); end # source://activesupport//lib/active_support/values/time_zone.rb#564 def init_with(coder); end # Method for creating new ActiveSupport::TimeWithZone instance in time zone # of +self+ from an ISO 8601 string. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.zone.iso8601('1999-12-31T14:00:00') # => Fri, 31 Dec 1999 14:00:00 HST -10:00 # # If the time components are missing then they will be set to zero. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.zone.iso8601('1999-12-31') # => Fri, 31 Dec 1999 00:00:00 HST -10:00 # # If the string is invalid then an +ArgumentError+ will be raised unlike +parse+ # which usually returns +nil+ when given an invalid date string. # # source://activesupport//lib/active_support/values/time_zone.rb#389 def iso8601(str); end # Method for creating new ActiveSupport::TimeWithZone instance in time zone # of +self+ from given values. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.zone.local(2007, 2, 1, 15, 30, 45) # => Thu, 01 Feb 2007 15:30:45 HST -10:00 # # source://activesupport//lib/active_support/values/time_zone.rb#356 def local(*args); end # Adjust the given time to the simultaneous time in UTC. Returns a # Time.utc() instance. # # source://activesupport//lib/active_support/values/time_zone.rb#544 def local_to_utc(time, dst = T.unsafe(nil)); end # Compare #name and TZInfo identifier to a supplied regexp, returning +true+ # if a match is found. # # @return [Boolean] # # source://activesupport//lib/active_support/values/time_zone.rb#341 def match?(re); end # Returns the value of attribute name. # # source://activesupport//lib/active_support/values/time_zone.rb#296 def name; end # Returns an ActiveSupport::TimeWithZone instance representing the current # time in the time zone represented by +self+. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.zone.now # => Wed, 23 Jan 2008 20:24:27 HST -10:00 # # source://activesupport//lib/active_support/values/time_zone.rb#509 def now; end # Method for creating new ActiveSupport::TimeWithZone instance in time zone # of +self+ from parsed string. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.zone.parse('1999-12-31 14:00:00') # => Fri, 31 Dec 1999 14:00:00 HST -10:00 # # If upper components are missing from the string, they are supplied from # TimeZone#now: # # Time.zone.now # => Fri, 31 Dec 1999 14:00:00 HST -10:00 # Time.zone.parse('22:30:00') # => Fri, 31 Dec 1999 22:30:00 HST -10:00 # # However, if the date component is not provided, but any other upper # components are supplied, then the day of the month defaults to 1: # # Time.zone.parse('Mar 2000') # => Wed, 01 Mar 2000 00:00:00 HST -10:00 # # If the string is invalid then an +ArgumentError+ could be raised. # # source://activesupport//lib/active_support/values/time_zone.rb#446 def parse(str, now = T.unsafe(nil)); end # Available so that TimeZone instances respond like +TZInfo::Timezone+ # instances. # # source://activesupport//lib/active_support/values/time_zone.rb#556 def period_for_local(time, dst = T.unsafe(nil)); end # Available so that TimeZone instances respond like +TZInfo::Timezone+ # instances. # # source://activesupport//lib/active_support/values/time_zone.rb#550 def period_for_utc(time); end # source://activesupport//lib/active_support/values/time_zone.rb#560 def periods_for_local(time); end # Method for creating new ActiveSupport::TimeWithZone instance in time zone # of +self+ from an RFC 3339 string. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.zone.rfc3339('2000-01-01T00:00:00Z') # => Fri, 31 Dec 1999 14:00:00 HST -10:00 # # If the time or zone components are missing then an +ArgumentError+ will # be raised. This is much stricter than either +parse+ or +iso8601+ which # allow for missing components. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.zone.rfc3339('1999-12-31') # => ArgumentError: invalid date # # @raise [ArgumentError] # # source://activesupport//lib/active_support/values/time_zone.rb#462 def rfc3339(str); end # Parses +str+ according to +format+ and returns an ActiveSupport::TimeWithZone. # # Assumes that +str+ is a time in the time zone +self+, # unless +format+ includes an explicit time zone. # (This is the same behavior as +parse+.) # In either case, the returned TimeWithZone has the timezone of +self+. # # Time.zone = 'Hawaii' # => "Hawaii" # Time.zone.strptime('1999-12-31 14:00:00', '%Y-%m-%d %H:%M:%S') # => Fri, 31 Dec 1999 14:00:00 HST -10:00 # # If upper components are missing from the string, they are supplied from # TimeZone#now: # # Time.zone.now # => Fri, 31 Dec 1999 14:00:00 HST -10:00 # Time.zone.strptime('22:30:00', '%H:%M:%S') # => Fri, 31 Dec 1999 22:30:00 HST -10:00 # # However, if the date component is not provided, but any other upper # components are supplied, then the day of the month defaults to 1: # # Time.zone.strptime('Mar 2000', '%b %Y') # => Wed, 01 Mar 2000 00:00:00 HST -10:00 # # source://activesupport//lib/active_support/values/time_zone.rb#500 def strptime(str, format, now = T.unsafe(nil)); end # Returns a textual representation of this time zone. # # source://activesupport//lib/active_support/values/time_zone.rb#347 def to_s; end # Returns the current date in this time zone. # # source://activesupport//lib/active_support/values/time_zone.rb#514 def today; end # Returns the next date in this time zone. # # source://activesupport//lib/active_support/values/time_zone.rb#519 def tomorrow; end # Returns the value of attribute tzinfo. # # source://activesupport//lib/active_support/values/time_zone.rb#297 def tzinfo; end # Returns the offset of this time zone from UTC in seconds. # # source://activesupport//lib/active_support/values/time_zone.rb#310 def utc_offset; end # Adjust the given time to the simultaneous time in the time zone # represented by +self+. Returns a local time with the appropriate offset # -- if you want an ActiveSupport::TimeWithZone instance, use # Time#in_time_zone() instead. # # As of tzinfo 2, utc_to_local returns a Time with a non-zero utc_offset. # See the +utc_to_local_returns_utc_offset_times+ config for more info. # # source://activesupport//lib/active_support/values/time_zone.rb#535 def utc_to_local(time); end # Returns the previous date in this time zone. # # source://activesupport//lib/active_support/values/time_zone.rb#524 def yesterday; end private # @raise [ArgumentError] # # source://activesupport//lib/active_support/values/time_zone.rb#574 def parts_to_time(parts, now); end # source://activesupport//lib/active_support/values/time_zone.rb#599 def time_now; end class << self # Locate a specific time zone object. If the argument is a string, it # is interpreted to mean the name of the timezone to locate. If it is a # numeric value it is either the hour offset, or the second offset, of the # timezone to find. (The first one with that offset will be returned.) # Returns +nil+ if no such time zone is known to the system. # # source://activesupport//lib/active_support/values/time_zone.rb#232 def [](arg); end # Returns an array of all TimeZone objects. There are multiple # TimeZone objects per time zone, in many cases, to make it easier # for users to find their own time zone. # # source://activesupport//lib/active_support/values/time_zone.rb#223 def all; end # source://activesupport//lib/active_support/values/time_zone.rb#265 def clear; end # A convenience method for returning a collection of TimeZone objects # for time zones in the country specified by its ISO 3166-1 Alpha2 code. # # source://activesupport//lib/active_support/values/time_zone.rb#260 def country_zones(country_code); end def create(*_arg0); end # source://activesupport//lib/active_support/values/time_zone.rb#207 def find_tzinfo(name); end # Returns a TimeZone instance with the given name, or +nil+ if no # such TimeZone instance exists. (This exists to support the use of # this class with the +composed_of+ macro.) # # source://activesupport//lib/active_support/values/time_zone.rb#216 def new(name); end # Assumes self represents an offset from UTC in seconds (as returned from # Time#utc_offset) and turns this into an +HH:MM formatted string. # # ActiveSupport::TimeZone.seconds_to_utc_offset(-21_600) # => "-06:00" # # source://activesupport//lib/active_support/values/time_zone.rb#199 def seconds_to_utc_offset(seconds, colon = T.unsafe(nil)); end # A convenience method for returning a collection of TimeZone objects # for time zones in the USA. # # source://activesupport//lib/active_support/values/time_zone.rb#254 def us_zones; end private # source://activesupport//lib/active_support/values/time_zone.rb#273 def load_country_zones(code); end # source://activesupport//lib/active_support/values/time_zone.rb#287 def zones_map; end end end # Keys are \Rails TimeZone names, values are TZInfo identifiers. # # source://activesupport//lib/active_support/values/time_zone.rb#33 ActiveSupport::TimeZone::MAPPING = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/values/time_zone.rb#188 ActiveSupport::TimeZone::UTC_OFFSET_WITHOUT_COLON = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/values/time_zone.rb#187 ActiveSupport::TimeZone::UTC_OFFSET_WITH_COLON = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/core_ext/object/json.rb#35 module ActiveSupport::ToJsonWithActiveSupportEncoder # source://activesupport//lib/active_support/core_ext/object/json.rb#36 def to_json(options = T.unsafe(nil)); end end # source://activesupport//lib/active_support/core_ext/object/try.rb#6 module ActiveSupport::Tryable # source://activesupport//lib/active_support/core_ext/object/try.rb#7 def try(*args, **_arg1, &block); end # source://activesupport//lib/active_support/core_ext/object/try.rb#20 def try!(*args, **_arg1, &block); end end # source://activesupport//lib/active_support/gem_version.rb#9 module ActiveSupport::VERSION; end # source://activesupport//lib/active_support/gem_version.rb#10 ActiveSupport::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/gem_version.rb#11 ActiveSupport::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/gem_version.rb#13 ActiveSupport::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) # source://activesupport//lib/active_support/gem_version.rb#15 ActiveSupport::VERSION::STRING = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/gem_version.rb#12 ActiveSupport::VERSION::TINY = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#140 class ActiveSupport::XMLConverter # @return [XMLConverter] a new instance of XMLConverter # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#151 def initialize(xml, disallowed_types = T.unsafe(nil)); end # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#156 def to_h; end private # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#222 def become_array?(value); end # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#218 def become_content?(value); end # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#226 def become_empty_string?(value); end # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#232 def become_hash?(value); end # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#172 def deep_to_h(value); end # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#241 def garbage?(value); end # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#161 def normalize_keys(params); end # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#236 def nothing?(value); end # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#257 def process_array(value); end # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#248 def process_content(value); end # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#185 def process_hash(value); end end # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#149 ActiveSupport::XMLConverter::DISALLOWED_TYPES = T.let(T.unsafe(nil), Array) # Raised if the XML contains attributes with type="yaml" or # type="symbol". Read Hash#from_xml for more details. # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#143 class ActiveSupport::XMLConverter::DisallowedType < ::StandardError # @return [DisallowedType] a new instance of DisallowedType # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#144 def initialize(type); end end # = \XmlMini # # To use the much faster libxml parser: # gem 'libxml-ruby' # XmlMini.backend = 'LibXML' # # source://activesupport//lib/active_support/xml_mini.rb#17 module ActiveSupport::XmlMini extend ::ActiveSupport::XmlMini # source://activesupport//lib/active_support/xml_mini.rb#97 def backend; end # source://activesupport//lib/active_support/xml_mini.rb#101 def backend=(name); end # Returns the value of attribute depth. # # source://activesupport//lib/active_support/xml_mini.rb#92 def depth; end # Sets the attribute depth # # @param value the value to set the attribute depth to. # # source://activesupport//lib/active_support/xml_mini.rb#92 def depth=(_arg0); end # source://activesupport//lib/active_support/xml_mini.rb#95 def parse(*_arg0, **_arg1, &_arg2); end # source://activesupport//lib/active_support/xml_mini.rb#148 def rename_key(key, options = T.unsafe(nil)); end # source://activesupport//lib/active_support/xml_mini.rb#115 def to_tag(key, value, options); end # source://activesupport//lib/active_support/xml_mini.rb#107 def with_backend(name); end private # source://activesupport//lib/active_support/xml_mini.rb#159 def _dasherize(key); end # TODO: Add support for other encodings # # source://activesupport//lib/active_support/xml_mini.rb#166 def _parse_binary(bin, entity); end # source://activesupport//lib/active_support/xml_mini.rb#175 def _parse_file(file, entity); end # source://activesupport//lib/active_support/xml_mini.rb#191 def cast_backend_name_to_module(name); end # source://activesupport//lib/active_support/xml_mini.rb#183 def current_thread_backend; end # source://activesupport//lib/active_support/xml_mini.rb#187 def current_thread_backend=(name); end end # source://activesupport//lib/active_support/xml_mini.rb#34 ActiveSupport::XmlMini::DEFAULT_ENCODINGS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/xml_mini.rb#55 ActiveSupport::XmlMini::FORMATTING = T.let(T.unsafe(nil), Hash) # This module decorates files deserialized using Hash.from_xml with # the original_filename and content_type methods. # # source://activesupport//lib/active_support/xml_mini.rb#22 module ActiveSupport::XmlMini::FileLike # source://activesupport//lib/active_support/xml_mini.rb#29 def content_type; end # source://activesupport//lib/active_support/xml_mini.rb#23 def content_type=(_arg0); end # source://activesupport//lib/active_support/xml_mini.rb#25 def original_filename; end # source://activesupport//lib/active_support/xml_mini.rb#23 def original_filename=(_arg0); end end # source://activesupport//lib/active_support/xml_mini.rb#65 ActiveSupport::XmlMini::PARSING = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/xml_mini.rb#39 ActiveSupport::XmlMini::TYPE_NAMES = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/xml_mini/rexml.rb#8 module ActiveSupport::XmlMini_REXML extend ::ActiveSupport::XmlMini_REXML # Parse an XML Document string or IO into a simple hash. # # Same as XmlSimple::xml_in but doesn't shoot itself in the foot, # and uses the defaults from Active Support. # # data:: # XML Document string or IO to parse # # source://activesupport//lib/active_support/xml_mini/rexml.rb#20 def parse(data); end private # Actually converts an XML document element into a data structure. # # element:: # The document element to be collapsed. # # source://activesupport//lib/active_support/xml_mini/rexml.rb#63 def collapse(element, depth); end # Determines if a document element has text content # # element:: # XML element to be checked. # # @return [Boolean] # # source://activesupport//lib/active_support/xml_mini/rexml.rb#133 def empty_content?(element); end # Converts the attributes array of an XML element into a hash. # Returns an empty Hash if node has no attributes. # # element:: # XML element to extract attributes from. # # source://activesupport//lib/active_support/xml_mini/rexml.rb#123 def get_attributes(element); end # Adds a new key/value pair to an existing Hash. If the key to be added # already exists and the existing value associated with key is not # an Array, it will be wrapped in an Array. Then the new value is # appended to that Array. # # hash:: # Hash to add key/value pair to. # key:: # Key to be added. # value:: # Value to be associated with key. # # source://activesupport//lib/active_support/xml_mini/rexml.rb#103 def merge!(hash, key, value); end # Convert an XML element and merge into the hash # # hash:: # Hash to merge the converted element into. # element:: # XML element to merge into hash # # @raise [REXML::ParseException] # # source://activesupport//lib/active_support/xml_mini/rexml.rb#54 def merge_element!(hash, element, depth); end # Merge all the texts of an element into the hash # # hash:: # Hash to add the converted element to. # element:: # XML element whose texts are to me merged into the hash # # source://activesupport//lib/active_support/xml_mini/rexml.rb#81 def merge_texts!(hash, element); end # source://activesupport//lib/active_support/xml_mini/rexml.rb#41 def require_rexml; end end # source://activesupport//lib/active_support/xml_mini/rexml.rb#11 ActiveSupport::XmlMini_REXML::CONTENT_KEY = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/core_ext/object/blank.rb#83 class Array include ::Enumerable # source://activesupport//lib/active_support/core_ext/object/json.rb#166 def as_json(options = T.unsafe(nil)); end # Removes all blank elements from the +Array+ in place and returns self. # Uses Object#blank? for determining if an item is blank. # # a = [1, "", nil, 2, " ", [], {}, false, true] # a.compact_blank! # # => [1, 2, true] # # source://activesupport//lib/active_support/core_ext/enumerable.rb#258 def compact_blank!; end # Extracts options from a set of arguments. Removes and returns the last # element in the array if it's a hash, otherwise returns a blank hash. # # def options(*args) # args.extract_options! # end # # options(1, 2) # => {} # options(1, 2, a: :b) # => {:a=>:b} # # source://activesupport//lib/active_support/core_ext/array/extract_options.rb#24 def extract_options!; end # source://activesupport//lib/active_support/deprecation/method_wrappers.rb#46 def to_default_s(*args, **_arg1, &block); end # Extends Array#to_s to convert a collection of elements into a # comma separated id list if :db argument is given as the format. # # This method is aliased to to_formatted_s. # # Blog.all.to_fs(:db) # => "1,2,3" # Blog.none.to_fs(:db) # => "null" # [1,2].to_fs # => "[1, 2]" # # source://activesupport//lib/active_support/core_ext/array/conversions.rb#94 def to_formatted_s(format = T.unsafe(nil)); end # Extends Array#to_s to convert a collection of elements into a # comma separated id list if :db argument is given as the format. # # This method is aliased to to_formatted_s. # # Blog.all.to_fs(:db) # => "1,2,3" # Blog.none.to_fs(:db) # => "null" # [1,2].to_fs # => "[1, 2]" # # source://activesupport//lib/active_support/core_ext/array/conversions.rb#94 def to_fs(format = T.unsafe(nil)); end # Calls to_param on all its elements and joins the result with # slashes. This is used by url_for in Action Pack. # # source://activesupport//lib/active_support/core_ext/object/to_query.rb#42 def to_param; end # Converts an array into a string suitable for use as a URL query string, # using the given +key+ as the param name. # # ['Rails', 'coding'].to_query('hobbies') # => "hobbies%5B%5D=Rails&hobbies%5B%5D=coding" # # source://activesupport//lib/active_support/core_ext/object/to_query.rb#50 def to_query(key); end # Converts the array to a comma-separated sentence where the last element is # joined by the connector word. # # You can pass the following options to change the default behavior. If you # pass an option key that doesn't exist in the list below, it will raise an # ArgumentError. # # ==== Options # # * :words_connector - The sign or word used to join all but the last # element in arrays with three or more elements (default: ", "). # * :last_word_connector - The sign or word used to join the last element # in arrays with three or more elements (default: ", and "). # * :two_words_connector - The sign or word used to join the elements # in arrays with two elements (default: " and "). # * :locale - If +i18n+ is available, you can set a locale and use # the connector options defined on the 'support.array' namespace in the # corresponding dictionary file. # # ==== Examples # # [].to_sentence # => "" # ['one'].to_sentence # => "one" # ['one', 'two'].to_sentence # => "one and two" # ['one', 'two', 'three'].to_sentence # => "one, two, and three" # # ['one', 'two'].to_sentence(passing: 'invalid option') # # => ArgumentError: Unknown key: :passing. Valid keys are: :words_connector, :two_words_connector, :last_word_connector, :locale # # ['one', 'two'].to_sentence(two_words_connector: '-') # # => "one-two" # # ['one', 'two', 'three'].to_sentence(words_connector: ' or ', last_word_connector: ' or at least ') # # => "one or two or at least three" # # Using :locale option: # # # Given this locale dictionary: # # # # es: # # support: # # array: # # words_connector: " o " # # two_words_connector: " y " # # last_word_connector: " o al menos " # # ['uno', 'dos'].to_sentence(locale: :es) # # => "uno y dos" # # ['uno', 'dos', 'tres'].to_sentence(locale: :es) # # => "uno o dos o al menos tres" # # source://activesupport//lib/active_support/core_ext/array/conversions.rb#60 def to_sentence(options = T.unsafe(nil)); end # Returns a string that represents the array in XML by invoking +to_xml+ # on each element. Active Record collections delegate their representation # in XML to this method. # # All elements are expected to respond to +to_xml+, if any of them does # not then an exception is raised. # # The root node reflects the class name of the first element in plural # if all elements belong to the same type and that's not Hash: # # customer.projects.to_xml # # # # # 20000.0 # 1567 # 2008-04-09 # ... # # # 57230.0 # 1567 # 2008-04-15 # ... # # # # Otherwise the root element is "objects": # # [{ foo: 1, bar: 2}, { baz: 3}].to_xml # # # # # 2 # 1 # # # 3 # # # # If the collection is empty the root element is "nil-classes" by default: # # [].to_xml # # # # # To ensure a meaningful root element use the :root option: # # customer_with_no_projects.projects.to_xml(root: 'projects') # # # # # By default name of the node for the children of root is root.singularize. # You can change it with the :children option. # # The +options+ hash is passed downwards: # # Message.all.to_xml(skip_types: true) # # # # # 2008-03-07T09:58:18+01:00 # 1 # 1 # 2008-03-07T09:58:18+01:00 # 1 # # # # source://activesupport//lib/active_support/core_ext/array/conversions.rb#185 def to_xml(options = T.unsafe(nil)); end class << self # Wraps its argument in an array unless it is already an array (or array-like). # # Specifically: # # * If the argument is +nil+ an empty array is returned. # * Otherwise, if the argument responds to +to_ary+ it is invoked, and its result returned. # * Otherwise, returns an array with the argument as its single element. # # Array.wrap(nil) # => [] # Array.wrap([1, 2, 3]) # => [1, 2, 3] # Array.wrap(0) # => [0] # # This method is similar in purpose to Kernel#Array, but there are some differences: # # * If the argument responds to +to_ary+ the method is invoked. Kernel#Array # moves on to try +to_a+ if the returned value is +nil+, but Array.wrap returns # an array with the argument as its single element right away. # * If the returned value from +to_ary+ is neither +nil+ nor an +Array+ object, Kernel#Array # raises an exception, while Array.wrap does not, it just returns the value. # * It does not call +to_a+ on the argument, if the argument does not respond to +to_ary+ # it returns an array with the argument as its single element. # # The last point is easily explained with some enumerables: # # Array(foo: :bar) # => [[:foo, :bar]] # Array.wrap(foo: :bar) # => [{:foo=>:bar}] # # There's also a related idiom that uses the splat operator: # # [*object] # # which returns [] for +nil+, but calls to Array(object) otherwise. # # The differences with Kernel#Array explained above # apply to the rest of objects. # # source://activesupport//lib/active_support/core_ext/array/wrap.rb#39 def wrap(object); end end end # source://activesupport//lib/active_support/core_ext/object/json.rb#126 class BigDecimal < ::Numeric include ::ActiveSupport::BigDecimalWithDefaultFormat # A BigDecimal would be naturally represented as a JSON number. Most libraries, # however, parse non-integer JSON numbers directly as floats. Clients using # those libraries would get in general a wrong number and no way to recover # other than manually inspecting the string with the JSON code itself. # # That's why a JSON string is returned. The JSON literal is not numeric, but # if the other end knows by contract that the data is supposed to be a # BigDecimal, it still has the chance to post-process the string and get the # real value. # # source://activesupport//lib/active_support/core_ext/object/json.rb#136 def as_json(options = T.unsafe(nil)); end # source://activesupport//lib/active_support/core_ext/big_decimal/conversions.rb#8 def to_s(format = T.unsafe(nil)); end end # source://activesupport//lib/active_support/core_ext/class/attribute.rb#5 class Class < ::Module # Declare a class-level attribute whose value is inheritable by subclasses. # Subclasses can change their own value and it will not impact parent class. # # ==== Options # # * :instance_reader - Sets the instance reader method (defaults to true). # * :instance_writer - Sets the instance writer method (defaults to true). # * :instance_accessor - Sets both instance methods (defaults to true). # * :instance_predicate - Sets a predicate method (defaults to true). # * :default - Sets a default value for the attribute (defaults to nil). # # ==== Examples # # class Base # class_attribute :setting # end # # class Subclass < Base # end # # Base.setting = true # Subclass.setting # => true # Subclass.setting = false # Subclass.setting # => false # Base.setting # => true # # In the above case as long as Subclass does not assign a value to setting # by performing Subclass.setting = _something_, Subclass.setting # would read value assigned to parent class. Once Subclass assigns a value then # the value assigned by Subclass would be returned. # # This matches normal Ruby method inheritance: think of writing an attribute # on a subclass as overriding the reader method. However, you need to be aware # when using +class_attribute+ with mutable structures as +Array+ or +Hash+. # In such cases, you don't want to do changes in place. Instead use setters: # # Base.setting = [] # Base.setting # => [] # Subclass.setting # => [] # # # Appending in child changes both parent and child because it is the same object: # Subclass.setting << :foo # Base.setting # => [:foo] # Subclass.setting # => [:foo] # # # Use setters to not propagate changes: # Base.setting = [] # Subclass.setting += [:foo] # Base.setting # => [] # Subclass.setting # => [:foo] # # For convenience, an instance predicate method is defined as well. # To skip it, pass instance_predicate: false. # # Subclass.setting? # => false # # Instances may overwrite the class value in the same way: # # Base.setting = true # object = Base.new # object.setting # => true # object.setting = false # object.setting # => false # Base.setting # => true # # To opt out of the instance reader method, pass instance_reader: false. # # object.setting # => NoMethodError # object.setting? # => NoMethodError # # To opt out of the instance writer method, pass instance_writer: false. # # object.setting = false # => NoMethodError # # To opt out of both instance methods, pass instance_accessor: false. # # To set a default value for the attribute, pass default:, like so: # # class_attribute :settings, default: {} # # source://activesupport//lib/active_support/core_ext/class/attribute.rb#85 def class_attribute(*attrs, instance_accessor: T.unsafe(nil), instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_predicate: T.unsafe(nil), default: T.unsafe(nil)); end end # source://activesupport//lib/active_support/core_ext/date/zones.rb#6 class Date include ::Comparable include ::DateAndTime::Zones include ::DateAndTime::Calculations # source://activesupport//lib/active_support/core_ext/date/calculations.rb#90 def +(other); end # source://activesupport//lib/active_support/core_ext/date/calculations.rb#100 def -(other); end # Allow Date to be compared with Time by converting to DateTime and relying on the <=> from there. # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#152 def <=>(other); end # Provides precise Date calculations for years, months, and days. The +options+ parameter takes a hash with # any of these keys: :years, :months, :weeks, :days. # # The increments are applied in order of time units from largest to smallest. # In other words, the date is incremented first by +:years+, then by # +:months+, then by +:weeks+, then by +:days+. This order can affect the # result around the end of a month. For example, incrementing first by months # then by days: # # Date.new(2004, 9, 30).advance(months: 1, days: 1) # # => Sun, 31 Oct 2004 # # Whereas incrementing first by days then by months yields a different result: # # Date.new(2004, 9, 30).advance(days: 1).advance(months: 1) # # => Mon, 01 Nov 2004 # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#127 def advance(options); end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) # and then subtracts the specified number of seconds. # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#55 def ago(seconds); end # source://activesupport//lib/active_support/core_ext/object/json.rb#205 def as_json(options = T.unsafe(nil)); end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#67 def at_beginning_of_day; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the end of the day (23:59:59) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#85 def at_end_of_day; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#75 def at_midday; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#75 def at_middle_of_day; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#67 def at_midnight; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#75 def at_noon; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#67 def beginning_of_day; end # Returns a new Date where one or more of the elements have been changed according to the +options+ parameter. # The +options+ parameter is a hash with a combination of these keys: :year, :month, :day. # # Date.new(2007, 5, 12).change(day: 1) # => Date.new(2007, 5, 1) # Date.new(2007, 5, 12).change(year: 2005, month: 1) # => Date.new(2005, 1, 12) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#143 def change(options); end # Allow Date to be compared with Time by converting to DateTime and relying on the <=> from there. # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#152 def compare_with_coercion(other); end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the end of the day (23:59:59) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#85 def end_of_day; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) # and then adds the specified number of seconds # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#61 def in(seconds); end # Overrides the default inspect method with a human readable one, e.g., "Mon, 21 Feb 2005" # # source://activesupport//lib/active_support/core_ext/date/conversions.rb#63 def inspect; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#75 def midday; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#75 def middle_of_day; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#67 def midnight; end # source://activesupport//lib/active_support/core_ext/date/calculations.rb#100 def minus_with_duration(other); end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#75 def noon; end # source://activesupport//lib/active_support/core_ext/date/calculations.rb#90 def plus_with_duration(other); end # Overrides the default inspect method with a human readable one, e.g., "Mon, 21 Feb 2005" # # source://activesupport//lib/active_support/core_ext/date/conversions.rb#63 def readable_inspect; end # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) # and then adds the specified number of seconds # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#61 def since(seconds); end # source://activesupport//lib/active_support/deprecation/method_wrappers.rb#46 def to_default_s(*args, **_arg1, &block); end # Convert to a formatted string. See DATE_FORMATS for predefined formats. # # This method is aliased to to_formatted_s. # # date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 # # date.to_fs(:db) # => "2007-11-10" # date.to_formatted_s(:db) # => "2007-11-10" # # date.to_fs(:short) # => "10 Nov" # date.to_fs(:number) # => "20071110" # date.to_fs(:long) # => "November 10, 2007" # date.to_fs(:long_ordinal) # => "November 10th, 2007" # date.to_fs(:rfc822) # => "10 Nov 2007" # date.to_fs(:iso8601) # => "2007-11-10" # # == Adding your own date formats to to_fs # You can add your own formats to the Date::DATE_FORMATS hash. # Use the format name as the hash key and either a strftime string # or Proc instance that takes a date argument as the value. # # # config/initializers/date_formats.rb # Date::DATE_FORMATS[:month_and_year] = '%B %Y' # Date::DATE_FORMATS[:short_ordinal] = ->(date) { date.strftime("%B #{date.day.ordinalize}") } # # source://activesupport//lib/active_support/core_ext/date/conversions.rb#47 def to_formatted_s(format = T.unsafe(nil)); end # Convert to a formatted string. See DATE_FORMATS for predefined formats. # # This method is aliased to to_formatted_s. # # date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 # # date.to_fs(:db) # => "2007-11-10" # date.to_formatted_s(:db) # => "2007-11-10" # # date.to_fs(:short) # => "10 Nov" # date.to_fs(:number) # => "20071110" # date.to_fs(:long) # => "November 10, 2007" # date.to_fs(:long_ordinal) # => "November 10th, 2007" # date.to_fs(:rfc822) # => "10 Nov 2007" # date.to_fs(:iso8601) # => "2007-11-10" # # == Adding your own date formats to to_fs # You can add your own formats to the Date::DATE_FORMATS hash. # Use the format name as the hash key and either a strftime string # or Proc instance that takes a date argument as the value. # # # config/initializers/date_formats.rb # Date::DATE_FORMATS[:month_and_year] = '%B %Y' # Date::DATE_FORMATS[:short_ordinal] = ->(date) { date.strftime("%B #{date.day.ordinalize}") } # # source://activesupport//lib/active_support/core_ext/date/conversions.rb#47 def to_fs(format = T.unsafe(nil)); end # Converts a Date instance to a Time, where the time is set to the beginning of the day. # The timezone can be either +:local+ or +:utc+ (default +:local+). # # date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 # # date.to_time # => 2007-11-10 00:00:00 0800 # date.to_time(:local) # => 2007-11-10 00:00:00 0800 # # date.to_time(:utc) # => 2007-11-10 00:00:00 UTC # # NOTE: The +:local+ timezone is Ruby's *process* timezone, i.e. ENV['TZ']. # If the application's timezone is needed, then use +in_time_zone+ instead. # # @raise [ArgumentError] # # source://activesupport//lib/active_support/core_ext/date/conversions.rb#83 def to_time(form = T.unsafe(nil)); end # Returns a string which represents the time in used time zone as DateTime # defined by XML Schema: # # date = Date.new(2015, 05, 23) # => Sat, 23 May 2015 # date.xmlschema # => "2015-05-23T00:00:00+04:00" # # source://activesupport//lib/active_support/core_ext/date/conversions.rb#95 def xmlschema; end class << self # Returns the week start (e.g. +:monday+) for the current request, if this has been set (via Date.beginning_of_week=). # If Date.beginning_of_week has not been set for the current request, returns the week start specified in config.beginning_of_week. # If no +config.beginning_of_week+ was specified, returns +:monday+. # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#19 def beginning_of_week; end # Sets Date.beginning_of_week to a week start (e.g. +:monday+) for current request/thread. # # This method accepts any of the following day symbols: # +:monday+, +:tuesday+, +:wednesday+, +:thursday+, +:friday+, +:saturday+, +:sunday+ # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#27 def beginning_of_week=(week_start); end # Returns the value of attribute beginning_of_week_default. # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#14 def beginning_of_week_default; end # Sets the attribute beginning_of_week_default # # @param value the value to set the attribute beginning_of_week_default to. # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#14 def beginning_of_week_default=(_arg0); end # Returns Time.zone.today when Time.zone or config.time_zone are set, otherwise just returns Date.today. # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#48 def current; end # Returns week start day symbol (e.g. +:monday+), or raises an +ArgumentError+ for invalid day symbol. # # @raise [ArgumentError] # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#32 def find_beginning_of_week!(week_start); end # Returns a new Date representing the date 1 day after today (i.e. tomorrow's date). # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#43 def tomorrow; end # Returns a new Date representing the date 1 day ago (i.e. yesterday's date). # # source://activesupport//lib/active_support/core_ext/date/calculations.rb#38 def yesterday; end end end # source://activesupport//lib/active_support/core_ext/date/conversions.rb#9 Date::DATE_FORMATS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/core_ext/date_and_time/compatibility.rb#5 module DateAndTime; end # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#7 module DateAndTime::Calculations # Returns true if the date/time falls after date_or_time. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#72 def after?(date_or_time); end # Returns a Range representing the whole day of the current date/time. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#310 def all_day; end # Returns a Range representing the whole month of the current date/time. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#321 def all_month; end # Returns a Range representing the whole quarter of the current date/time. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#326 def all_quarter; end # Returns a Range representing the whole week of the current date/time. # Week starts on start_day, default is Date.beginning_of_week or config.beginning_of_week when set. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#316 def all_week(start_day = T.unsafe(nil)); end # Returns a Range representing the whole year of the current date/time. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#331 def all_year; end # Returns a new date/time at the start of the month. # # today = Date.today # => Thu, 18 Jun 2015 # today.beginning_of_month # => Mon, 01 Jun 2015 # # +DateTime+ objects will have a time set to 0:00. # # now = DateTime.current # => Thu, 18 Jun 2015 15:23:13 +0000 # now.beginning_of_month # => Mon, 01 Jun 2015 00:00:00 +0000 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#125 def at_beginning_of_month; end # Returns a new date/time at the start of the quarter. # # today = Date.today # => Fri, 10 Jul 2015 # today.beginning_of_quarter # => Wed, 01 Jul 2015 # # +DateTime+ objects will have a time set to 0:00. # # now = DateTime.current # => Fri, 10 Jul 2015 18:41:29 +0000 # now.beginning_of_quarter # => Wed, 01 Jul 2015 00:00:00 +0000 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#139 def at_beginning_of_quarter; end # Returns a new date/time representing the start of this week on the given day. # Week is assumed to start on +start_day+, default is # +Date.beginning_of_week+ or +config.beginning_of_week+ when set. # +DateTime+ objects have their time set to 0:00. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#267 def at_beginning_of_week(start_day = T.unsafe(nil)); end # Returns a new date/time at the beginning of the year. # # today = Date.today # => Fri, 10 Jul 2015 # today.beginning_of_year # => Thu, 01 Jan 2015 # # +DateTime+ objects will have a time set to 0:00. # # now = DateTime.current # => Fri, 10 Jul 2015 18:41:29 +0000 # now.beginning_of_year # => Thu, 01 Jan 2015 00:00:00 +0000 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#179 def at_beginning_of_year; end # Returns a new date/time representing the end of the month. # DateTime objects will have a time set to 23:59:59. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#296 def at_end_of_month; end # Returns a new date/time at the end of the quarter. # # today = Date.today # => Fri, 10 Jul 2015 # today.end_of_quarter # => Wed, 30 Sep 2015 # # +DateTime+ objects will have a time set to 23:59:59. # # now = DateTime.current # => Fri, 10 Jul 2015 18:41:29 +0000 # now.end_of_quarter # => Wed, 30 Sep 2015 23:59:59 +0000 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#154 def at_end_of_quarter; end # Returns a new date/time representing the end of this week on the given day. # Week is assumed to start on +start_day+, default is # +Date.beginning_of_week+ or +config.beginning_of_week+ when set. # DateTime objects have their time set to 23:59:59. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#283 def at_end_of_week(start_day = T.unsafe(nil)); end # Returns a new date/time representing the end of the year. # DateTime objects will have a time set to 23:59:59. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#304 def at_end_of_year; end # Returns true if the date/time falls before date_or_time. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#67 def before?(date_or_time); end # Returns a new date/time at the start of the month. # # today = Date.today # => Thu, 18 Jun 2015 # today.beginning_of_month # => Mon, 01 Jun 2015 # # +DateTime+ objects will have a time set to 0:00. # # now = DateTime.current # => Thu, 18 Jun 2015 15:23:13 +0000 # now.beginning_of_month # => Mon, 01 Jun 2015 00:00:00 +0000 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#125 def beginning_of_month; end # Returns a new date/time at the start of the quarter. # # today = Date.today # => Fri, 10 Jul 2015 # today.beginning_of_quarter # => Wed, 01 Jul 2015 # # +DateTime+ objects will have a time set to 0:00. # # now = DateTime.current # => Fri, 10 Jul 2015 18:41:29 +0000 # now.beginning_of_quarter # => Wed, 01 Jul 2015 00:00:00 +0000 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#139 def beginning_of_quarter; end # Returns a new date/time representing the start of this week on the given day. # Week is assumed to start on +start_day+, default is # +Date.beginning_of_week+ or +config.beginning_of_week+ when set. # +DateTime+ objects have their time set to 0:00. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#267 def beginning_of_week(start_day = T.unsafe(nil)); end # Returns a new date/time at the beginning of the year. # # today = Date.today # => Fri, 10 Jul 2015 # today.beginning_of_year # => Thu, 01 Jan 2015 # # +DateTime+ objects will have a time set to 0:00. # # now = DateTime.current # => Fri, 10 Jul 2015 18:41:29 +0000 # now.beginning_of_year # => Thu, 01 Jan 2015 00:00:00 +0000 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#179 def beginning_of_year; end # Returns a new date/time the specified number of days ago. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#77 def days_ago(days); end # Returns a new date/time the specified number of days in the future. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#82 def days_since(days); end # Returns the number of days to the start of the week on the given day. # Week is assumed to start on +start_day+, default is # +Date.beginning_of_week+ or +config.beginning_of_week+ when set. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#258 def days_to_week_start(start_day = T.unsafe(nil)); end # Returns a new date/time representing the end of the month. # DateTime objects will have a time set to 23:59:59. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#296 def end_of_month; end # Returns a new date/time at the end of the quarter. # # today = Date.today # => Fri, 10 Jul 2015 # today.end_of_quarter # => Wed, 30 Sep 2015 # # +DateTime+ objects will have a time set to 23:59:59. # # now = DateTime.current # => Fri, 10 Jul 2015 18:41:29 +0000 # now.end_of_quarter # => Wed, 30 Sep 2015 23:59:59 +0000 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#154 def end_of_quarter; end # Returns a new date/time representing the end of this week on the given day. # Week is assumed to start on +start_day+, default is # +Date.beginning_of_week+ or +config.beginning_of_week+ when set. # DateTime objects have their time set to 23:59:59. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#283 def end_of_week(start_day = T.unsafe(nil)); end # Returns a new date/time representing the end of the year. # DateTime objects will have a time set to 23:59:59. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#304 def end_of_year; end # Returns true if the date/time is in the future. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#52 def future?; end # Short-hand for months_ago(1). # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#240 def last_month; end # Short-hand for months_ago(3). # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#245 def last_quarter; end # Returns a new date/time representing the given day in the previous week. # Week is assumed to start on +start_day+, default is # +Date.beginning_of_week+ or +config.beginning_of_week+ when set. # DateTime objects have their time set to 0:00 unless +same_time+ is true. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#223 def last_week(start_day = T.unsafe(nil), same_time: T.unsafe(nil)); end # Returns a new date/time representing the previous weekday. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#230 def last_weekday; end # Short-hand for years_ago(1). # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#251 def last_year; end # Returns Monday of this week assuming that week starts on Monday. # +DateTime+ objects have their time set to 0:00. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#275 def monday; end # Returns a new date/time the specified number of months ago. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#97 def months_ago(months); end # Returns a new date/time the specified number of months in the future. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#102 def months_since(months); end # Returns true if the date/time is tomorrow. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#35 def next_day?; end # Returns a new date/time representing the next occurrence of the specified day of week. # # today = Date.today # => Thu, 14 Dec 2017 # today.next_occurring(:monday) # => Mon, 18 Dec 2017 # today.next_occurring(:thursday) # => Thu, 21 Dec 2017 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#340 def next_occurring(day_of_week); end # Short-hand for months_since(3). # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#215 def next_quarter; end # Returns a new date/time representing the given day in the next week. # # today = Date.today # => Thu, 07 May 2015 # today.next_week # => Mon, 11 May 2015 # # The +given_day_in_next_week+ defaults to the beginning of the week # which is determined by +Date.beginning_of_week+ or +config.beginning_of_week+ # when set. # # today = Date.today # => Thu, 07 May 2015 # today.next_week(:friday) # => Fri, 15 May 2015 # # +DateTime+ objects have their time set to 0:00 unless +same_time+ is true. # # now = DateTime.current # => Thu, 07 May 2015 13:31:16 +0000 # now.next_week # => Mon, 11 May 2015 00:00:00 +0000 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#200 def next_week(given_day_in_next_week = T.unsafe(nil), same_time: T.unsafe(nil)); end # Returns a new date/time representing the next weekday. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#206 def next_weekday; end # Returns true if the date/time does not fall on a Saturday or Sunday. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#62 def on_weekday?; end # Returns true if the date/time falls on a Saturday or Sunday. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#57 def on_weekend?; end # Returns true if the date/time is in the past. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#47 def past?; end # Returns true if the date/time is yesterday. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#41 def prev_day?; end # Returns a new date/time representing the previous occurrence of the specified day of week. # # today = Date.today # => Thu, 14 Dec 2017 # today.prev_occurring(:monday) # => Mon, 11 Dec 2017 # today.prev_occurring(:thursday) # => Thu, 07 Dec 2017 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#351 def prev_occurring(day_of_week); end # Short-hand for months_ago(3). # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#245 def prev_quarter; end # Returns a new date/time representing the given day in the previous week. # Week is assumed to start on +start_day+, default is # +Date.beginning_of_week+ or +config.beginning_of_week+ when set. # DateTime objects have their time set to 0:00 unless +same_time+ is true. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#223 def prev_week(start_day = T.unsafe(nil), same_time: T.unsafe(nil)); end # Returns a new date/time representing the previous weekday. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#230 def prev_weekday; end # Returns the quarter for a date/time. # # Date.new(2010, 1, 31).quarter # => 1 # Date.new(2010, 4, 12).quarter # => 2 # Date.new(2010, 9, 15).quarter # => 3 # Date.new(2010, 12, 25).quarter # => 4 # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#166 def quarter; end # Returns Sunday of this week assuming that week starts on Monday. # +DateTime+ objects have their time set to 23:59:59. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#290 def sunday; end # Returns true if the date/time is today. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#30 def today?; end # Returns a new date/time representing tomorrow. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#25 def tomorrow; end # Returns true if the date/time is tomorrow. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#35 def tomorrow?; end # Returns a new date/time the specified number of weeks ago. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#87 def weeks_ago(weeks); end # Returns a new date/time the specified number of weeks in the future. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#92 def weeks_since(weeks); end # Returns a new date/time the specified number of years ago. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#107 def years_ago(years); end # Returns a new date/time the specified number of years in the future. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#112 def years_since(years); end # Returns a new date/time representing yesterday. # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#20 def yesterday; end # Returns true if the date/time is yesterday. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#41 def yesterday?; end private # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#370 def copy_time_to(other); end # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#366 def days_span(day); end # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#358 def first_hour(date_or_time); end # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#362 def last_hour(date_or_time); end end # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#8 DateAndTime::Calculations::DAYS_INTO_WEEK = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/core_ext/date_and_time/calculations.rb#17 DateAndTime::Calculations::WEEKEND_DAYS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/core_ext/date_and_time/compatibility.rb#6 module DateAndTime::Compatibility # source://activesupport//lib/active_support/core_ext/date_and_time/compatibility.rb#14 def preserve_timezone; end # source://activesupport//lib/active_support/core_ext/date_and_time/compatibility.rb#29 def utc_to_local_returns_utc_offset_times; end class << self # source://activesupport//lib/active_support/core_ext/date_and_time/compatibility.rb#14 def preserve_timezone; end # source://activesupport//lib/active_support/core_ext/date_and_time/compatibility.rb#14 def preserve_timezone=(val); end # source://activesupport//lib/active_support/core_ext/date_and_time/compatibility.rb#29 def utc_to_local_returns_utc_offset_times; end # source://activesupport//lib/active_support/core_ext/date_and_time/compatibility.rb#29 def utc_to_local_returns_utc_offset_times=(val); end end end # source://activesupport//lib/active_support/core_ext/date_and_time/zones.rb#4 module DateAndTime::Zones # Returns the simultaneous time in Time.zone if a zone is given or # if Time.zone_default is set. Otherwise, it returns the current time. # # Time.zone = 'Hawaii' # => 'Hawaii' # Time.utc(2000).in_time_zone # => Fri, 31 Dec 1999 14:00:00 HST -10:00 # Date.new(2000).in_time_zone # => Sat, 01 Jan 2000 00:00:00 HST -10:00 # # This method is similar to Time#localtime, except that it uses Time.zone as the local zone # instead of the operating system's time zone. # # You can also pass in a TimeZone instance or string that identifies a TimeZone as an argument, # and the conversion will be based on that zone instead of Time.zone. # # Time.utc(2000).in_time_zone('Alaska') # => Fri, 31 Dec 1999 15:00:00 AKST -09:00 # Date.new(2000).in_time_zone('Alaska') # => Sat, 01 Jan 2000 00:00:00 AKST -09:00 # # source://activesupport//lib/active_support/core_ext/date_and_time/zones.rb#20 def in_time_zone(zone = T.unsafe(nil)); end private # source://activesupport//lib/active_support/core_ext/date_and_time/zones.rb#32 def time_with_zone(time, zone); end end # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#5 class DateTime < ::Date # Layers additional behavior on DateTime#<=> so that Time and # ActiveSupport::TimeWithZone instances can be compared with a DateTime. # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#208 def <=>(other); end # Uses Date to provide precise Time calculations for years, months, and days. # The +options+ parameter takes a hash with any of these keys: :years, # :months, :weeks, :days, :hours, # :minutes, :seconds. # # Just like Date#advance, increments are applied in order of time units from # largest to smallest. This order can affect the result around the end of a # month. # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#82 def advance(options); end # Returns a new DateTime representing the time a number of seconds ago. # Do not use this method in combination with x.months, use months_ago instead! # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#109 def ago(seconds); end # source://activesupport//lib/active_support/core_ext/object/json.rb#215 def as_json(options = T.unsafe(nil)); end # Returns a new DateTime representing the start of the day (0:00). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#122 def at_beginning_of_day; end # Returns a new DateTime representing the start of the hour (hh:00:00). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#146 def at_beginning_of_hour; end # Returns a new DateTime representing the start of the minute (hh:mm:00). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#158 def at_beginning_of_minute; end # Returns a new DateTime representing the end of the day (23:59:59). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#140 def at_end_of_day; end # Returns a new DateTime representing the end of the hour (hh:59:59). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#152 def at_end_of_hour; end # Returns a new DateTime representing the end of the minute (hh:mm:59). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#164 def at_end_of_minute; end # Returns a new DateTime representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#130 def at_midday; end # Returns a new DateTime representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#130 def at_middle_of_day; end # Returns a new DateTime representing the start of the day (0:00). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#122 def at_midnight; end # Returns a new DateTime representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#130 def at_noon; end # Returns a new DateTime representing the start of the day (0:00). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#122 def beginning_of_day; end # Returns a new DateTime representing the start of the hour (hh:00:00). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#146 def beginning_of_hour; end # Returns a new DateTime representing the start of the minute (hh:mm:00). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#158 def beginning_of_minute; end # Returns a new DateTime where one or more of the elements have been changed # according to the +options+ parameter. The time options (:hour, # :min, :sec) reset cascadingly, so if only the hour is # passed, then minute and sec is set to 0. If the hour and minute is passed, # then sec is set to 0. The +options+ parameter takes a hash with any of these # keys: :year, :month, :day, :hour, # :min, :sec, :offset, :start. # # DateTime.new(2012, 8, 29, 22, 35, 0).change(day: 1) # => DateTime.new(2012, 8, 1, 22, 35, 0) # DateTime.new(2012, 8, 29, 22, 35, 0).change(year: 1981, day: 1) # => DateTime.new(1981, 8, 1, 22, 35, 0) # DateTime.new(2012, 8, 29, 22, 35, 0).change(year: 1981, hour: 0) # => DateTime.new(1981, 8, 29, 0, 0, 0) # # @raise [ArgumentError] # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#51 def change(options); end # Returns a new DateTime representing the end of the day (23:59:59). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#140 def end_of_day; end # Returns a new DateTime representing the end of the hour (hh:59:59). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#152 def end_of_hour; end # Returns a new DateTime representing the end of the minute (hh:mm:59). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#164 def end_of_minute; end # Returns a formatted string of the offset from UTC, or an alternative # string if the time zone is already UTC. # # datetime = DateTime.civil(2000, 1, 1, 0, 0, 0, Rational(-6, 24)) # datetime.formatted_offset # => "-06:00" # datetime.formatted_offset(false) # => "-0600" # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#55 def formatted_offset(colon = T.unsafe(nil), alternate_utc_string = T.unsafe(nil)); end # Returns a Time instance of the simultaneous time in the UTC timezone. # # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)) # => Mon, 21 Feb 2005 10:11:12 -0600 # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)).utc # => Mon, 21 Feb 2005 16:11:12 UTC # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#184 def getgm; end # Returns a Time instance of the simultaneous time in the system timezone. # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#170 def getlocal(utc_offset = T.unsafe(nil)); end # Returns a Time instance of the simultaneous time in the UTC timezone. # # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)) # => Mon, 21 Feb 2005 10:11:12 -0600 # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)).utc # => Mon, 21 Feb 2005 16:11:12 UTC # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#184 def getutc; end # Returns a Time instance of the simultaneous time in the UTC timezone. # # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)) # => Mon, 21 Feb 2005 10:11:12 -0600 # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)).utc # => Mon, 21 Feb 2005 16:11:12 UTC # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#184 def gmtime; end # Returns a new DateTime representing the time a number of seconds since the # instance time. Do not use this method in combination with x.months, use # months_since instead! # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#116 def in(seconds); end # Overrides the default inspect method with a human readable one, e.g., "Mon, 21 Feb 2005 14:30:00 +0000". # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#60 def inspect; end # Returns a Time instance of the simultaneous time in the system timezone. # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#170 def localtime(utc_offset = T.unsafe(nil)); end # Returns a new DateTime representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#130 def midday; end # Returns a new DateTime representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#130 def middle_of_day; end # Returns a new DateTime representing the start of the day (0:00). # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#122 def midnight; end # Returns a new DateTime representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#130 def noon; end # Returns the fraction of a second as nanoseconds # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#98 def nsec; end # Overrides the default inspect method with a human readable one, e.g., "Mon, 21 Feb 2005 14:30:00 +0000". # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#60 def readable_inspect; end # Returns the number of seconds since 00:00:00. # # DateTime.new(2012, 8, 29, 0, 0, 0).seconds_since_midnight # => 0 # DateTime.new(2012, 8, 29, 12, 34, 56).seconds_since_midnight # => 45296 # DateTime.new(2012, 8, 29, 23, 59, 59).seconds_since_midnight # => 86399 # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#20 def seconds_since_midnight; end # Returns the number of seconds until 23:59:59. # # DateTime.new(2012, 8, 29, 0, 0, 0).seconds_until_end_of_day # => 86399 # DateTime.new(2012, 8, 29, 12, 34, 56).seconds_until_end_of_day # => 41103 # DateTime.new(2012, 8, 29, 23, 59, 59).seconds_until_end_of_day # => 0 # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#29 def seconds_until_end_of_day; end # Returns a new DateTime representing the time a number of seconds since the # instance time. Do not use this method in combination with x.months, use # months_since instead! # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#116 def since(seconds); end # Returns the fraction of a second as a +Rational+ # # DateTime.new(2012, 8, 29, 0, 0, 0.5).subsec # => (1/2) # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#36 def subsec; end # source://activesupport//lib/active_support/deprecation/method_wrappers.rb#46 def to_default_s(*args, **_arg1, &block); end # Converts +self+ to a floating-point number of seconds, including fractional microseconds, since the Unix epoch. # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#83 def to_f; end # Convert to a formatted string. See Time::DATE_FORMATS for predefined formats. # # This method is aliased to to_formatted_s. # # === Examples # datetime = DateTime.civil(2007, 12, 4, 0, 0, 0, 0) # => Tue, 04 Dec 2007 00:00:00 +0000 # # datetime.to_fs(:db) # => "2007-12-04 00:00:00" # datetime.to_formatted_s(:db) # => "2007-12-04 00:00:00" # datetime.to_fs(:number) # => "20071204000000" # datetime.to_fs(:short) # => "04 Dec 00:00" # datetime.to_fs(:long) # => "December 04, 2007 00:00" # datetime.to_fs(:long_ordinal) # => "December 4th, 2007 00:00" # datetime.to_fs(:rfc822) # => "Tue, 04 Dec 2007 00:00:00 +0000" # datetime.to_fs(:iso8601) # => "2007-12-04T00:00:00+00:00" # # == Adding your own datetime formats to to_fs # DateTime formats are shared with Time. You can add your own to the # Time::DATE_FORMATS hash. Use the format name as the hash key and # either a strftime string or Proc instance that takes a time or # datetime argument as the value. # # # config/initializers/time_formats.rb # Time::DATE_FORMATS[:month_and_year] = '%B %Y' # Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") } # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#35 def to_formatted_s(format = T.unsafe(nil)); end # Convert to a formatted string. See Time::DATE_FORMATS for predefined formats. # # This method is aliased to to_formatted_s. # # === Examples # datetime = DateTime.civil(2007, 12, 4, 0, 0, 0, 0) # => Tue, 04 Dec 2007 00:00:00 +0000 # # datetime.to_fs(:db) # => "2007-12-04 00:00:00" # datetime.to_formatted_s(:db) # => "2007-12-04 00:00:00" # datetime.to_fs(:number) # => "20071204000000" # datetime.to_fs(:short) # => "04 Dec 00:00" # datetime.to_fs(:long) # => "December 04, 2007 00:00" # datetime.to_fs(:long_ordinal) # => "December 4th, 2007 00:00" # datetime.to_fs(:rfc822) # => "Tue, 04 Dec 2007 00:00:00 +0000" # datetime.to_fs(:iso8601) # => "2007-12-04T00:00:00+00:00" # # == Adding your own datetime formats to to_fs # DateTime formats are shared with Time. You can add your own to the # Time::DATE_FORMATS hash. Use the format name as the hash key and # either a strftime string or Proc instance that takes a time or # datetime argument as the value. # # # config/initializers/time_formats.rb # Time::DATE_FORMATS[:month_and_year] = '%B %Y' # Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") } # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#35 def to_fs(format = T.unsafe(nil)); end # Converts +self+ to an integer number of seconds since the Unix epoch. # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#88 def to_i; end # Returns the fraction of a second as microseconds # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#93 def usec; end # Returns a Time instance of the simultaneous time in the UTC timezone. # # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)) # => Mon, 21 Feb 2005 10:11:12 -0600 # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)).utc # => Mon, 21 Feb 2005 16:11:12 UTC # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#184 def utc; end # Returns +true+ if offset == 0. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#197 def utc?; end # Returns the offset value in seconds. # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#202 def utc_offset; end private # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#103 def offset_in_seconds; end # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#107 def seconds_since_unix_epoch; end class << self # Returns DateTime with local offset for given year if format is local else # offset is zero. # # DateTime.civil_from_format :local, 2012 # # => Sun, 01 Jan 2012 00:00:00 +0300 # DateTime.civil_from_format :local, 2012, 12, 17 # # => Mon, 17 Dec 2012 00:00:00 +0000 # # source://activesupport//lib/active_support/core_ext/date_time/conversions.rb#73 def civil_from_format(utc_or_local, year, month = T.unsafe(nil), day = T.unsafe(nil), hour = T.unsafe(nil), min = T.unsafe(nil), sec = T.unsafe(nil)); end # Returns Time.zone.now.to_datetime when Time.zone or # config.time_zone are set, otherwise returns # Time.now.to_datetime. # # source://activesupport//lib/active_support/core_ext/date_time/calculations.rb#10 def current; end end end # source://activesupport//lib/active_support/core_ext/object/try.rb#117 class Delegator < ::BasicObject include ::ActiveSupport::Tryable end # source://activesupport//lib/active_support/core_ext/erb/util.rb#39 module ERB::Util include ::ActiveSupport::CoreExt::ERBUtil include ::ActiveSupport::CoreExt::ERBUtilPrivate extend ::ActiveSupport::CoreExt::ERBUtil private # A utility method for escaping HTML without affecting existing escaped entities. # # html_escape_once('1 < 2 & 3') # # => "1 < 2 & 3" # # html_escape_once('<< Accept & Checkout') # # => "<< Accept & Checkout" # # source://activesupport//lib/active_support/core_ext/erb/util.rb#63 def html_escape_once(s); end # A utility method for escaping HTML entities in JSON strings. Specifically, the # &, > and < characters are replaced with their equivalent unicode escaped form - # \u0026, \u003e, and \u003c. The Unicode sequences \u2028 and \u2029 are also # escaped as they are treated as newline characters in some JavaScript engines. # These sequences have identical meaning as the original characters inside the # context of a JSON string, so assuming the input is a valid and well-formed # JSON value, the output will have equivalent meaning when parsed: # # json = JSON.generate({ name: ""}) # # => "{\"name\":\"\"}" # # json_escape(json) # # => "{\"name\":\"\\u003C/script\\u003E\\u003Cscript\\u003Ealert('PWNED!!!')\\u003C/script\\u003E\"}" # # JSON.parse(json) == JSON.parse(json_escape(json)) # # => true # # The intended use case for this method is to escape JSON strings before including # them inside a script tag to avoid XSS vulnerability: # # # # It is necessary to +raw+ the result of +json_escape+, so that quotation marks # don't get converted to " entities. +json_escape+ doesn't # automatically flag the result as HTML safe, since the raw value is unsafe to # use inside HTML attributes. # # If your JSON is being used downstream for insertion into the DOM, be aware of # whether or not it is being inserted via html(). Most jQuery plugins do this. # If that is the case, be sure to +html_escape+ or +sanitize+ any user-generated # content returned by your JSON. # # If you need to output JSON elsewhere in your HTML, you can just do something # like this, as any unsafe characters (including quotation marks) will be # automatically escaped for you: # #
...
# # WARNING: this helper only works with valid JSON. Using this on non-JSON values # will open up serious XSS vulnerabilities. For example, if you replace the # +current_user.to_json+ in the example above with user input instead, the browser # will happily eval() that string as JavaScript. # # The escaping performed in this method is identical to those performed in the # Active Support JSON encoder when +ActiveSupport.escape_html_entities_in_json+ is # set to true. Because this transformation is idempotent, this helper can be # applied even if +ActiveSupport.escape_html_entities_in_json+ is already true. # # Therefore, when you are unsure if +ActiveSupport.escape_html_entities_in_json+ # is enabled, or if you are unsure where your JSON string originated from, it # is recommended that you always apply this helper (other libraries, such as the # JSON gem, do not provide this kind of protection by default; also some gems # might override +to_json+ to bypass Active Support's encoder). # # source://activesupport//lib/active_support/core_ext/erb/util.rb#124 def json_escape(s); end # A utility method for escaping XML names of tags and names of attributes. # # xml_name_escape('1 < 2 & 3') # # => "1___2___3" # # It follows the requirements of the specification: https://www.w3.org/TR/REC-xml/#NT-Name # # source://activesupport//lib/active_support/core_ext/erb/util.rb#142 def xml_name_escape(name); end class << self # source://activesupport//lib/active_support/core_ext/erb/util.rb#25 def h(s); end # source://activesupport//lib/active_support/core_ext/erb/util.rb#25 def html_escape(s); end # A utility method for escaping HTML without affecting existing escaped entities. # # html_escape_once('1 < 2 & 3') # # => "1 < 2 & 3" # # html_escape_once('<< Accept & Checkout') # # => "<< Accept & Checkout" # # source://activesupport//lib/active_support/core_ext/erb/util.rb#63 def html_escape_once(s); end # A utility method for escaping HTML entities in JSON strings. Specifically, the # &, > and < characters are replaced with their equivalent unicode escaped form - # \u0026, \u003e, and \u003c. The Unicode sequences \u2028 and \u2029 are also # escaped as they are treated as newline characters in some JavaScript engines. # These sequences have identical meaning as the original characters inside the # context of a JSON string, so assuming the input is a valid and well-formed # JSON value, the output will have equivalent meaning when parsed: # # json = JSON.generate({ name: ""}) # # => "{\"name\":\"\"}" # # json_escape(json) # # => "{\"name\":\"\\u003C/script\\u003E\\u003Cscript\\u003Ealert('PWNED!!!')\\u003C/script\\u003E\"}" # # JSON.parse(json) == JSON.parse(json_escape(json)) # # => true # # The intended use case for this method is to escape JSON strings before including # them inside a script tag to avoid XSS vulnerability: # # # # It is necessary to +raw+ the result of +json_escape+, so that quotation marks # don't get converted to " entities. +json_escape+ doesn't # automatically flag the result as HTML safe, since the raw value is unsafe to # use inside HTML attributes. # # If your JSON is being used downstream for insertion into the DOM, be aware of # whether or not it is being inserted via html(). Most jQuery plugins do this. # If that is the case, be sure to +html_escape+ or +sanitize+ any user-generated # content returned by your JSON. # # If you need to output JSON elsewhere in your HTML, you can just do something # like this, as any unsafe characters (including quotation marks) will be # automatically escaped for you: # #
...
# # WARNING: this helper only works with valid JSON. Using this on non-JSON values # will open up serious XSS vulnerabilities. For example, if you replace the # +current_user.to_json+ in the example above with user input instead, the browser # will happily eval() that string as JavaScript. # # The escaping performed in this method is identical to those performed in the # Active Support JSON encoder when +ActiveSupport.escape_html_entities_in_json+ is # set to true. Because this transformation is idempotent, this helper can be # applied even if +ActiveSupport.escape_html_entities_in_json+ is already true. # # Therefore, when you are unsure if +ActiveSupport.escape_html_entities_in_json+ # is enabled, or if you are unsure where your JSON string originated from, it # is recommended that you always apply this helper (other libraries, such as the # JSON gem, do not provide this kind of protection by default; also some gems # might override +to_json+ to bypass Active Support's encoder). # # source://activesupport//lib/active_support/core_ext/erb/util.rb#124 def json_escape(s); end # Tokenizes a line of ERB. This is really just for error reporting and # nobody should use it. # # source://activesupport//lib/active_support/core_ext/erb/util.rb#161 def tokenize(source); end # source://activesupport//lib/active_support/core_ext/erb/util.rb#10 def unwrapped_html_escape(s); end # A utility method for escaping XML names of tags and names of attributes. # # xml_name_escape('1 < 2 & 3') # # => "1___2___3" # # It follows the requirements of the specification: https://www.w3.org/TR/REC-xml/#NT-Name # # source://activesupport//lib/active_support/core_ext/erb/util.rb#142 def xml_name_escape(name); end end end # source://activesupport//lib/active_support/core_ext/erb/util.rb#40 ERB::Util::HTML_ESCAPE = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/core_ext/erb/util.rb#41 ERB::Util::HTML_ESCAPE_ONCE_REGEXP = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/core_ext/erb/util.rb#49 ERB::Util::INVALID_TAG_NAME_FOLLOWING_REGEXP = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/core_ext/erb/util.rb#47 ERB::Util::INVALID_TAG_NAME_START_REGEXP = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/core_ext/erb/util.rb#50 ERB::Util::SAFE_XML_TAG_NAME_REGEXP = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/core_ext/erb/util.rb#48 ERB::Util::TAG_NAME_FOLLOWING_CODEPOINTS = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/core_ext/erb/util.rb#51 ERB::Util::TAG_NAME_REPLACEMENT_CHAR = T.let(T.unsafe(nil), String) # Following XML requirements: https://www.w3.org/TR/REC-xml/#NT-Name # # source://activesupport//lib/active_support/core_ext/erb/util.rb#44 ERB::Util::TAG_NAME_START_CODEPOINTS = T.let(T.unsafe(nil), String) # source://activesupport//lib/active_support/core_ext/object/json.rb#147 module Enumerable include ::ActiveSupport::ToJsonWithActiveSupportEncoder extend ::ActiveSupport::EnumerableCoreExt::Constants # source://activesupport//lib/active_support/core_ext/object/json.rb#148 def as_json(options = T.unsafe(nil)); end # Returns a new +Array+ without the blank items. # Uses Object#blank? for determining if an item is blank. # # [1, "", nil, 2, " ", [], {}, false, true].compact_blank # # => [1, 2, true] # # Set.new([nil, "", 1, false]).compact_blank # # => [1] # # When called on a +Hash+, returns a new +Hash+ without the blank values. # # { a: "", b: 1, c: nil, d: [], e: false, f: true }.compact_blank # # => { b: 1, f: true } # # source://activesupport//lib/active_support/core_ext/enumerable.rb#184 def compact_blank; end # The negative of the Enumerable#include?. Returns +true+ if the # collection does not include the object. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/enumerable.rb#118 def exclude?(object); end # Returns a copy of the enumerable excluding the specified elements. # # ["David", "Rafael", "Aaron", "Todd"].excluding "Aaron", "Todd" # # => ["David", "Rafael"] # # ["David", "Rafael", "Aaron", "Todd"].excluding %w[ Aaron Todd ] # # => ["David", "Rafael"] # # {foo: 1, bar: 2, baz: 3}.excluding :bar # # => {foo: 1, baz: 3} # # source://activesupport//lib/active_support/core_ext/enumerable.rb#132 def excluding(*elements); end # Returns a new +Array+ where the order has been set to that provided in the +series+, based on the +key+ of the # objects in the original enumerable. # # [ Person.find(5), Person.find(3), Person.find(1) ].in_order_of(:id, [ 1, 5, 3 ]) # # => [ Person.find(1), Person.find(5), Person.find(3) ] # # If the +series+ include keys that have no corresponding element in the Enumerable, these are ignored. # If the Enumerable has additional elements that aren't named in the +series+, these are not included in the result. # # source://activesupport//lib/active_support/core_ext/enumerable.rb#196 def in_order_of(key, series); end # Returns a new array that includes the passed elements. # # [ 1, 2, 3 ].including(4, 5) # # => [ 1, 2, 3, 4, 5 ] # # ["David", "Rafael"].including %w[ Aaron Todd ] # # => ["David", "Rafael", "Aaron", "Todd"] # # source://activesupport//lib/active_support/core_ext/enumerable.rb#112 def including(*elements); end # Convert an enumerable to a hash, using the block result as the key and the # element as the value. # # people.index_by(&:login) # # => { "nextangle" => , "chade-" => , ...} # # people.index_by { |person| "#{person.first_name} #{person.last_name}" } # # => { "Chade- Fowlersburg-e" => , "David Heinemeier Hansson" => , ...} # # source://activesupport//lib/active_support/core_ext/enumerable.rb#52 def index_by; end # Convert an enumerable to a hash, using the element as the key and the block # result as the value. # # post = Post.new(title: "hey there", body: "what's up?") # # %i( title body ).index_with { |attr_name| post.public_send(attr_name) } # # => { title: "hey there", body: "what's up?" } # # If an argument is passed instead of a block, it will be used as the value # for all elements: # # %i( created_at updated_at ).index_with(Time.now) # # => { created_at: 2020-03-09 22:31:47, updated_at: 2020-03-09 22:31:47 } # # source://activesupport//lib/active_support/core_ext/enumerable.rb#75 def index_with(default = T.unsafe(nil)); end # Returns +true+ if the enumerable has more than 1 element. Functionally # equivalent to enum.to_a.size > 1. Can be called with a block too, # much like any?, so people.many? { |p| p.age > 26 } returns +true+ # if more than one person is over 26. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/enumerable.rb#93 def many?; end # Calculates the maximum from the extracted elements. # # payments = [Payment.new(5), Payment.new(15), Payment.new(10)] # payments.maximum(:price) # => 15 # # source://activesupport//lib/active_support/core_ext/enumerable.rb#40 def maximum(key); end # Calculates the minimum from the extracted elements. # # payments = [Payment.new(5), Payment.new(15), Payment.new(10)] # payments.minimum(:price) # => 5 # # source://activesupport//lib/active_support/core_ext/enumerable.rb#32 def minimum(key); end # Extract the given key from the first element in the enumerable. # # [{ name: "David" }, { name: "Rafael" }, { name: "Aaron" }].pick(:name) # # => "David" # # [{ id: 1, name: "David" }, { id: 2, name: "Rafael" }].pick(:id, :name) # # => [1, "David"] # # source://activesupport//lib/active_support/core_ext/enumerable.rb#161 def pick(*keys); end # Extract the given key from each element in the enumerable. # # [{ name: "David" }, { name: "Rafael" }, { name: "Aaron" }].pluck(:name) # # => ["David", "Rafael", "Aaron"] # # [{ id: 1, name: "David" }, { id: 2, name: "Rafael" }].pluck(:id, :name) # # => [[1, "David"], [2, "Rafael"]] # # source://activesupport//lib/active_support/core_ext/enumerable.rb#145 def pluck(*keys); end # Returns the sole item in the enumerable. If there are no items, or more # than one item, raises +Enumerable::SoleItemExpectedError+. # # ["x"].sole # => "x" # Set.new.sole # => Enumerable::SoleItemExpectedError: no item found # { a: 1, b: 2 }.sole # => Enumerable::SoleItemExpectedError: multiple items found # # source://activesupport//lib/active_support/core_ext/enumerable.rb#206 def sole; end # Returns a copy of the enumerable excluding the specified elements. # # ["David", "Rafael", "Aaron", "Todd"].excluding "Aaron", "Todd" # # => ["David", "Rafael"] # # ["David", "Rafael", "Aaron", "Todd"].excluding %w[ Aaron Todd ] # # => ["David", "Rafael"] # # {foo: 1, bar: 2, baz: 3}.excluding :bar # # => {foo: 1, baz: 3} # # source://activesupport//lib/active_support/core_ext/enumerable.rb#132 def without(*elements); end end # Error generated by +sole+ when called on an enumerable that doesn't have # exactly one item. # # source://activesupport//lib/active_support/core_ext/enumerable.rb#21 class Enumerable::SoleItemExpectedError < ::StandardError; end # source://activesupport//lib/active_support/core_ext/object/json.rb#248 class Exception # source://activesupport//lib/active_support/core_ext/object/json.rb#249 def as_json(options = T.unsafe(nil)); end end # source://activesupport//lib/active_support/core_ext/object/blank.rb#61 class FalseClass # source://activesupport//lib/active_support/core_ext/object/json.rb#89 def as_json(options = T.unsafe(nil)); end # +false+ is blank: # # false.blank? # => true # # @return [true] # # source://activesupport//lib/active_support/core_ext/object/blank.rb#67 def blank?; end # Returns +self+. # # source://activesupport//lib/active_support/core_ext/object/to_query.rb#34 def to_param; end end # source://activesupport//lib/active_support/core_ext/file/atomic.rb#5 class File < ::IO class << self # Write to a file atomically. Useful for situations where you don't # want other processes or threads to see half-written files. # # File.atomic_write('important.file') do |file| # file.write('hello') # end # # This method needs to create a temporary file. By default it will create it # in the same directory as the destination file. If you don't like this # behavior you can provide a different directory but it must be on the # same physical filesystem as the file you're trying to write. # # File.atomic_write('/data/something.important', '/data/tmp') do |file| # file.write('hello') # end # # source://activesupport//lib/active_support/core_ext/file/atomic.rb#21 def atomic_write(file_name, temp_dir = T.unsafe(nil)); end # Private utility method. # # source://activesupport//lib/active_support/core_ext/file/atomic.rb#56 def probe_stat_in(dir); end end end # source://activesupport//lib/active_support/core_ext/object/json.rb#118 class Float < ::Numeric # Encoding Infinity or NaN to JSON should return "null". The default returns # "Infinity" or "NaN" which are not valid JSON. # # source://activesupport//lib/active_support/core_ext/object/json.rb#121 def as_json(options = T.unsafe(nil)); end end # source://activesupport//lib/active_support/core_ext/object/blank.rb#93 class Hash include ::Enumerable include ::ActiveSupport::DeepMergeable # source://activesupport//lib/active_support/core_ext/object/json.rb#172 def as_json(options = T.unsafe(nil)); end # Validates all keys in a hash match *valid_keys, raising # +ArgumentError+ on a mismatch. # # Note that keys are treated differently than HashWithIndifferentAccess, # meaning that string and symbol keys will not match. # # { name: 'Rob', years: '28' }.assert_valid_keys(:name, :age) # => raises "ArgumentError: Unknown key: :years. Valid keys are: :name, :age" # { name: 'Rob', age: '28' }.assert_valid_keys('name', 'age') # => raises "ArgumentError: Unknown key: :name. Valid keys are: 'name', 'age'" # { name: 'Rob', age: '28' }.assert_valid_keys(:name, :age) # => passes, raises nothing # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#48 def assert_valid_keys(*valid_keys); end # Hash#reject has its own definition, so this needs one too. # # source://activesupport//lib/active_support/core_ext/enumerable.rb#217 def compact_blank; end # Removes all blank values from the +Hash+ in place and returns self. # Uses Object#blank? for determining if a value is blank. # # h = { a: "", b: 1, c: nil, d: [], e: false, f: true } # h.compact_blank! # # => { b: 1, f: true } # # source://activesupport//lib/active_support/core_ext/enumerable.rb#227 def compact_blank!; end # :method: deep_merge! # :call-seq: deep_merge!(other_hash, &block) # # Same as #deep_merge, but modifies +self+. # # -- # Implemented by ActiveSupport::DeepMergeable#deep_merge!. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/hash/deep_merge.rb#39 def deep_merge?(other); end # Returns a new hash with all keys converted to strings. # This includes the keys from the root hash and from all # nested hashes and arrays. # # hash = { person: { name: 'Rob', age: '28' } } # # hash.deep_stringify_keys # # => {"person"=>{"name"=>"Rob", "age"=>"28"}} # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#84 def deep_stringify_keys; end # Destructively converts all keys to strings. # This includes the keys from the root hash and from all # nested hashes and arrays. # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#91 def deep_stringify_keys!; end # Returns a new hash with all keys converted to symbols, as long as # they respond to +to_sym+. This includes the keys from the root hash # and from all nested hashes and arrays. # # hash = { 'person' => { 'name' => 'Rob', 'age' => '28' } } # # hash.deep_symbolize_keys # # => {:person=>{:name=>"Rob", :age=>"28"}} # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#103 def deep_symbolize_keys; end # Destructively converts all keys to symbols, as long as they respond # to +to_sym+. This includes the keys from the root hash and from all # nested hashes and arrays. # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#110 def deep_symbolize_keys!; end # Returns a new hash with all keys converted by the block operation. # This includes the keys from the root hash and from all # nested hashes and arrays. # # hash = { person: { name: 'Rob', age: '28' } } # # hash.deep_transform_keys{ |key| key.to_s.upcase } # # => {"PERSON"=>{"NAME"=>"Rob", "AGE"=>"28"}} # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#65 def deep_transform_keys(&block); end # Destructively converts all keys by using the block operation. # This includes the keys from the root hash and from all # nested hashes and arrays. # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#72 def deep_transform_keys!(&block); end # Returns a new hash with all values converted by the block operation. # This includes the values from the root hash and from all # nested hashes and arrays. # # hash = { person: { name: 'Rob', age: '28' } } # # hash.deep_transform_values{ |value| value.to_s.upcase } # # => {person: {name: "ROB", age: "28"}} # # source://activesupport//lib/active_support/core_ext/hash/deep_transform_values.rb#12 def deep_transform_values(&block); end # Destructively converts all values by using the block operation. # This includes the values from the root hash and from all # nested hashes and arrays. # # source://activesupport//lib/active_support/core_ext/hash/deep_transform_values.rb#19 def deep_transform_values!(&block); end # Removes the given keys from hash and returns it. # hash = { a: true, b: false, c: nil } # hash.except!(:c) # => { a: true, b: false } # hash # => { a: true, b: false } # # source://activesupport//lib/active_support/core_ext/hash/except.rb#20 def except!(*keys); end # Removes and returns the key/value pairs matching the given keys. # # hash = { a: 1, b: 2, c: 3, d: 4 } # hash.extract!(:a, :b) # => {:a=>1, :b=>2} # hash # => {:c=>3, :d=>4} # # source://activesupport//lib/active_support/core_ext/hash/slice.rb#24 def extract!(*keys); end # By default, only instances of Hash itself are extractable. # Subclasses of Hash may implement this method and return # true to declare themselves as extractable. If a Hash # is extractable, Array#extract_options! pops it from # the Array when it is the last element of the Array. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/array/extract_options.rb#9 def extractable_options?; end # Returns an ActiveSupport::HashWithIndifferentAccess out of its receiver: # # { a: 1 }.with_indifferent_access['a'] # => 1 # Called when object is nested under an object that receives # #with_indifferent_access. This method will be called on the current object # by the enclosing object and is aliased to #with_indifferent_access by # default. Subclasses of Hash may override this method to return +self+ if # converting to an ActiveSupport::HashWithIndifferentAccess would not be # desirable. # # b = { b: 1 } # { a: b }.with_indifferent_access['a'] # calls b.nested_under_indifferent_access # # => {"b"=>1} # # source://activesupport//lib/active_support/core_ext/hash/indifferent_access.rb#9 def nested_under_indifferent_access; end # Merges the caller into +other_hash+. For example, # # options = options.reverse_merge(size: 25, velocity: 10) # # is equivalent to # # options = { size: 25, velocity: 10 }.merge(options) # # This is particularly useful for initializing an options hash # with default values. # # source://activesupport//lib/active_support/core_ext/hash/reverse_merge.rb#14 def reverse_merge(other_hash); end # Destructive +reverse_merge+. # # source://activesupport//lib/active_support/core_ext/hash/reverse_merge.rb#20 def reverse_merge!(other_hash); end # Destructive +reverse_merge+. # # source://activesupport//lib/active_support/core_ext/hash/reverse_merge.rb#20 def reverse_update(other_hash); end # Replaces the hash with only the given keys. # Returns a hash containing the removed key/value pairs. # # hash = { a: 1, b: 2, c: 3, d: 4 } # hash.slice!(:a, :b) # => {:c=>3, :d=>4} # hash # => {:a=>1, :b=>2} # # source://activesupport//lib/active_support/core_ext/hash/slice.rb#10 def slice!(*keys); end # Returns a new hash with all keys converted to strings. # # hash = { name: 'Rob', age: '28' } # # hash.stringify_keys # # => {"name"=>"Rob", "age"=>"28"} # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#10 def stringify_keys; end # Destructively converts all keys to strings. Same as # +stringify_keys+, but modifies +self+. # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#16 def stringify_keys!; end # Returns a new hash with all keys converted to symbols, as long as # they respond to +to_sym+. # # hash = { 'name' => 'Rob', 'age' => '28' } # # hash.symbolize_keys # # => {:name=>"Rob", :age=>"28"} # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#27 def symbolize_keys; end # Destructively converts all keys to symbols, as long as they respond # to +to_sym+. Same as +symbolize_keys+, but modifies +self+. # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#34 def symbolize_keys!; end # Returns a new hash with all keys converted to symbols, as long as # they respond to +to_sym+. # # hash = { 'name' => 'Rob', 'age' => '28' } # # hash.symbolize_keys # # => {:name=>"Rob", :age=>"28"} # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#27 def to_options; end # Destructively converts all keys to symbols, as long as they respond # to +to_sym+. Same as +symbolize_keys+, but modifies +self+. # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#34 def to_options!; end # Returns a string representation of the receiver suitable for use as a URL # query string: # # {name: 'David', nationality: 'Danish'}.to_query # # => "name=David&nationality=Danish" # # An optional namespace can be passed to enclose key names: # # {name: 'David', nationality: 'Danish'}.to_query('user') # # => "user%5Bname%5D=David&user%5Bnationality%5D=Danish" # # The string pairs "key=value" that conform the query string # are sorted lexicographically in ascending order. # # source://activesupport//lib/active_support/core_ext/object/to_query.rb#75 def to_param(namespace = T.unsafe(nil)); end # Returns a string representation of the receiver suitable for use as a URL # query string: # # {name: 'David', nationality: 'Danish'}.to_query # # => "name=David&nationality=Danish" # # An optional namespace can be passed to enclose key names: # # {name: 'David', nationality: 'Danish'}.to_query('user') # # => "user%5Bname%5D=David&user%5Bnationality%5D=Danish" # # The string pairs "key=value" that conform the query string # are sorted lexicographically in ascending order. # # source://activesupport//lib/active_support/core_ext/object/to_query.rb#75 def to_query(namespace = T.unsafe(nil)); end # Returns a string containing an XML representation of its receiver: # # { foo: 1, bar: 2 }.to_xml # # => # # # # # # 1 # # 2 # # # # To do so, the method loops over the pairs and builds nodes that depend on # the _values_. Given a pair +key+, +value+: # # * If +value+ is a hash there's a recursive call with +key+ as :root. # # * If +value+ is an array there's a recursive call with +key+ as :root, # and +key+ singularized as :children. # # * If +value+ is a callable object it must expect one or two arguments. Depending # on the arity, the callable is invoked with the +options+ hash as first argument # with +key+ as :root, and +key+ singularized as second argument. The # callable can add nodes by using options[:builder]. # # {foo: lambda { |options, key| options[:builder].b(key) }}.to_xml # # => "foo" # # * If +value+ responds to +to_xml+ the method is invoked with +key+ as :root. # # class Foo # def to_xml(options) # options[:builder].bar 'fooing!' # end # end # # { foo: Foo.new }.to_xml(skip_instruct: true) # # => # # # # fooing! # # # # * Otherwise, a node with +key+ as tag is created with a string representation of # +value+ as text node. If +value+ is +nil+ an attribute "nil" set to "true" is added. # Unless the option :skip_types exists and is true, an attribute "type" is # added as well according to the following mapping: # # XML_TYPE_NAMES = { # "Symbol" => "symbol", # "Integer" => "integer", # "BigDecimal" => "decimal", # "Float" => "float", # "TrueClass" => "boolean", # "FalseClass" => "boolean", # "Date" => "date", # "DateTime" => "dateTime", # "Time" => "dateTime" # } # # By default the root node is "hash", but that's configurable via the :root option. # # The default XML builder is a fresh instance of +Builder::XmlMarkup+. You can # configure your own builder with the :builder option. The method also accepts # options like :dasherize and friends, they are forwarded to the builder. # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#74 def to_xml(options = T.unsafe(nil)); end # Merges the caller into +other_hash+. For example, # # options = options.reverse_merge(size: 25, velocity: 10) # # is equivalent to # # options = { size: 25, velocity: 10 }.merge(options) # # This is particularly useful for initializing an options hash # with default values. # # source://activesupport//lib/active_support/core_ext/hash/reverse_merge.rb#14 def with_defaults(other_hash); end # Destructive +reverse_merge+. # # source://activesupport//lib/active_support/core_ext/hash/reverse_merge.rb#20 def with_defaults!(other_hash); end # Returns an ActiveSupport::HashWithIndifferentAccess out of its receiver: # # { a: 1 }.with_indifferent_access['a'] # => 1 # # source://activesupport//lib/active_support/core_ext/hash/indifferent_access.rb#9 def with_indifferent_access; end private # Support methods for deep transforming nested hashes and arrays. # # source://activesupport//lib/active_support/core_ext/hash/keys.rb#116 def _deep_transform_keys_in_object(object, &block); end # source://activesupport//lib/active_support/core_ext/hash/keys.rb#129 def _deep_transform_keys_in_object!(object, &block); end # Support methods for deep transforming nested hashes and arrays. # # source://activesupport//lib/active_support/core_ext/hash/deep_transform_values.rb#25 def _deep_transform_values_in_object(object, &block); end # source://activesupport//lib/active_support/core_ext/hash/deep_transform_values.rb#36 def _deep_transform_values_in_object!(object, &block); end class << self # Builds a Hash from XML just like Hash.from_xml, but also allows Symbol and YAML. # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#133 def from_trusted_xml(xml); end # Returns a Hash containing a collection of pairs when the key is the node name and the value is # its content # # xml = <<-XML # # # 1 # 2 # # XML # # hash = Hash.from_xml(xml) # # => {"hash"=>{"foo"=>1, "bar"=>2}} # # +DisallowedType+ is raised if the XML contains attributes with type="yaml" or # type="symbol". Use Hash.from_trusted_xml to # parse this XML. # # Custom +disallowed_types+ can also be passed in the form of an # array. # # xml = <<-XML # # # 1 # "David" # # XML # # hash = Hash.from_xml(xml, ['integer']) # # => ActiveSupport::XMLConverter::DisallowedType: Disallowed type attribute: "integer" # # Note that passing custom disallowed types will override the default types, # which are Symbol and YAML. # # source://activesupport//lib/active_support/core_ext/hash/conversions.rb#128 def from_xml(xml, disallowed_types = T.unsafe(nil)); end end end # :stopdoc: # # source://activesupport//lib/active_support/hash_with_indifferent_access.rb#443 HashWithIndifferentAccess = ActiveSupport::HashWithIndifferentAccess # source://activesupport//lib/active_support/core_ext/object/json.rb#153 class IO include ::Enumerable include ::File::Constants # source://activesupport//lib/active_support/core_ext/object/json.rb#154 def as_json(options = T.unsafe(nil)); end end class IO::Buffer include ::Comparable def initialize(*_arg0); end def <=>(_arg0); end def clear(*_arg0); end def copy(*_arg0); end def empty?; end def external?; end def free; end def get_string(*_arg0); end def get_value(_arg0, _arg1); end def hexdump; end def inspect; end def internal?; end def locked; end def locked?; end def mapped?; end def null?; end def pread(_arg0, _arg1, _arg2); end def pwrite(_arg0, _arg1, _arg2); end def read(_arg0, _arg1); end def readonly?; end def resize(_arg0); end def set_string(*_arg0); end def set_value(_arg0, _arg1, _arg2); end def size; end def slice(_arg0, _arg1); end def to_s; end def transfer; end def valid?; end def write(_arg0, _arg1); end class << self def for(_arg0); end def map(*_arg0); end end end class IO::Buffer::AccessError < ::RuntimeError; end class IO::Buffer::AllocationError < ::RuntimeError; end IO::Buffer::BIG_ENDIAN = T.let(T.unsafe(nil), Integer) IO::Buffer::DEFAULT_SIZE = T.let(T.unsafe(nil), Integer) IO::Buffer::EXTERNAL = T.let(T.unsafe(nil), Integer) IO::Buffer::HOST_ENDIAN = T.let(T.unsafe(nil), Integer) IO::Buffer::INTERNAL = T.let(T.unsafe(nil), Integer) class IO::Buffer::InvalidatedError < ::RuntimeError; end IO::Buffer::LITTLE_ENDIAN = T.let(T.unsafe(nil), Integer) IO::Buffer::LOCKED = T.let(T.unsafe(nil), Integer) class IO::Buffer::LockedError < ::RuntimeError; end IO::Buffer::MAPPED = T.let(T.unsafe(nil), Integer) IO::Buffer::NETWORK_ENDIAN = T.let(T.unsafe(nil), Integer) IO::Buffer::PAGE_SIZE = T.let(T.unsafe(nil), Integer) IO::Buffer::PRIVATE = T.let(T.unsafe(nil), Integer) IO::Buffer::READONLY = T.let(T.unsafe(nil), Integer) class IO::ConsoleMode def echo=(_arg0); end def raw(*_arg0); end def raw!(*_arg0); end private def initialize_copy(_arg0); end end class IO::EAGAINWaitReadable < ::Errno::EAGAIN include ::IO::WaitReadable end class IO::EAGAINWaitWritable < ::Errno::EAGAIN include ::IO::WaitWritable end class IO::EINPROGRESSWaitReadable < ::Errno::EINPROGRESS include ::IO::WaitReadable end class IO::EINPROGRESSWaitWritable < ::Errno::EINPROGRESS include ::IO::WaitWritable end IO::EWOULDBLOCKWaitReadable = IO::EAGAINWaitReadable IO::EWOULDBLOCKWaitWritable = IO::EAGAINWaitWritable IO::PRIORITY = T.let(T.unsafe(nil), Integer) IO::READABLE = T.let(T.unsafe(nil), Integer) IO::WRITABLE = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/core_ext/object/json.rb#236 class IPAddr # source://activesupport//lib/active_support/core_ext/object/json.rb#237 def as_json(options = T.unsafe(nil)); end end class Integer < ::Numeric; end # source://activesupport//lib/active_support/core_ext/kernel/reporting.rb#3 module Kernel private # Sets $VERBOSE to +true+ for the duration of the block and back to its # original value afterwards. # # source://activesupport//lib/active_support/core_ext/kernel/reporting.rb#20 def enable_warnings(&block); end # Sets $VERBOSE to +nil+ for the duration of the block and back to its original # value afterwards. # # silence_warnings do # value = noisy_call # no warning voiced # end # # noisy_call # warning voiced # # source://activesupport//lib/active_support/core_ext/kernel/reporting.rb#14 def silence_warnings(&block); end # Blocks and ignores any exception passed as argument if raised within the block. # # suppress(ZeroDivisionError) do # 1/0 # puts 'This code is NOT reached' # end # # puts 'This code gets executed and nothing related to ZeroDivisionError was seen' # # source://activesupport//lib/active_support/core_ext/kernel/reporting.rb#41 def suppress(*exception_classes); end # Sets $VERBOSE for the duration of the block and back to its original # value afterwards. # # source://activesupport//lib/active_support/core_ext/kernel/reporting.rb#26 def with_warnings(flag); end class << self # Sets $VERBOSE to +true+ for the duration of the block and back to its # original value afterwards. # # source://activesupport//lib/active_support/core_ext/kernel/reporting.rb#20 def enable_warnings(&block); end # Sets $VERBOSE to +nil+ for the duration of the block and back to its original # value afterwards. # # silence_warnings do # value = noisy_call # no warning voiced # end # # noisy_call # warning voiced # # source://activesupport//lib/active_support/core_ext/kernel/reporting.rb#14 def silence_warnings(&block); end # Blocks and ignores any exception passed as argument if raised within the block. # # suppress(ZeroDivisionError) do # 1/0 # puts 'This code is NOT reached' # end # # puts 'This code gets executed and nothing related to ZeroDivisionError was seen' # # source://activesupport//lib/active_support/core_ext/kernel/reporting.rb#41 def suppress(*exception_classes); end # Sets $VERBOSE for the duration of the block and back to its original # value afterwards. # # source://activesupport//lib/active_support/core_ext/kernel/reporting.rb#26 def with_warnings(flag); end end end class LoadError < ::ScriptError include ::DidYouMean::Correctable end # == Attribute Accessors per Thread # # Extends the module object with class/module and instance accessors for # class/module attributes, just like the native attr* accessors for instance # attributes, but does so on a per-thread basis. # # So the values are scoped within the Thread.current space under the class name # of the module. # # Note that it can also be scoped per-fiber if +Rails.application.config.active_support.isolation_level+ # is set to +:fiber+. # # source://activesupport//lib/active_support/core_ext/module/attribute_accessors.rb#8 class Module # source://activesupport//lib/active_support/core_ext/object/json.rb#53 def as_json(options = T.unsafe(nil)); end # Defines both class and instance accessors for class attributes. # All class and instance methods created will be public, even if # this method is called with a private or protected access modifier. # # module HairColors # mattr_accessor :hair_colors # end # # class Person # include HairColors # end # # HairColors.hair_colors = [:brown, :black, :blonde, :red] # HairColors.hair_colors # => [:brown, :black, :blonde, :red] # Person.new.hair_colors # => [:brown, :black, :blonde, :red] # # If a subclass changes the value then that would also change the value for # parent class. Similarly if parent class changes the value then that would # change the value of subclasses too. # # class Citizen < Person # end # # Citizen.new.hair_colors << :blue # Person.new.hair_colors # => [:brown, :black, :blonde, :red, :blue] # # To omit the instance writer method, pass instance_writer: false. # To omit the instance reader method, pass instance_reader: false. # # module HairColors # mattr_accessor :hair_colors, instance_writer: false, instance_reader: false # end # # class Person # include HairColors # end # # Person.new.hair_colors = [:brown] # => NoMethodError # Person.new.hair_colors # => NoMethodError # # Or pass instance_accessor: false, to omit both instance methods. # # module HairColors # mattr_accessor :hair_colors, instance_accessor: false # end # # class Person # include HairColors # end # # Person.new.hair_colors = [:brown] # => NoMethodError # Person.new.hair_colors # => NoMethodError # # You can set a default value for the attribute. # # module HairColors # mattr_accessor :hair_colors, default: [:brown, :black, :blonde, :red] # mattr_accessor(:hair_styles) { [:long, :short] } # end # # class Person # include HairColors # end # # Person.class_variable_get("@@hair_colors") # => [:brown, :black, :blonde, :red] # Person.class_variable_get("@@hair_styles") # => [:long, :short] # # source://activesupport//lib/active_support/core_ext/module/attribute_accessors.rb#208 def cattr_accessor(*syms, instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), &blk); end # Defines a class attribute and creates a class and instance reader methods. # The underlying class variable is set to +nil+, if it is not previously # defined. All class and instance methods created will be public, even if # this method is called with a private or protected access modifier. # # module HairColors # mattr_reader :hair_colors # end # # HairColors.hair_colors # => nil # HairColors.class_variable_set("@@hair_colors", [:brown, :black]) # HairColors.hair_colors # => [:brown, :black] # # The attribute name must be a valid method name in Ruby. # # module Foo # mattr_reader :"1_Badname" # end # # => NameError: invalid attribute name: 1_Badname # # To omit the instance reader method, pass # instance_reader: false or instance_accessor: false. # # module HairColors # mattr_reader :hair_colors, instance_reader: false # end # # class Person # include HairColors # end # # Person.new.hair_colors # => NoMethodError # # You can set a default value for the attribute. # # module HairColors # mattr_reader :hair_colors, default: [:brown, :black, :blonde, :red] # mattr_reader(:hair_styles) { [:long, :short] } # end # # class Person # include HairColors # end # # Person.new.hair_colors # => [:brown, :black, :blonde, :red] # Person.new.hair_styles # => [:long, :short] # # @raise [TypeError] # # source://activesupport//lib/active_support/core_ext/module/attribute_accessors.rb#55 def cattr_reader(*syms, instance_reader: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), location: T.unsafe(nil)); end # Defines a class attribute and creates a class and instance writer methods to # allow assignment to the attribute. All class and instance methods created # will be public, even if this method is called with a private or protected # access modifier. # # module HairColors # mattr_writer :hair_colors # end # # class Person # include HairColors # end # # HairColors.hair_colors = [:brown, :black] # Person.class_variable_get("@@hair_colors") # => [:brown, :black] # Person.new.hair_colors = [:blonde, :red] # HairColors.class_variable_get("@@hair_colors") # => [:blonde, :red] # # To omit the instance writer method, pass # instance_writer: false or instance_accessor: false. # # module HairColors # mattr_writer :hair_colors, instance_writer: false # end # # class Person # include HairColors # end # # Person.new.hair_colors = [:blonde, :red] # => NoMethodError # # You can set a default value for the attribute. # # module HairColors # mattr_writer :hair_colors, default: [:brown, :black, :blonde, :red] # mattr_writer(:hair_styles) { [:long, :short] } # end # # class Person # include HairColors # end # # Person.class_variable_get("@@hair_colors") # => [:brown, :black, :blonde, :red] # Person.class_variable_get("@@hair_styles") # => [:long, :short] # # @raise [TypeError] # # source://activesupport//lib/active_support/core_ext/module/attribute_accessors.rb#121 def cattr_writer(*syms, instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), location: T.unsafe(nil)); end # Provides a +delegate+ class method to easily expose contained objects' # public methods as your own. # # ==== Options # * :to - Specifies the target object name as a symbol or string # * :prefix - Prefixes the new method with the target name or a custom prefix # * :allow_nil - If set to true, prevents a +Module::DelegationError+ # from being raised # * :private - If set to true, changes method visibility to private # # The macro receives one or more method names (specified as symbols or # strings) and the name of the target object via the :to option # (also a symbol or string). # # Delegation is particularly useful with Active Record associations: # # class Greeter < ActiveRecord::Base # def hello # 'hello' # end # # def goodbye # 'goodbye' # end # end # # class Foo < ActiveRecord::Base # belongs_to :greeter # delegate :hello, to: :greeter # end # # Foo.new.hello # => "hello" # Foo.new.goodbye # => NoMethodError: undefined method `goodbye' for # # # Multiple delegates to the same target are allowed: # # class Foo < ActiveRecord::Base # belongs_to :greeter # delegate :hello, :goodbye, to: :greeter # end # # Foo.new.goodbye # => "goodbye" # # Methods can be delegated to instance variables, class variables, or constants # by providing them as a symbols: # # class Foo # CONSTANT_ARRAY = [0,1,2,3] # @@class_array = [4,5,6,7] # # def initialize # @instance_array = [8,9,10,11] # end # delegate :sum, to: :CONSTANT_ARRAY # delegate :min, to: :@@class_array # delegate :max, to: :@instance_array # end # # Foo.new.sum # => 6 # Foo.new.min # => 4 # Foo.new.max # => 11 # # It's also possible to delegate a method to the class by using +:class+: # # class Foo # def self.hello # "world" # end # # delegate :hello, to: :class # end # # Foo.new.hello # => "world" # # Delegates can optionally be prefixed using the :prefix option. If the value # is true, the delegate methods are prefixed with the name of the object being # delegated to. # # Person = Struct.new(:name, :address) # # class Invoice < Struct.new(:client) # delegate :name, :address, to: :client, prefix: true # end # # john_doe = Person.new('John Doe', 'Vimmersvej 13') # invoice = Invoice.new(john_doe) # invoice.client_name # => "John Doe" # invoice.client_address # => "Vimmersvej 13" # # It is also possible to supply a custom prefix. # # class Invoice < Struct.new(:client) # delegate :name, :address, to: :client, prefix: :customer # end # # invoice = Invoice.new(john_doe) # invoice.customer_name # => 'John Doe' # invoice.customer_address # => 'Vimmersvej 13' # # The delegated methods are public by default. # Pass private: true to change that. # # class User < ActiveRecord::Base # has_one :profile # delegate :first_name, to: :profile # delegate :date_of_birth, to: :profile, private: true # # def age # Date.today.year - date_of_birth.year # end # end # # User.new.first_name # => "Tomas" # User.new.date_of_birth # => NoMethodError: private method `date_of_birth' called for # # User.new.age # => 2 # # If the target is +nil+ and does not respond to the delegated method a # +Module::DelegationError+ is raised. If you wish to instead return +nil+, # use the :allow_nil option. # # class User < ActiveRecord::Base # has_one :profile # delegate :age, to: :profile # end # # User.new.age # # => Module::DelegationError: User#age delegated to profile.age, but profile is nil # # But if not having a profile yet is fine and should not be an error # condition: # # class User < ActiveRecord::Base # has_one :profile # delegate :age, to: :profile, allow_nil: true # end # # User.new.age # nil # # Note that if the target is not +nil+ then the call is attempted regardless of the # :allow_nil option, and thus an exception is still raised if said object # does not respond to the method: # # class Foo # def initialize(bar) # @bar = bar # end # # delegate :name, to: :@bar, allow_nil: true # end # # Foo.new("Bar").name # raises NoMethodError: undefined method `name' # # The target method must be public, otherwise it will raise +NoMethodError+. # # source://activesupport//lib/active_support/core_ext/module/delegation.rb#171 def delegate(*methods, to: T.unsafe(nil), prefix: T.unsafe(nil), allow_nil: T.unsafe(nil), private: T.unsafe(nil)); end # When building decorators, a common pattern may emerge: # # class Partition # def initialize(event) # @event = event # end # # def person # detail.person || creator # end # # private # def respond_to_missing?(name, include_private = false) # @event.respond_to?(name, include_private) # end # # def method_missing(method, *args, &block) # @event.send(method, *args, &block) # end # end # # With Module#delegate_missing_to, the above is condensed to: # # class Partition # delegate_missing_to :@event # # def initialize(event) # @event = event # end # # def person # detail.person || creator # end # end # # The target can be anything callable within the object, e.g. instance # variables, methods, constants, etc. # # The delegated method must be public on the target, otherwise it will # raise +DelegationError+. If you wish to instead return +nil+, # use the :allow_nil option. # # The marshal_dump and _dump methods are exempt from # delegation due to possible interference when calling # Marshal.dump(object), should the delegation target method # of object add or remove instance variables. # # source://activesupport//lib/active_support/core_ext/module/delegation.rb#318 def delegate_missing_to(target, allow_nil: T.unsafe(nil)); end # deprecate :foo, deprecator: MyLib.deprecator # deprecate :foo, bar: "warning!", deprecator: MyLib.deprecator # # A deprecator is typically an instance of ActiveSupport::Deprecation, but you can also pass any object that responds # to deprecation_warning(deprecated_method_name, message, caller_backtrace) where you can implement your # custom warning behavior. # # class MyLib::Deprecator # def deprecation_warning(deprecated_method_name, message, caller_backtrace = nil) # message = "#{deprecated_method_name} is deprecated and will be removed from MyLibrary | #{message}" # Kernel.warn message # end # end # # source://activesupport//lib/active_support/core_ext/module/deprecation.rb#17 def deprecate(*method_names, deprecator: T.unsafe(nil), **options); end # Defines both class and instance accessors for class attributes. # All class and instance methods created will be public, even if # this method is called with a private or protected access modifier. # # module HairColors # mattr_accessor :hair_colors # end # # class Person # include HairColors # end # # HairColors.hair_colors = [:brown, :black, :blonde, :red] # HairColors.hair_colors # => [:brown, :black, :blonde, :red] # Person.new.hair_colors # => [:brown, :black, :blonde, :red] # # If a subclass changes the value then that would also change the value for # parent class. Similarly if parent class changes the value then that would # change the value of subclasses too. # # class Citizen < Person # end # # Citizen.new.hair_colors << :blue # Person.new.hair_colors # => [:brown, :black, :blonde, :red, :blue] # # To omit the instance writer method, pass instance_writer: false. # To omit the instance reader method, pass instance_reader: false. # # module HairColors # mattr_accessor :hair_colors, instance_writer: false, instance_reader: false # end # # class Person # include HairColors # end # # Person.new.hair_colors = [:brown] # => NoMethodError # Person.new.hair_colors # => NoMethodError # # Or pass instance_accessor: false, to omit both instance methods. # # module HairColors # mattr_accessor :hair_colors, instance_accessor: false # end # # class Person # include HairColors # end # # Person.new.hair_colors = [:brown] # => NoMethodError # Person.new.hair_colors # => NoMethodError # # You can set a default value for the attribute. # # module HairColors # mattr_accessor :hair_colors, default: [:brown, :black, :blonde, :red] # mattr_accessor(:hair_styles) { [:long, :short] } # end # # class Person # include HairColors # end # # Person.class_variable_get("@@hair_colors") # => [:brown, :black, :blonde, :red] # Person.class_variable_get("@@hair_styles") # => [:long, :short] # # source://activesupport//lib/active_support/core_ext/module/attribute_accessors.rb#208 def mattr_accessor(*syms, instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), &blk); end # Defines a class attribute and creates a class and instance reader methods. # The underlying class variable is set to +nil+, if it is not previously # defined. All class and instance methods created will be public, even if # this method is called with a private or protected access modifier. # # module HairColors # mattr_reader :hair_colors # end # # HairColors.hair_colors # => nil # HairColors.class_variable_set("@@hair_colors", [:brown, :black]) # HairColors.hair_colors # => [:brown, :black] # # The attribute name must be a valid method name in Ruby. # # module Foo # mattr_reader :"1_Badname" # end # # => NameError: invalid attribute name: 1_Badname # # To omit the instance reader method, pass # instance_reader: false or instance_accessor: false. # # module HairColors # mattr_reader :hair_colors, instance_reader: false # end # # class Person # include HairColors # end # # Person.new.hair_colors # => NoMethodError # # You can set a default value for the attribute. # # module HairColors # mattr_reader :hair_colors, default: [:brown, :black, :blonde, :red] # mattr_reader(:hair_styles) { [:long, :short] } # end # # class Person # include HairColors # end # # Person.new.hair_colors # => [:brown, :black, :blonde, :red] # Person.new.hair_styles # => [:long, :short] # # @raise [TypeError] # # source://activesupport//lib/active_support/core_ext/module/attribute_accessors.rb#55 def mattr_reader(*syms, instance_reader: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), location: T.unsafe(nil)); end # Defines a class attribute and creates a class and instance writer methods to # allow assignment to the attribute. All class and instance methods created # will be public, even if this method is called with a private or protected # access modifier. # # module HairColors # mattr_writer :hair_colors # end # # class Person # include HairColors # end # # HairColors.hair_colors = [:brown, :black] # Person.class_variable_get("@@hair_colors") # => [:brown, :black] # Person.new.hair_colors = [:blonde, :red] # HairColors.class_variable_get("@@hair_colors") # => [:blonde, :red] # # To omit the instance writer method, pass # instance_writer: false or instance_accessor: false. # # module HairColors # mattr_writer :hair_colors, instance_writer: false # end # # class Person # include HairColors # end # # Person.new.hair_colors = [:blonde, :red] # => NoMethodError # # You can set a default value for the attribute. # # module HairColors # mattr_writer :hair_colors, default: [:brown, :black, :blonde, :red] # mattr_writer(:hair_styles) { [:long, :short] } # end # # class Person # include HairColors # end # # Person.class_variable_get("@@hair_colors") # => [:brown, :black, :blonde, :red] # Person.class_variable_get("@@hair_styles") # => [:long, :short] # # @raise [TypeError] # # source://activesupport//lib/active_support/core_ext/module/attribute_accessors.rb#121 def mattr_writer(*syms, instance_writer: T.unsafe(nil), instance_accessor: T.unsafe(nil), default: T.unsafe(nil), location: T.unsafe(nil)); end # source://activesupport//lib/active_support/core_ext/module/redefine_method.rb#30 def method_visibility(method); end # Replaces the existing method definition, if there is one, with the passed # block as its body. # # source://activesupport//lib/active_support/core_ext/module/redefine_method.rb#17 def redefine_method(method, &block); end # Replaces the existing singleton method definition, if there is one, with # the passed block as its body. # # source://activesupport//lib/active_support/core_ext/module/redefine_method.rb#26 def redefine_singleton_method(method, &block); end # Removes the named method, if it exists. # # source://activesupport//lib/active_support/core_ext/module/remove_method.rb#7 def remove_possible_method(method); end # Removes the named singleton method, if it exists. # # source://activesupport//lib/active_support/core_ext/module/remove_method.rb#14 def remove_possible_singleton_method(method); end # Marks the named method as intended to be redefined, if it exists. # Suppresses the Ruby method redefinition warning. Prefer # #redefine_method where possible. # # source://activesupport//lib/active_support/core_ext/module/redefine_method.rb#7 def silence_redefinition_of_method(method); end end # source://activesupport//lib/active_support/core_ext/module/delegation.rb#13 Module::DELEGATION_RESERVED_KEYWORDS = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/core_ext/module/delegation.rb#14 Module::DELEGATION_RESERVED_METHOD_NAMES = T.let(T.unsafe(nil), Set) # Error generated by +delegate+ when a method is called on +nil+ and +allow_nil+ # option is not used. # # source://activesupport//lib/active_support/core_ext/module/delegation.rb#8 class Module::DelegationError < ::NoMethodError; end # source://activesupport//lib/active_support/core_ext/module/delegation.rb#10 Module::RUBY_RESERVED_KEYWORDS = T.let(T.unsafe(nil), Array) class NameError < ::StandardError include ::ErrorHighlight::CoreExt include ::DidYouMean::Correctable end # source://activesupport//lib/active_support/core_ext/object/blank.rb#50 class NilClass # source://activesupport//lib/active_support/core_ext/object/json.rb#95 def as_json(options = T.unsafe(nil)); end # +nil+ is blank: # # nil.blank? # => true # # @return [true] # # source://activesupport//lib/active_support/core_ext/object/blank.rb#56 def blank?; end # Returns +self+. # # source://activesupport//lib/active_support/core_ext/object/to_query.rb#20 def to_param; end # Calling +try+ on +nil+ always returns +nil+. # It becomes especially helpful when navigating through associations that may return +nil+. # # nil.try(:name) # => nil # # Without +try+ # @person && @person.children.any? && @person.children.first.name # # With +try+ # @person.try(:children).try(:first).try(:name) # # source://activesupport//lib/active_support/core_ext/object/try.rb#148 def try(*_arg0); end # Calling +try!+ on +nil+ always returns +nil+. # # nil.try!(:name) # => nil # # source://activesupport//lib/active_support/core_ext/object/try.rb#155 def try!(*_arg0); end end # source://activesupport//lib/active_support/core_ext/object/blank.rb#134 class Numeric include ::Comparable # source://activesupport//lib/active_support/core_ext/object/json.rb#113 def as_json(options = T.unsafe(nil)); end # No number is blank: # # 1.blank? # => false # 0.blank? # => false # # @return [false] # # source://activesupport//lib/active_support/core_ext/object/blank.rb#141 def blank?; end # Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes # # 2.bytes # => 2 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#15 def byte; end # Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes # # 2.bytes # => 2 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#15 def bytes; end # Returns the number of bytes equivalent to the exabytes provided. # # 2.exabytes # => 2_305_843_009_213_693_952 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#63 def exabyte; end # Returns the number of bytes equivalent to the exabytes provided. # # 2.exabytes # => 2_305_843_009_213_693_952 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#63 def exabytes; end # Returns the number of bytes equivalent to the gigabytes provided. # # 2.gigabytes # => 2_147_483_648 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#39 def gigabyte; end # Returns the number of bytes equivalent to the gigabytes provided. # # 2.gigabytes # => 2_147_483_648 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#39 def gigabytes; end # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#13 def html_safe?; end # Returns the number of bytes equivalent to the kilobytes provided. # # 2.kilobytes # => 2048 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#23 def kilobyte; end # Returns the number of bytes equivalent to the kilobytes provided. # # 2.kilobytes # => 2048 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#23 def kilobytes; end # Returns the number of bytes equivalent to the megabytes provided. # # 2.megabytes # => 2_097_152 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#31 def megabyte; end # Returns the number of bytes equivalent to the megabytes provided. # # 2.megabytes # => 2_097_152 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#31 def megabytes; end # Returns the number of bytes equivalent to the petabytes provided. # # 2.petabytes # => 2_251_799_813_685_248 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#55 def petabyte; end # Returns the number of bytes equivalent to the petabytes provided. # # 2.petabytes # => 2_251_799_813_685_248 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#55 def petabytes; end # Returns the number of bytes equivalent to the terabytes provided. # # 2.terabytes # => 2_199_023_255_552 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#47 def terabyte; end # Returns the number of bytes equivalent to the terabytes provided. # # 2.terabytes # => 2_199_023_255_552 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#47 def terabytes; end # Returns the number of bytes equivalent to the zettabytes provided. # # 2.zettabytes # => 2_361_183_241_434_822_606_848 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#71 def zettabyte; end # Returns the number of bytes equivalent to the zettabytes provided. # # 2.zettabytes # => 2_361_183_241_434_822_606_848 # # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#71 def zettabytes; end end # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#9 Numeric::EXABYTE = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#6 Numeric::GIGABYTE = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#4 Numeric::KILOBYTE = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#5 Numeric::MEGABYTE = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#8 Numeric::PETABYTE = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#7 Numeric::TERABYTE = T.let(T.unsafe(nil), Integer) # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#10 Numeric::ZETTABYTE = T.let(T.unsafe(nil), Integer) # -- # Most objects are cloneable, but not all. For example you can't dup methods: # # method(:puts).dup # => TypeError: allocator undefined for Method # # 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. # ++ # # source://activesupport//lib/active_support/core_ext/object/blank.rb#5 class Object < ::BasicObject include ::ActiveSupport::ToJsonWithActiveSupportEncoder include ::ActiveSupport::Dependencies::RequireDependency include ::Kernel include ::PP::ObjectMixin include ::ActiveSupport::Tryable # Provides a way to check whether some class acts like some other class based on the existence of # an appropriately-named marker method. # # A class that provides the same interface as SomeClass may define a marker method named # acts_like_some_class? to signal its compatibility to callers of # acts_like?(:some_class). # # For example, Active Support extends Date to define an acts_like_date? method, # and extends Time to define acts_like_time?. As a result, developers can call # x.acts_like?(:time) and x.acts_like?(:date) to test duck-type compatibility, # and classes that are able to act like Time can also define an acts_like_time? # method to interoperate. # # Note that the marker method is only expected to exist. It isn't called, so its body or return # value are irrelevant. # # ==== Example: A class that provides the same interface as String # # This class may define: # # class Stringish # def acts_like_string? # end # end # # Then client code can query for duck-type-safeness this way: # # Stringish.new.acts_like?(:string) # => true # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/object/acts_like.rb#33 def acts_like?(duck); end # source://activesupport//lib/active_support/core_ext/object/json.rb#59 def as_json(options = T.unsafe(nil)); end # An object is blank if it's false, empty, or a whitespace string. # For example, +nil+, '', ' ', [], {}, and +false+ are all blank. # # This simplifies # # !address || address.empty? # # to # # address.blank? # # @return [true, false] # # source://activesupport//lib/active_support/core_ext/object/blank.rb#18 def blank?; end # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#7 def html_safe?; end # Returns true if this object is included in the argument. # # When argument is a +Range+, +#cover?+ is used to properly handle inclusion # check within open ranges. Otherwise, argument must be any object which responds # to +#include?+. Usage: # # characters = ["Konata", "Kagami", "Tsukasa"] # "Konata".in?(characters) # => true # # For non +Range+ arguments, this will throw an +ArgumentError+ if the argument # doesn't respond to +#include?+. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/object/inclusion.rb#15 def in?(another_object); end # Returns a hash with string keys that maps instance variable names without "@" to their # corresponding values. # # class C # def initialize(x, y) # @x, @y = x, y # end # end # # C.new(0, 1).instance_values # => {"x" => 0, "y" => 1} # # source://activesupport//lib/active_support/core_ext/object/instance_variables.rb#14 def instance_values; end # Returns an array of instance variable names as strings including "@". # # class C # def initialize(x, y) # @x, @y = x, y # end # end # # C.new(0, 1).instance_variable_names # => ["@y", "@x"] # # source://activesupport//lib/active_support/core_ext/object/instance_variables.rb#30 def instance_variable_names; end # Returns the receiver if it's present otherwise returns +nil+. # object.presence is equivalent to # # object.present? ? object : nil # # For example, something like # # state = params[:state] if params[:state].present? # country = params[:country] if params[:country].present? # region = state || country || 'US' # # becomes # # region = params[:state].presence || params[:country].presence || 'US' # # @return [Object] # # source://activesupport//lib/active_support/core_ext/object/blank.rb#45 def presence; end # Returns the receiver if it's included in the argument otherwise returns +nil+. # Argument must be any object which responds to +#include?+. Usage: # # params[:bucket_type].presence_in %w( project calendar ) # # This will throw an +ArgumentError+ if the argument doesn't respond to +#include?+. # # @return [Object] # # source://activesupport//lib/active_support/core_ext/object/inclusion.rb#34 def presence_in(another_object); end # An object is present if it's not blank. # # @return [true, false] # # source://activesupport//lib/active_support/core_ext/object/blank.rb#25 def present?; end # Alias of to_s. # # source://activesupport//lib/active_support/core_ext/object/to_query.rb#7 def to_param; end # Converts an object into a string suitable for use as a URL query string, # using the given key as the param name. # # source://activesupport//lib/active_support/core_ext/object/to_query.rb#13 def to_query(key); end end # source://activesupport//lib/active_support/core_ext/object/json.rb#230 class Pathname # source://activesupport//lib/active_support/core_ext/object/json.rb#231 def as_json(options = T.unsafe(nil)); end end module Process extend ::ActiveSupport::ForkTracker::ModernCoreExt class << self # source://activesupport//lib/active_support/fork_tracker.rb#6 def _fork; end end end # source://activesupport//lib/active_support/core_ext/object/json.rb#242 class Process::Status # source://activesupport//lib/active_support/core_ext/object/json.rb#243 def as_json(options = T.unsafe(nil)); end end # source://activesupport//lib/active_support/core_ext/object/json.rb#159 class Range include ::Enumerable # source://activesupport//lib/active_support/core_ext/object/json.rb#160 def as_json(options = T.unsafe(nil)); end # Optimize range sum to use arithmetic progression if a block is not given and # we have a range of numeric values. # # source://activesupport//lib/active_support/core_ext/enumerable.rb#236 def sum(initial_value = T.unsafe(nil)); end end # source://activesupport//lib/active_support/core_ext/object/json.rb#141 class Regexp # source://activesupport//lib/active_support/core_ext/object/json.rb#142 def as_json(options = T.unsafe(nil)); end end # String inflections define new methods on the String class to transform names for different purposes. # For instance, you can figure out the name of a table from the name of a class. # # 'ScaleScore'.tableize # => "scale_scores" # # source://activesupport//lib/active_support/core_ext/object/blank.rb#103 class String include ::Comparable # Enables more predictable duck-typing on String-like classes. See Object#acts_like?. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/string/behavior.rb#5 def acts_like_string?; end # source://activesupport//lib/active_support/core_ext/object/json.rb#101 def as_json(options = T.unsafe(nil)); end # If you pass a single integer, returns a substring of one character at that # position. The first character of the string is at position 0, the next at # position 1, and so on. If a range is supplied, a substring containing # characters at offsets given by the range is returned. In both cases, if an # offset is negative, it is counted from the end of the string. Returns +nil+ # if the initial offset falls outside the string. Returns an empty string if # the beginning of the range is greater than the end of the string. # # str = "hello" # str.at(0) # => "h" # str.at(1..3) # => "ell" # str.at(-2) # => "l" # str.at(-2..-1) # => "lo" # str.at(5) # => nil # str.at(5..-1) # => "" # # If a Regexp is given, the matching portion of the string is returned. # If a String is given, that given string is returned if it occurs in # the string. In both cases, +nil+ is returned if there is no match. # # str = "hello" # str.at(/lo/) # => "lo" # str.at(/ol/) # => nil # str.at("lo") # => "lo" # str.at("ol") # => nil # # source://activesupport//lib/active_support/core_ext/string/access.rb#29 def at(position); end # A string is blank if it's empty or contains whitespaces only: # # ''.blank? # => true # ' '.blank? # => true # "\t\n\r".blank? # => true # ' blah '.blank? # => false # # Unicode whitespace is supported: # # "\u00a0".blank? # => true # # @return [true, false] # # source://activesupport//lib/active_support/core_ext/object/blank.rb#121 def blank?; end # By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize # is set to :lower then camelize produces lowerCamelCase. # # +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces. # # 'active_record'.camelize # => "ActiveRecord" # 'active_record'.camelize(:lower) # => "activeRecord" # 'active_record/errors'.camelize # => "ActiveRecord::Errors" # 'active_record/errors'.camelize(:lower) # => "activeRecord::Errors" # # See ActiveSupport::Inflector.camelize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#101 def camelcase(first_letter = T.unsafe(nil)); end # By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize # is set to :lower then camelize produces lowerCamelCase. # # +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces. # # 'active_record'.camelize # => "ActiveRecord" # 'active_record'.camelize(:lower) # => "activeRecord" # 'active_record/errors'.camelize # => "ActiveRecord::Errors" # 'active_record/errors'.camelize(:lower) # => "activeRecord::Errors" # # See ActiveSupport::Inflector.camelize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#101 def camelize(first_letter = T.unsafe(nil)); end # Creates a class name from a plural table name like \Rails does for table names to models. # Note that this returns a string and not a class. (To convert to an actual class # follow +classify+ with +constantize+.) # # 'ham_and_eggs'.classify # => "HamAndEgg" # 'posts'.classify # => "Post" # # See ActiveSupport::Inflector.classify. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#239 def classify; end # +constantize+ tries to find a declared constant with the name specified # in the string. It raises a NameError when the name is not in CamelCase # or is not initialized. # # 'Module'.constantize # => Module # 'Class'.constantize # => Class # 'blargle'.constantize # => NameError: wrong constant name blargle # # See ActiveSupport::Inflector.constantize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#73 def constantize; end # Replaces underscores with dashes in the string. # # 'puni_puni'.dasherize # => "puni-puni" # # See ActiveSupport::Inflector.dasherize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#148 def dasherize; end # Removes the rightmost segment from the constant expression in the string. # # 'Net::HTTP'.deconstantize # => "Net" # '::Net::HTTP'.deconstantize # => "::Net" # 'String'.deconstantize # => "" # '::String'.deconstantize # => "" # ''.deconstantize # => "" # # See ActiveSupport::Inflector.deconstantize. # # See also +demodulize+. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#177 def deconstantize; end # Removes the module part from the constant expression in the string. # # 'ActiveSupport::Inflector::Inflections'.demodulize # => "Inflections" # 'Inflections'.demodulize # => "Inflections" # '::Inflections'.demodulize # => "Inflections" # ''.demodulize # => '' # # See ActiveSupport::Inflector.demodulize. # # See also +deconstantize+. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#162 def demodulize; end # Converts the first character to lowercase. # # 'If they enjoyed The Matrix'.downcase_first # => "if they enjoyed The Matrix" # 'I'.downcase_first # => "i" # ''.downcase_first # => "" # # See ActiveSupport::Inflector.downcase_first. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#284 def downcase_first; end # Returns the first character. If a limit is supplied, returns a substring # from the beginning of the string until it reaches the limit value. If the # given limit is greater than or equal to the string length, returns a copy of self. # # str = "hello" # str.first # => "h" # str.first(1) # => "h" # str.first(2) # => "he" # str.first(0) # => "" # str.first(6) # => "hello" # # source://activesupport//lib/active_support/core_ext/string/access.rb#78 def first(limit = T.unsafe(nil)); end # Creates a foreign key name from a class name. # +separate_class_name_and_id_with_underscore+ sets whether # the method should put '_' between the name and 'id'. # # 'Message'.foreign_key # => "message_id" # 'Message'.foreign_key(false) # => "messageid" # 'Admin::Post'.foreign_key # => "post_id" # # See ActiveSupport::Inflector.foreign_key. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#297 def foreign_key(separate_class_name_and_id_with_underscore = T.unsafe(nil)); end # Returns a substring from the given position to the end of the string. # If the position is negative, it is counted from the end of the string. # # str = "hello" # str.from(0) # => "hello" # str.from(3) # => "lo" # str.from(-2) # => "lo" # # You can mix it with +to+ method and do fun things like: # # str = "hello" # str.from(0).to(-1) # => "hello" # str.from(1).to(-2) # => "ell" # # source://activesupport//lib/active_support/core_ext/string/access.rb#46 def from(position); end # Marks a string as trusted safe. It will be inserted into HTML with no # additional escaping performed. It is your responsibility to ensure that the # string contains no malicious content. This method is equivalent to the # +raw+ helper in views. It is recommended that you use +sanitize+ instead of # this method. It should never be called on user input. # # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#232 def html_safe; end # Capitalizes the first word, turns underscores into spaces, and (by default) strips a # trailing '_id' if present. # Like +titleize+, this is meant for creating pretty output. # # The capitalization of the first word can be turned off by setting the # optional parameter +capitalize+ to false. # By default, this parameter is true. # # The trailing '_id' can be kept and capitalized by setting the # optional parameter +keep_id_suffix+ to true. # By default, this parameter is false. # # 'employee_salary'.humanize # => "Employee salary" # 'author_id'.humanize # => "Author" # 'author_id'.humanize(capitalize: false) # => "author" # '_id'.humanize # => "Id" # 'author_id'.humanize(keep_id_suffix: true) # => "Author id" # # See ActiveSupport::Inflector.humanize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#262 def humanize(capitalize: T.unsafe(nil), keep_id_suffix: T.unsafe(nil)); end # Returns +true+ if string has utf_8 encoding. # # utf_8_str = "some string".encode "UTF-8" # iso_str = "some string".encode "ISO-8859-1" # # utf_8_str.is_utf8? # => true # iso_str.is_utf8? # => false # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/string/multibyte.rb#48 def is_utf8?; end # Returns the last character of the string. If a limit is supplied, returns a substring # from the end of the string until it reaches the limit value (counting backwards). If # the given limit is greater than or equal to the string length, returns a copy of self. # # str = "hello" # str.last # => "o" # str.last(1) # => "o" # str.last(2) # => "lo" # str.last(0) # => "" # str.last(6) # => "hello" # # source://activesupport//lib/active_support/core_ext/string/access.rb#92 def last(limit = T.unsafe(nil)); end # == Multibyte proxy # # +mb_chars+ is a multibyte safe proxy for string methods. # # It creates and returns an instance of the ActiveSupport::Multibyte::Chars class which # encapsulates the original string. A Unicode safe version of all the String methods are defined on this proxy # class. If the proxy class doesn't respond to a certain method, it's forwarded to the encapsulated string. # # >> "lj".mb_chars.upcase.to_s # => "LJ" # # NOTE: Ruby 2.4 and later support native Unicode case mappings: # # >> "lj".upcase # => "LJ" # # == Method chaining # # All the methods on the Chars proxy which normally return a string will return a Chars object. This allows # method chaining on the result of any of these methods. # # name.mb_chars.reverse.length # => 12 # # == Interoperability and configuration # # The Chars object tries to be as interchangeable with String objects as possible: sorting and comparing between # String and Char work like expected. The bang! methods change the internal string representation in the Chars # object. Interoperability problems can be resolved easily with a +to_s+ call. # # For more information about the methods defined on the Chars proxy see ActiveSupport::Multibyte::Chars. For # information about how to change the default Multibyte behavior see ActiveSupport::Multibyte. # # source://activesupport//lib/active_support/core_ext/string/multibyte.rb#37 def mb_chars; end # Replaces special characters in a string so that it may be used as part of a 'pretty' URL. # # If the optional parameter +locale+ is specified, # the word will be parameterized as a word of that language. # By default, this parameter is set to nil and it will use # the configured I18n.locale. # # class Person # def to_param # "#{id}-#{name.parameterize}" # end # end # # @person = Person.find(1) # # => # # # <%= link_to(@person.name, person_path) %> # # => Donald E. Knuth # # To preserve the case of the characters in a string, use the +preserve_case+ argument. # # class Person # def to_param # "#{id}-#{name.parameterize(preserve_case: true)}" # end # end # # @person = Person.find(1) # # => # # # <%= link_to(@person.name, person_path) %> # # => Donald E. Knuth # # See ActiveSupport::Inflector.parameterize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#215 def parameterize(separator: T.unsafe(nil), preserve_case: T.unsafe(nil), locale: T.unsafe(nil)); end # Returns the plural form of the word in the string. # # If the optional parameter +count+ is specified, # the singular form will be returned if count == 1. # For any other value of +count+ the plural will be returned. # # If the optional parameter +locale+ is specified, # the word will be pluralized as a word of that language. # By default, this parameter is set to :en. # You must define your own inflection rules for languages other than English. # # 'post'.pluralize # => "posts" # 'octopus'.pluralize # => "octopi" # 'sheep'.pluralize # => "sheep" # 'words'.pluralize # => "words" # 'the blue mailman'.pluralize # => "the blue mailmen" # 'CamelOctopus'.pluralize # => "CamelOctopi" # 'apple'.pluralize(1) # => "apple" # 'apple'.pluralize(2) # => "apples" # 'ley'.pluralize(:es) # => "leyes" # 'ley'.pluralize(1, :es) # => "ley" # # See ActiveSupport::Inflector.pluralize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#35 def pluralize(count = T.unsafe(nil), locale = T.unsafe(nil)); end # Returns a new string with all occurrences of the patterns removed. # str = "foo bar test" # str.remove(" test") # => "foo bar" # str.remove(" test", /bar/) # => "foo " # str # => "foo bar test" # # source://activesupport//lib/active_support/core_ext/string/filters.rb#32 def remove(*patterns); end # Alters the string by removing all occurrences of the patterns. # str = "foo bar test" # str.remove!(" test", /bar/) # => "foo " # str # => "foo " # # source://activesupport//lib/active_support/core_ext/string/filters.rb#40 def remove!(*patterns); end # +safe_constantize+ tries to find a declared constant with the name specified # in the string. It returns +nil+ when the name is not in CamelCase # or is not initialized. # # 'Module'.safe_constantize # => Module # 'Class'.safe_constantize # => Class # 'blargle'.safe_constantize # => nil # # See ActiveSupport::Inflector.safe_constantize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#86 def safe_constantize; end # The reverse of +pluralize+, returns the singular form of a word in a string. # # If the optional parameter +locale+ is specified, # the word will be singularized as a word of that language. # By default, this parameter is set to :en. # You must define your own inflection rules for languages other than English. # # 'posts'.singularize # => "post" # 'octopi'.singularize # => "octopus" # 'sheep'.singularize # => "sheep" # 'word'.singularize # => "word" # 'the blue mailmen'.singularize # => "the blue mailman" # 'CamelOctopi'.singularize # => "CamelOctopus" # 'leyes'.singularize(:es) # => "ley" # # See ActiveSupport::Inflector.singularize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#60 def singularize(locale = T.unsafe(nil)); end # Returns the string, first removing all whitespace on both ends of # the string, and then changing remaining consecutive whitespace # groups into one space each. # # Note that it handles both ASCII and Unicode whitespace. # # %{ Multi-line # string }.squish # => "Multi-line string" # " foo bar \n \t boo".squish # => "foo bar boo" # # source://activesupport//lib/active_support/core_ext/string/filters.rb#13 def squish; end # Performs a destructive squish. See String#squish. # str = " foo bar \n \t boo" # str.squish! # => "foo bar boo" # str # => "foo bar boo" # # source://activesupport//lib/active_support/core_ext/string/filters.rb#21 def squish!; end # Creates the name of a table like \Rails does for models to table names. This method # uses the +pluralize+ method on the last word in the string. # # 'RawScaledScorer'.tableize # => "raw_scaled_scorers" # 'ham_and_egg'.tableize # => "ham_and_eggs" # 'fancyCategory'.tableize # => "fancy_categories" # # See ActiveSupport::Inflector.tableize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#227 def tableize; end # Capitalizes all the words and replaces some characters in the string to create # a nicer looking title. +titleize+ is meant for creating pretty output. It is not # used in the \Rails internals. # # The trailing '_id','Id'.. can be kept and capitalized by setting the # optional parameter +keep_id_suffix+ to true. # By default, this parameter is false. # # 'man from the boondocks'.titleize # => "Man From The Boondocks" # 'x-men: the last stand'.titleize # => "X Men: The Last Stand" # 'string_ending_with_id'.titleize(keep_id_suffix: true) # => "String Ending With Id" # # See ActiveSupport::Inflector.titleize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#126 def titlecase(keep_id_suffix: T.unsafe(nil)); end # Capitalizes all the words and replaces some characters in the string to create # a nicer looking title. +titleize+ is meant for creating pretty output. It is not # used in the \Rails internals. # # The trailing '_id','Id'.. can be kept and capitalized by setting the # optional parameter +keep_id_suffix+ to true. # By default, this parameter is false. # # 'man from the boondocks'.titleize # => "Man From The Boondocks" # 'x-men: the last stand'.titleize # => "X Men: The Last Stand" # 'string_ending_with_id'.titleize(keep_id_suffix: true) # => "String Ending With Id" # # See ActiveSupport::Inflector.titleize. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#126 def titleize(keep_id_suffix: T.unsafe(nil)); end # Returns a substring from the beginning of the string to the given position. # If the position is negative, it is counted from the end of the string. # # str = "hello" # str.to(0) # => "h" # str.to(3) # => "hell" # str.to(-2) # => "hell" # # You can mix it with +from+ method and do fun things like: # # str = "hello" # str.from(0).to(-1) # => "hello" # str.from(1).to(-2) # => "ell" # # source://activesupport//lib/active_support/core_ext/string/access.rb#63 def to(position); end # Converts a string to a Date value. # # "1-1-2012".to_date # => Sun, 01 Jan 2012 # "01/01/2012".to_date # => Sun, 01 Jan 2012 # "2012-12-13".to_date # => Thu, 13 Dec 2012 # "12/13/2012".to_date # => ArgumentError: invalid date # # source://activesupport//lib/active_support/core_ext/string/conversions.rb#47 def to_date; end # Converts a string to a DateTime value. # # "1-1-2012".to_datetime # => Sun, 01 Jan 2012 00:00:00 +0000 # "01/01/2012 23:59:59".to_datetime # => Sun, 01 Jan 2012 23:59:59 +0000 # "2012-12-13 12:50".to_datetime # => Thu, 13 Dec 2012 12:50:00 +0000 # "12/13/2012".to_datetime # => ArgumentError: invalid date # # source://activesupport//lib/active_support/core_ext/string/conversions.rb#57 def to_datetime; end # Converts a string to a Time value. # The +form+ can be either +:utc+ or +:local+ (default +:local+). # # The time is parsed using Time.parse method. # If +form+ is +:local+, then the time is in the system timezone. # If the date part is missing then the current date is used and if # the time part is missing then it is assumed to be 00:00:00. # # "13-12-2012".to_time # => 2012-12-13 00:00:00 +0100 # "06:12".to_time # => 2012-12-13 06:12:00 +0100 # "2012-12-13 06:12".to_time # => 2012-12-13 06:12:00 +0100 # "2012-12-13T06:12".to_time # => 2012-12-13 06:12:00 +0100 # "2012-12-13T06:12".to_time(:utc) # => 2012-12-13 06:12:00 UTC # "12/13/2012".to_time # => ArgumentError: argument out of range # "1604326192".to_time # => ArgumentError: argument out of range # # source://activesupport//lib/active_support/core_ext/string/conversions.rb#22 def to_time(form = T.unsafe(nil)); end # Truncates a given +text+ to length truncate_to if +text+ is longer than truncate_to: # # 'Once upon a time in a world far far away'.truncate(27) # # => "Once upon a time in a wo..." # # Pass a string or regexp :separator to truncate +text+ at a natural break: # # 'Once upon a time in a world far far away'.truncate(27, separator: ' ') # # => "Once upon a time in a..." # # 'Once upon a time in a world far far away'.truncate(27, separator: /\s/) # # => "Once upon a time in a..." # # The last characters will be replaced with the :omission string (defaults to "..."). # The total length will not exceed truncate_to unless both +text+ and :omission # are longer than truncate_to: # # 'And they found that many people were sleeping better.'.truncate(25, omission: '... (continued)') # # => "And they f... (continued)" # # 'And they found that many people were sleeping better.'.truncate(4, omission: '... (continued)') # # => "... (continued)" # # source://activesupport//lib/active_support/core_ext/string/filters.rb#70 def truncate(truncate_to, options = T.unsafe(nil)); end # Truncates +text+ to at most truncate_to bytes in length without # breaking string encoding by splitting multibyte characters or breaking # grapheme clusters ("perceptual characters") by truncating at combining # characters. # # >> "🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪".size # => 20 # >> "🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪".bytesize # => 80 # >> "🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪".truncate_bytes(20) # => "🔪🔪🔪🔪…" # # The truncated text ends with the :omission string, defaulting # to "…", for a total length not exceeding truncate_to. # # Raises +ArgumentError+ when the bytesize of :omission exceeds truncate_to. # # source://activesupport//lib/active_support/core_ext/string/filters.rb#101 def truncate_bytes(truncate_to, omission: T.unsafe(nil)); end # Truncates a given +text+ after a given number of words (words_count): # # 'Once upon a time in a world far far away'.truncate_words(4) # # => "Once upon a time..." # # Pass a string or regexp :separator to specify a different separator of words: # # 'Once
upon
a
time
in
a
world'.truncate_words(5, separator: '
') # # => "Once
upon
a
time
in..." # # The last characters will be replaced with the :omission string (defaults to "..."): # # 'And they found that many people were sleeping better.'.truncate_words(5, omission: '... (continued)') # # => "And they found that many... (continued)" # # source://activesupport//lib/active_support/core_ext/string/filters.rb#142 def truncate_words(words_count, options = T.unsafe(nil)); end # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string. # # +underscore+ will also change '::' to '/' to convert namespaces to paths. # # 'ActiveModel'.underscore # => "active_model" # 'ActiveModel::Errors'.underscore # => "active_model/errors" # # See ActiveSupport::Inflector.underscore. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#139 def underscore; end # Converts the first character to uppercase. # # 'what a Lovely Day'.upcase_first # => "What a Lovely Day" # 'w'.upcase_first # => "W" # ''.upcase_first # => "" # # See ActiveSupport::Inflector.upcase_first. # # source://activesupport//lib/active_support/core_ext/string/inflections.rb#273 def upcase_first; end end # source://activesupport//lib/active_support/core_ext/object/blank.rb#104 String::BLANK_RE = T.let(T.unsafe(nil), Regexp) # source://activesupport//lib/active_support/core_ext/object/blank.rb#105 String::ENCODED_BLANKS = T.let(T.unsafe(nil), Concurrent::Map) # source://activesupport//lib/active_support/core_ext/object/json.rb#76 class Struct include ::Enumerable # source://activesupport//lib/active_support/core_ext/object/json.rb#77 def as_json(options = T.unsafe(nil)); end end # source://activesupport//lib/active_support/core_ext/object/json.rb#106 class Symbol include ::Comparable # source://activesupport//lib/active_support/core_ext/object/json.rb#107 def as_json(options = T.unsafe(nil)); end end class Thread # source://activesupport//lib/active_support/isolated_execution_state.rb#9 def active_support_execution_state; end # source://activesupport//lib/active_support/isolated_execution_state.rb#9 def active_support_execution_state=(_arg0); end end # source://activesupport//lib/active_support/core_ext/object/blank.rb#146 class Time include ::Comparable include ::DateAndTime::Zones include ::DateAndTime::Calculations # source://activesupport//lib/active_support/core_ext/time/calculations.rb#300 def +(other); end # Time#- can also be used to determine the number of seconds between two Time instances. # We're layering on additional behavior so that ActiveSupport::TimeWithZone instances # are coerced into values that Time#- will recognize # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#323 def -(other); end # Layers additional behavior on Time#<=> so that DateTime and ActiveSupport::TimeWithZone instances # can be chronologically compared with a Time # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#332 def <=>(other); end # Duck-types as a Time-like class. See Object#acts_like?. # # @return [Boolean] # # source://activesupport//lib/active_support/core_ext/time/acts_like.rb#7 def acts_like_time?; end # Uses Date to provide precise Time calculations for years, months, and days # according to the proleptic Gregorian calendar. The +options+ parameter # takes a hash with any of these keys: :years, :months, # :weeks, :days, :hours, :minutes, # :seconds. # # Time.new(2015, 8, 1, 14, 35, 0).advance(seconds: 1) # => 2015-08-01 14:35:01 -0700 # Time.new(2015, 8, 1, 14, 35, 0).advance(minutes: 1) # => 2015-08-01 14:36:00 -0700 # Time.new(2015, 8, 1, 14, 35, 0).advance(hours: 1) # => 2015-08-01 15:35:00 -0700 # Time.new(2015, 8, 1, 14, 35, 0).advance(days: 1) # => 2015-08-02 14:35:00 -0700 # Time.new(2015, 8, 1, 14, 35, 0).advance(weeks: 1) # => 2015-08-08 14:35:00 -0700 # # Just like Date#advance, increments are applied in order of time units from # largest to smallest. This order can affect the result around the end of a # month. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#202 def advance(options); end # Returns a new Time representing the time a number of seconds ago, this is basically a wrapper around the Numeric extension # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#228 def ago(seconds); end # source://activesupport//lib/active_support/core_ext/object/json.rb#195 def as_json(options = T.unsafe(nil)); end # Returns a new Time representing the start of the day (0:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#241 def at_beginning_of_day; end # Returns a new Time representing the start of the hour (x:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#270 def at_beginning_of_hour; end # Returns a new Time representing the start of the minute (x:xx:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#286 def at_beginning_of_minute; end # Returns a new Time representing the end of the day, 23:59:59.999999 # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#259 def at_end_of_day; end # Returns a new Time representing the end of the hour, x:59:59.999999 # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#276 def at_end_of_hour; end # Returns a new Time representing the end of the minute, x:xx:59.999999 # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#292 def at_end_of_minute; end # Returns a new Time representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#249 def at_midday; end # Returns a new Time representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#249 def at_middle_of_day; end # Returns a new Time representing the start of the day (0:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#241 def at_midnight; end # Returns a new Time representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#249 def at_noon; end # Returns a new Time representing the start of the day (0:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#241 def beginning_of_day; end # Returns a new Time representing the start of the hour (x:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#270 def beginning_of_hour; end # Returns a new Time representing the start of the minute (x:xx:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#286 def beginning_of_minute; end # No Time is blank: # # Time.now.blank? # => false # # @return [false] # # source://activesupport//lib/active_support/core_ext/object/blank.rb#152 def blank?; end # Returns a new Time where one or more of the elements have been changed according # to the +options+ parameter. The time options (:hour, :min, # :sec, :usec, :nsec) reset cascadingly, so if only # the hour is passed, then minute, sec, usec, and nsec is set to 0. If the hour # and minute is passed, then sec, usec, and nsec is set to 0. The +options+ parameter # takes a hash with any of these keys: :year, :month, :day, # :hour, :min, :sec, :usec, :nsec, # :offset. Pass either :usec or :nsec, not both. # # Time.new(2012, 8, 29, 22, 35, 0).change(day: 1) # => Time.new(2012, 8, 1, 22, 35, 0) # Time.new(2012, 8, 29, 22, 35, 0).change(year: 1981, day: 1) # => Time.new(1981, 8, 1, 22, 35, 0) # Time.new(2012, 8, 29, 22, 35, 0).change(year: 1981, hour: 0) # => Time.new(1981, 8, 29, 0, 0, 0) # # @raise [ArgumentError] # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#138 def change(options); end # Layers additional behavior on Time#<=> so that DateTime and ActiveSupport::TimeWithZone instances # can be chronologically compared with a Time # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#332 def compare_with_coercion(other); end # Returns a new Time representing the end of the day, 23:59:59.999999 # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#259 def end_of_day; end # Returns a new Time representing the end of the hour, x:59:59.999999 # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#276 def end_of_hour; end # Returns a new Time representing the end of the minute, x:xx:59.999999 # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#292 def end_of_minute; end # Layers additional behavior on Time#eql? so that ActiveSupport::TimeWithZone instances # can be eql? to an equivalent Time # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#347 def eql?(other); end # Layers additional behavior on Time#eql? so that ActiveSupport::TimeWithZone instances # can be eql? to an equivalent Time # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#347 def eql_with_coercion(other); end # Returns a formatted string of the offset from UTC, or an alternative # string if the time zone is already UTC. # # Time.local(2000).formatted_offset # => "-06:00" # Time.local(2000).formatted_offset(false) # => "-0600" # # source://activesupport//lib/active_support/core_ext/time/conversions.rb#69 def formatted_offset(colon = T.unsafe(nil), alternate_utc_string = T.unsafe(nil)); end # Returns a new Time representing the time a number of seconds since the instance time # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#233 def in(seconds); end # Returns a new Time representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#249 def midday; end # Returns a new Time representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#249 def middle_of_day; end # Returns a new Time representing the start of the day (0:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#241 def midnight; end # Time#- can also be used to determine the number of seconds between two Time instances. # We're layering on additional behavior so that ActiveSupport::TimeWithZone instances # are coerced into values that Time#- will recognize # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#323 def minus_with_coercion(other); end # source://activesupport//lib/active_support/core_ext/time/calculations.rb#310 def minus_with_duration(other); end # source://activesupport//lib/active_support/core_ext/time/calculations.rb#310 def minus_without_coercion(other); end # Returns a new time the specified number of days in the future. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#361 def next_day(days = T.unsafe(nil)); end # Returns a new time the specified number of months in the future. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#371 def next_month(months = T.unsafe(nil)); end # Returns a new time the specified number of years in the future. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#381 def next_year(years = T.unsafe(nil)); end # Returns a new Time representing the middle of the day (12:00) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#249 def noon; end # source://activesupport//lib/active_support/core_ext/time/calculations.rb#300 def plus_with_duration(other); end # Returns a new time the specified number of days ago. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#356 def prev_day(days = T.unsafe(nil)); end # Returns a new time the specified number of months ago. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#366 def prev_month(months = T.unsafe(nil)); end # Returns a new time the specified number of years ago. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#376 def prev_year(years = T.unsafe(nil)); end # Returns the fraction of a second as a +Rational+ # # Time.new(2012, 8, 29, 0, 0, 0.5).sec_fraction # => (1/2) # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#107 def sec_fraction; end # Returns the number of seconds since 00:00:00. # # Time.new(2012, 8, 29, 0, 0, 0).seconds_since_midnight # => 0.0 # Time.new(2012, 8, 29, 12, 34, 56).seconds_since_midnight # => 45296.0 # Time.new(2012, 8, 29, 23, 59, 59).seconds_since_midnight # => 86399.0 # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#91 def seconds_since_midnight; end # Returns the number of seconds until 23:59:59. # # Time.new(2012, 8, 29, 0, 0, 0).seconds_until_end_of_day # => 86399 # Time.new(2012, 8, 29, 12, 34, 56).seconds_until_end_of_day # => 41103 # Time.new(2012, 8, 29, 23, 59, 59).seconds_until_end_of_day # => 0 # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#100 def seconds_until_end_of_day; end # Returns a new Time representing the time a number of seconds since the instance time # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#233 def since(seconds); end # source://activesupport//lib/active_support/deprecation/method_wrappers.rb#46 def to_default_s(*args, **_arg1, &block); end # Converts to a formatted string. See DATE_FORMATS for built-in formats. # # This method is aliased to to_formatted_s. # # time = Time.now # => 2007-01-18 06:10:17 -06:00 # # time.to_fs(:time) # => "06:10" # time.to_formatted_s(:time) # => "06:10" # # time.to_fs(:db) # => "2007-01-18 06:10:17" # time.to_fs(:number) # => "20070118061017" # time.to_fs(:short) # => "18 Jan 06:10" # time.to_fs(:long) # => "January 18, 2007 06:10" # time.to_fs(:long_ordinal) # => "January 18th, 2007 06:10" # time.to_fs(:rfc822) # => "Thu, 18 Jan 2007 06:10:17 -0600" # time.to_fs(:iso8601) # => "2007-01-18T06:10:17-06:00" # # == Adding your own time formats to +to_fs+ # You can add your own formats to the Time::DATE_FORMATS hash. # Use the format name as the hash key and either a strftime string # or Proc instance that takes a time argument as the value. # # # config/initializers/time_formats.rb # Time::DATE_FORMATS[:month_and_year] = '%B %Y' # Time::DATE_FORMATS[:short_ordinal] = ->(time) { time.strftime("%B #{time.day.ordinalize}") } # # source://activesupport//lib/active_support/core_ext/time/conversions.rb#53 def to_formatted_s(format = T.unsafe(nil)); end # Converts to a formatted string. See DATE_FORMATS for built-in formats. # # This method is aliased to to_formatted_s. # # time = Time.now # => 2007-01-18 06:10:17 -06:00 # # time.to_fs(:time) # => "06:10" # time.to_formatted_s(:time) # => "06:10" # # time.to_fs(:db) # => "2007-01-18 06:10:17" # time.to_fs(:number) # => "20070118061017" # time.to_fs(:short) # => "18 Jan 06:10" # time.to_fs(:long) # => "January 18, 2007 06:10" # time.to_fs(:long_ordinal) # => "January 18th, 2007 06:10" # time.to_fs(:rfc822) # => "Thu, 18 Jan 2007 06:10:17 -0600" # time.to_fs(:iso8601) # => "2007-01-18T06:10:17-06:00" # # == Adding your own time formats to +to_fs+ # You can add your own formats to the Time::DATE_FORMATS hash. # Use the format name as the hash key and either a strftime string # or Proc instance that takes a time argument as the value. # # # config/initializers/time_formats.rb # Time::DATE_FORMATS[:month_and_year] = '%B %Y' # Time::DATE_FORMATS[:short_ordinal] = ->(time) { time.strftime("%B #{time.day.ordinalize}") } # # source://activesupport//lib/active_support/core_ext/time/conversions.rb#53 def to_fs(format = T.unsafe(nil)); end class << self # Overriding case equality method so that it returns true for ActiveSupport::TimeWithZone instances # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#18 def ===(other); end # Layers additional behavior on Time.at so that ActiveSupport::TimeWithZone and DateTime # instances can be used when called with a single argument # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#45 def at(*args, **kwargs); end # Layers additional behavior on Time.at so that ActiveSupport::TimeWithZone and DateTime # instances can be used when called with a single argument # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#45 def at_with_coercion(*args, **kwargs); end # Returns Time.zone.now when Time.zone or config.time_zone are set, otherwise just returns Time.now. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#39 def current; end # Returns the number of days in the given month. # If no year is specified, it will use the current year. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#24 def days_in_month(month, year = T.unsafe(nil)); end # Returns the number of days in the given year. # If no year is specified, it will use the current year. # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#34 def days_in_year(year = T.unsafe(nil)); end # Returns a TimeZone instance matching the time zone provided. # Accepts the time zone in any format supported by Time.zone=. # Returns +nil+ for invalid time zones. # # Time.find_zone "America/New_York" # => # # Time.find_zone "NOT-A-TIMEZONE" # => nil # # source://activesupport//lib/active_support/core_ext/time/zones.rb#93 def find_zone(time_zone); end # Returns a TimeZone instance matching the time zone provided. # Accepts the time zone in any format supported by Time.zone=. # Raises an +ArgumentError+ for invalid time zones. # # Time.find_zone! "America/New_York" # => # # Time.find_zone! "EST" # => # # Time.find_zone! -5.hours # => # # Time.find_zone! nil # => nil # Time.find_zone! false # => false # Time.find_zone! "NOT-A-TIMEZONE" # => ArgumentError: Invalid Timezone: NOT-A-TIMEZONE # # source://activesupport//lib/active_support/core_ext/time/zones.rb#81 def find_zone!(time_zone); end # Creates a +Time+ instance from an RFC 3339 string. # # Time.rfc3339('1999-12-31T14:00:00-10:00') # => 2000-01-01 00:00:00 -1000 # # If the time or offset components are missing then an +ArgumentError+ will be raised. # # Time.rfc3339('1999-12-31') # => ArgumentError: invalid date # # @raise [ArgumentError] # # source://activesupport//lib/active_support/core_ext/time/calculations.rb#69 def rfc3339(str); end # Allows override of Time.zone locally inside supplied block; # resets Time.zone to existing value when done. # # class ApplicationController < ActionController::Base # around_action :set_time_zone # # private # def set_time_zone # Time.use_zone(current_user.timezone) { yield } # end # end # # NOTE: This won't affect any ActiveSupport::TimeWithZone # objects that have already been created, e.g. any model timestamp # attributes that have been read before the block will remain in # the application's default timezone. # # source://activesupport//lib/active_support/core_ext/time/zones.rb#61 def use_zone(time_zone); end # Returns the TimeZone for the current request, if this has been set (via Time.zone=). # If Time.zone has not been set for the current request, returns the TimeZone specified in config.time_zone. # # source://activesupport//lib/active_support/core_ext/time/zones.rb#14 def zone; end # Sets Time.zone to a TimeZone object for the current request/thread. # # This method accepts any of the following: # # * A \Rails TimeZone object. # * An identifier for a \Rails TimeZone object (e.g., "Eastern Time (US & Canada)", -5.hours). # * A +TZInfo::Timezone+ object. # * An identifier for a +TZInfo::Timezone+ object (e.g., "America/New_York"). # # Here's an example of how you might set Time.zone on a per request basis and reset it when the request is done. # current_user.time_zone just needs to return a string identifying the user's preferred time zone: # # class ApplicationController < ActionController::Base # around_action :set_time_zone # # def set_time_zone # if logged_in? # Time.use_zone(current_user.time_zone) { yield } # else # yield # end # end # end # # source://activesupport//lib/active_support/core_ext/time/zones.rb#41 def zone=(time_zone); end # Returns the value of attribute zone_default. # # source://activesupport//lib/active_support/core_ext/time/zones.rb#10 def zone_default; end # Sets the attribute zone_default # # @param value the value to set the attribute zone_default to. # # source://activesupport//lib/active_support/core_ext/time/zones.rb#10 def zone_default=(_arg0); end end end # source://activesupport//lib/active_support/core_ext/time/calculations.rb#14 Time::COMMON_YEAR_DAYS_IN_MONTH = T.let(T.unsafe(nil), Array) # source://activesupport//lib/active_support/core_ext/time/conversions.rb#8 Time::DATE_FORMATS = T.let(T.unsafe(nil), Hash) # source://activesupport//lib/active_support/core_ext/object/blank.rb#72 class TrueClass # source://activesupport//lib/active_support/core_ext/object/json.rb#83 def as_json(options = T.unsafe(nil)); end # +true+ is not blank: # # true.blank? # => false # # @return [false] # # source://activesupport//lib/active_support/core_ext/object/blank.rb#78 def blank?; end # Returns +self+. # # source://activesupport//lib/active_support/core_ext/object/to_query.rb#27 def to_param; end end # source://activesupport//lib/active_support/core_ext/object/json.rb#224 class URI::Generic include ::URI::RFC2396_REGEXP include ::URI # source://activesupport//lib/active_support/core_ext/object/json.rb#225 def as_json(options = T.unsafe(nil)); end end