From d4be863478181b126faaafe25cfb293dca058570 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 7 Jul 2017 16:36:51 +0200 Subject: TableBuilderHelper: Move `referential` variable to method At Robert's recommendation, use `try` instead of `respond_to?` because it's shorter. Also at Robert's recommendation, move the `referential` variable to a method to memoize it. This allows us to use it in other places without re-getting it and without having to do the `if` check again. He had suggested: def referential return @__referential__ if instance_variable_defined?(:@__referential__) @__referential__ = try(:current_referential) end but I think the `||=` version works the same way and is shorter. Still need to find out from him what our style guide rules for __variables__ are and why I should be using one here. Refs #3479 --- app/helpers/table_builder_helper.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/helpers/table_builder_helper.rb b/app/helpers/table_builder_helper.rb index e1b8b406d..d82f1eb03 100644 --- a/app/helpers/table_builder_helper.rb +++ b/app/helpers/table_builder_helper.rb @@ -104,10 +104,6 @@ module TableBuilderHelper end def tbody(collection, columns, selectable, links) - # Certain controllers don't define a `#current_referential`. In these - # cases, avoid a `NoMethodError`. - referential = current_referential if respond_to?(:current_referential) - content_tag :tbody do collection.map do |item| @@ -238,4 +234,10 @@ module TableBuilderHelper class: ('delete-action' if link.method == :delete) ) end + + def referential + # Certain controllers don't define a `#current_referential`. In these + # cases, avoid a `NoMethodError`. + @__referential__ ||= try(:current_referential) + end end -- cgit v1.2.3