Permalink
Browse files

Merge pull request #26838 from Cohen-Carlisle/activerecord-slice-arra…

…y-args

allow ActiveRecord::Core#slice to use array arg
  • Loading branch information...
guilleiguaran committed Oct 31, 2016
2 parents 7056273 + 1d6b620 commit 3c9eb704e8b7fc175728f0340043b888120764cc
Showing with 15 additions and 1 deletion.
  1. +4 −0 activerecord/CHANGELOG.md
  2. +1 −1 activerecord/lib/active_record/core.rb
  3. +10 −0 activerecord/test/cases/base_test.rb
@@ -1,3 +1,7 @@
* Allow `slice` to take an array of methods (without need for splatting).
*Cohen Carlisle*
* Improved partial writes with HABTM and has many through associations
to fire database query only if relation has been changed.
@@ -538,7 +538,7 @@ def pretty_print(pp)
# Returns a hash of the given methods with their names as keys and returned values as values.
def slice(*methods)
Hash[methods.map! { |method| [method, public_send(method)] }].with_indifferent_access
Hash[methods.flatten.map! { |method| [method, public_send(method)] }].with_indifferent_access
end
private
@@ -1428,6 +1428,16 @@ def test_slice
assert_nil hash["firm_name"]
end
def test_slice_accepts_array_argument
attrs = {
title: "slice",
author_name: "@Cohen-Carlisle",
content: "accept arrays so I don't have to splat"
}.with_indifferent_access
topic = Topic.new(attrs)
assert_equal attrs, topic.slice(attrs.keys)
end
def test_default_values_are_deeply_dupped
company = Company.new
company.description << "foo"

0 comments on commit 3c9eb70

Please sign in to comment.