Skip to content

Instantly share code, notes, and snippets.

@mattconnolly
Created April 22, 2014 05:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattconnolly/11166138 to your computer and use it in GitHub Desktop.
Save mattconnolly/11166138 to your computer and use it in GitHub Desktop.
passing blocks to a block - rspec fun.
context "deep copy some record" do
it do
duplicate = call_the_copy_method(original)
check_same = lambda { |&block| expect(block.call(duplicate)).to eq(block.call(original)) }
check_same.call { |x| x.name }
check_same.call { |x| x.list_of_shared_items }
check_same.call { |x| x.list_of_copied_items.map { |item| item.name } }
# same as:
expect(duplicate.name).to eq(original.name)
expect(duplicate.list_of_shared_items).to eq(list_of_shared_items)
expect(duplicate.list_of_copied_items.map { |item| item.name }).to eq(original.list_of_copied_items.map { |item| item.name })
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment