Sha256: 89f85084a98186b60e07d5033c304c14b106051f3075dfad510b380c0778c071
Contents?: true
Size: 798 Bytes
Versions: 4
Compression:
Stored size: 798 Bytes
Contents
# frozen_string_literal: true require "active_support/concern" module Primer # :nodoc: module ViewHelper # DSL to allow components to register a View Helper for shorthand calls. # # Example: # # class MyComponent < ViewComponent::Base # include Primer::ViewHelper::Dsl # view_helper :my_component # end module Dsl extend ActiveSupport::Concern class ViewHelperAlreadyDefined < StandardError; end included do class_attribute :primer_helpers, instance_writer: false, default: {} end class_methods do def view_helper(name) raise ViewHelperAlreadyDefined, "#{name} is already defined" if primer_helpers[name].present? primer_helpers[name] = self end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems