instance method
index_with
Ruby on Rails 7.0.10
Since v6.0.6Signature
index_with(default = (no_default = true))
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 }
Parameters
-
defaultopt = (no_default = true)
Source
# File activesupport/lib/active_support/core_ext/enumerable.rb, line 131
def index_with(default = (no_default = true))
if block_given?
result = {}
each { |elem| result[elem] = yield(elem) }
result
elsif no_default
to_enum(:index_with) { size if respond_to?(:size) }
else
result = {}
each { |elem| result[elem] = default }
result
end
end
Defined in activesupport/lib/active_support/core_ext/enumerable.rb line 131
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in Enumerable