diff options
| author | Teddy Wing | 2017-09-01 16:04:59 +0200 | 
|---|---|---|
| committer | Teddy Wing | 2017-09-01 16:04:59 +0200 | 
| commit | 28db706443a912e8355e4c48488dc40c403e7f76 (patch) | |
| tree | b2eee6e7c47348ee632daed8d2edb8eaf7c7eea9 | |
| parent | b546fc6ef6d406a041f5a26f5855a02b7c8d1f2c (diff) | |
| download | chouette-core-28db706443a912e8355e4c48488dc40c403e7f76.tar.bz2 | |
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
| -rw-r--r-- | app/helpers/table_builder_helper/column.rb | 4 | ||||
| -rw-r--r-- | spec/helpers/table_builder_helper/column_spec.rb | 14 | 
2 files changed, 16 insertions, 2 deletions
| diff --git a/app/helpers/table_builder_helper/column.rb b/app/helpers/table_builder_helper/column.rb index b4c569882..5834cbc4e 100644 --- a/app/helpers/table_builder_helper/column.rb +++ b/app/helpers/table_builder_helper/column.rb @@ -35,8 +35,8 @@ module TableBuilderHelper        !@link_to.nil?      end -    def link_to(obj) -      @link_to.call(obj) +    def link_to(*objs) +      @link_to.call(*objs)      end    end 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 | 
