mjacobus/recruiter

View on GitHub
app/helpers/recruiter/show_helper.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Recruiter
  module ShowHelper
    def show_for(model, &block)
      if block_given?
        yield AttributeShower.new(model, self)
      end
    end

    class AttributeShower
      attr_reader :object, :helper

      def initialize(object, helper)
        @object = object
        @helper = helper
      end

      def show(attribute)
        render(
          object.class.human_attribute_name(attribute),
          object.send(attribute)
        )
      end

      def render(label, value)
        helper.render('application/show_item', label: label, value: value)
      end
    end
  end
end