method
merged_options
v8.1.1 -
Show latest stable
- Class:
ActiveSupport::Cache::Store
merged_options(call_options)private
Merges the default options with ones specific to a method call.
# File activesupport/lib/active_support/cache.rb, line 908
def merged_options(call_options)
if call_options
call_options = normalize_options(call_options)
if call_options.key?(:expires_in) && call_options.key?(:expires_at)
raise ArgumentError, "Either :expires_in or :expires_at can be supplied, but not both"
end
expires_at = call_options.delete(:expires_at)
call_options[:expires_in] = (expires_at - Time.now) if expires_at
if call_options[:expires_in].is_a?(Time)
expires_in = call_options[:expires_in]
raise ArgumentError.new("expires_in parameter should not be a Time. Did you mean to use expires_at? Got: #{expires_in}")
end
if call_options[:expires_in]&.negative?
expires_in = call_options.delete(:expires_in)
handle_invalid_expires_in("Cache expiration time is invalid, cannot be negative: #{expires_in}")
end
if options.empty?
call_options
else
options.merge(call_options)
end
else
options
end
end Related methods
- Instance methods
- cleanup
- clear
- decrement
- delete
- delete_matched
- delete_multi
- exist?
- fetch
- fetch_multi
- increment
- mute
- namespace
- namespace=
- new_entry
- read
- read_counter
- read_multi
- silence!
- write
- write_counter
- write_multi
- Class methods
- new
- Private methods
-
retrieve_pool_options -
_instrument -
default_serializer -
delete_entry -
delete_multi_entries -
deserialize_entry -
expand_and_namespace_key -
expanded_key -
expanded_version -
get_entry_value -
handle_expired_entry -
handle_invalid_expires_in -
instrument -
instrument_multi -
key_matcher -
merged_options -
namespace_key -
normalize_key -
normalize_options -
normalize_version -
read_entry -
read_multi_entries -
save_block_result_to_cache -
serialize_entry -
truncate_key -
validate_options -
write_entry -
write_multi_entries