From 28db706443a912e8355e4c48488dc40c403e7f76 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 1 Sep 2017 16:04:59 +0200 Subject: TableBuilderHelper::Column#link_to: Allow arbitrary number of arguments This enables us to pass multiple objects into the lambda, so that we can for example build a URL using a Rails helper using multiple objects. Example: column.link_to(referential, item) lambda do |referential, item| some_path(referential, item) end --- spec/helpers/table_builder_helper/column_spec.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'spec/helpers') diff --git a/spec/helpers/table_builder_helper/column_spec.rb b/spec/helpers/table_builder_helper/column_spec.rb index e0bfd8a6a..1366d8c46 100644 --- a/spec/helpers/table_builder_helper/column_spec.rb +++ b/spec/helpers/table_builder_helper/column_spec.rb @@ -58,5 +58,19 @@ describe TableBuilderHelper::Column do ).link_to(train) ).to eq('TGV') end + + it "takes any number of arguments" do + train = double('train', kind: 'Shinkansen') + + expect( + TableBuilderHelper::Column.new( + name: 'unused', + attribute: nil, + link_to: lambda do |prefix, train| + "#{prefix}: #{train.kind}" + end + ).link_to('Type', train) + ).to eq('Type: Shinkansen') + end end end -- cgit v1.2.3