Skip to content

Commit

Permalink
Make helper macros public (#169)
Browse files Browse the repository at this point in the history
* Make helper macros public

* Update helper_macros.rb
  • Loading branch information
joeldrapper authored Mar 22, 2024
1 parent b7f7038 commit fab2934
Show file tree
Hide file tree
Showing 191 changed files with 198 additions and 224 deletions.
2 changes: 2 additions & 0 deletions lib/phlex/rails.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@ module Rails
autoload :FragmentFinder, "phlex/rails/fragment_finder"
end

CSV.extend Phlex::Rails::HelperMacros
CSV.prepend Phlex::Rails::CSV::Overrides

SGML.extend Phlex::Rails::SGML::ClassMethods
SGML.extend Phlex::Rails::HelperMacros
SGML.prepend Phlex::Rails::SGML::Overrides

HTML.extend Phlex::Rails::HTML::Format
Expand Down
40 changes: 6 additions & 34 deletions lib/phlex/rails/helper_macros.rb
Original file line number Diff line number Diff line change
@@ -1,28 +1,8 @@
# frozen_string_literal: true

# @api private
module Phlex::Rails::HelperMacros
def define_output_helper(method_name)
class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
# frozen_string_literal: true
def #{method_name}(...)
context = @_context
return if context.fragments && !context.in_target_fragment
output = helpers.#{method_name}(...)
case output
when ActiveSupport::SafeBuffer
@_context.target << output
end
nil
end
RUBY
end

def define_output_helper_with_capture_block(method_name)
# Register a Rails helper that returns safe HTML to be pushed to the output buffer.
def register_output_helper(method_name)
class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
# frozen_string_literal: true
Expand All @@ -46,17 +26,8 @@ def #{method_name}(*args, **kwargs, &block)
RUBY
end

def define_value_helper(method_name)
class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
# frozen_string_literal: true
def #{method_name}(...)
helpers.#{method_name}(...)
end
RUBY
end

def define_value_helper_with_capture_block(method_name)
# Register a Rails helper that returns a value that shouldn’t be pushed to the output buffer.
def register_value_helper(method_name)
class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
# frozen_string_literal: true
Expand All @@ -70,7 +41,8 @@ def #{method_name}(*args, **kwargs, &block)
RUBY
end

def define_builder_yielding_helper(method_name, builder)
# @api private
def register_builder_yielding_helper(method_name, builder)
class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
# frozen_string_literal: true
Expand Down
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/action_cable_meta_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ module Phlex::Rails::Helpers::ActionCableMetaTag
# Outputs an "action-cable-url" meta tag with the value of the URL specified in your configuration. Ensure this is above your JavaScript tag:
# @see https://api.rubyonrails.org/classes/ActionCable/Helpers/ActionCableHelper.html#method-i-action_cable_meta_tag
# @return [nil]
define_output_helper :action_cable_meta_tag
register_output_helper :action_cable_meta_tag
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/action_name.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ module Phlex::Rails::Helpers::ActionName
# @!method action_name
# @return [String] the name of the controller action, e.g. <code>"index"</code>
# @see https://api.rubyonrails.org/classes/AbstractController/Base.html#method-i-action_name
define_value_helper :action_name
register_value_helper :action_name
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/asset_path.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ module Phlex::Rails::Helpers::AssetPath
# @param skip_pipeline [bool]
# @param extname [String] e.g. <code>".js"</code>
# @see https://api.rubyonrails.org/classes/ActionView/Helpers/AssetUrlHelper.html#method-i-asset_path
define_value_helper :asset_path
register_value_helper :asset_path
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/asset_url.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::AssetURL
extend Phlex::Rails::HelperMacros

# @!method asset_url(...)
define_value_helper :asset_url
register_value_helper :asset_url
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/audio_path.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::AudioPath
extend Phlex::Rails::HelperMacros

# @!method audio_path(...)
define_value_helper :audio_path
register_value_helper :audio_path
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/audio_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::AudioTag

# @!method audio_tag(...)
# @return [nil]
define_output_helper :audio_tag
register_output_helper :audio_tag
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/audio_url.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::AudioURL
extend Phlex::Rails::HelperMacros

# @!method audio_url(...)
define_value_helper :audio_url
register_value_helper :audio_url
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/auto_discovery_link_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::AutoDiscoveryLinkTag

# @!method auto_discovery_link_tag(...)
# @return [nil]
define_output_helper :auto_discovery_link_tag
register_output_helper :auto_discovery_link_tag
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/build_tag_values.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::BuildTagValues
extend Phlex::Rails::HelperMacros

# @!method build_tag_values(...)
define_value_helper :build_tag_values
register_value_helper :build_tag_values
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/button_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::ButtonTag

# @!method button_tag(...)
# @return [nil]
define_output_helper_with_capture_block :button_tag
register_output_helper :button_tag
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/button_to.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::ButtonTo

# @!method button_to(...)
# @return [nil]
define_output_helper_with_capture_block :button_to
register_output_helper :button_to
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/check_box.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Phlex::Rails::Helpers::CheckBox

# @!method check_box(...)
# @return [nil]
define_output_helper :check_box
register_output_helper :check_box
end

module Phlex::Rails::Helpers::Checkbox
Expand Down
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/check_box_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Phlex::Rails::Helpers::CheckBoxTag

# @!method check_box_tag(...)
# @return [nil]
define_output_helper :check_box_tag
register_output_helper :check_box_tag
end

module Phlex::Rails::Helpers::CheckboxTag
Expand Down
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/class_names.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::ClassNames
extend Phlex::Rails::HelperMacros

# @!method class_names(...)
define_value_helper :class_names
register_value_helper :class_names
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/collection_check_boxes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module Phlex::Rails::Helpers::CollectionCheckBoxes
# @!method collection_check_boxes(...)
# @yield [builder]
# @yieldparam builder [Phlex::Rails::BufferedCheckboxBuilder]
define_builder_yielding_helper :collection_check_boxes, Phlex::Rails::BufferedCheckboxBuilder
register_builder_yielding_helper :collection_check_boxes, Phlex::Rails::BufferedCheckboxBuilder
end

module Phlex::Rails::Helpers::CollectionCheckboxes
Expand Down
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/collection_radio_buttons.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ module Phlex::Rails::Helpers::CollectionRadioButtons
# @!method collection_radio_buttons(...)
# @yield [builder]
# @yieldparam builder [Phlex::Rails::BufferedRadioButtonBuilder]
define_builder_yielding_helper :collection_radio_buttons, Phlex::Rails::BufferedRadioButtonBuilder
register_builder_yielding_helper :collection_radio_buttons, Phlex::Rails::BufferedRadioButtonBuilder
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/collection_select.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::CollectionSelect

# @!method collection_select(...)
# @return [nil]
define_output_helper :collection_select
register_output_helper :collection_select
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/color_field.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::ColorField

# @!method color_field(...)
# @return [nil]
define_output_helper :color_field
register_output_helper :color_field
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/color_field_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::ColorFieldTag

# @!method color_field_tag(...)
# @return [nil]
define_output_helper :color_field_tag
register_output_helper :color_field_tag
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/compute_asset_extname.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::ComputeAssetExtname
extend Phlex::Rails::HelperMacros

# @!method compute_asset_extname(...)
define_value_helper :compute_asset_extname
register_value_helper :compute_asset_extname
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/compute_asset_host.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::ComputeAssetHost
extend Phlex::Rails::HelperMacros

# @!method compute_asset_host(...)
define_value_helper :compute_asset_host
register_value_helper :compute_asset_host
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/compute_asset_path.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::ComputeAssetPath
extend Phlex::Rails::HelperMacros

# @!method compute_asset_path(...)
define_value_helper :compute_asset_path
register_value_helper :compute_asset_path
end
4 changes: 2 additions & 2 deletions lib/phlex/rails/helpers/content_for.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ module Phlex::Rails::Helpers::ContentFor
extend Phlex::Rails::HelperMacros

# @!method content_for?(...)
define_value_helper :content_for?
register_value_helper :content_for?

# @!method content_for(...)
define_value_helper_with_capture_block :content_for
register_value_helper :content_for
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/content_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::ContentTag

# @!method content_tag(...)
# @return [nil]
define_output_helper_with_capture_block :content_tag
register_output_helper :content_tag
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/controller_name.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::ControllerName
extend Phlex::Rails::HelperMacros

# @!method controller_name(...)
define_value_helper :controller_name
register_value_helper :controller_name
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/controller_path.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::ControllerPath
extend Phlex::Rails::HelperMacros

# @!method controller_path(...)
define_value_helper :controller_path
register_value_helper :controller_path
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/csp_meta_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::CSPMetaTag

# @!method csp_meta_tag(...)
# @return [nil]
define_output_helper :csp_meta_tag
register_output_helper :csp_meta_tag
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/csrf_meta_tags.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::CSRFMetaTags

# @!method csrf_meta_tags(...)
# @return [nil]
define_output_helper :csrf_meta_tags
register_output_helper :csrf_meta_tags
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/current_cycle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::CurrentCycle
extend Phlex::Rails::HelperMacros

# @!method current_cycle(...)
define_value_helper :current_cycle
register_value_helper :current_cycle
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/current_page.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::CurrentPage
extend Phlex::Rails::HelperMacros

# @!method current_page?(...)
define_value_helper :current_page?
register_value_helper :current_page?
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/cycle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::Cycle
extend Phlex::Rails::HelperMacros

# @!method cycle(...)
define_value_helper :cycle
register_value_helper :cycle
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/date_field.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::DateField

# @!method date_field(...)
# @return [nil]
define_output_helper :date_field
register_output_helper :date_field
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/date_field_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::DateFieldTag

# @!method date_field_tag(...)
# @return [nil]
define_output_helper :date_field_tag
register_output_helper :date_field_tag
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/date_select.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::DateSelect

# @!method date_select(...)
# @return [nil]
define_output_helper :date_select
register_output_helper :date_select
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/datetime_field.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Phlex::Rails::Helpers::DatetimeField

# @!method datetime_field(...)
# @return [nil]
define_output_helper :datetime_field
register_output_helper :datetime_field
end

module Phlex::Rails::Helpers::DateTimeField
Expand Down
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/datetime_field_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Phlex::Rails::Helpers::DatetimeFieldTag

# @!method datetime_field_tag(...)
# @return [nil]
define_output_helper :datetime_field_tag
register_output_helper :datetime_field_tag
end

module Phlex::Rails::Helpers::DateTimeFieldTag
Expand Down
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/datetime_local_field.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Phlex::Rails::Helpers::DatetimeLocalField

# @!method datetime_local_field(...)
# @return [nil]
define_output_helper :datetime_local_field
register_output_helper :datetime_local_field
end

module Phlex::Rails::Helpers::DateTimeLocalField
Expand Down
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/datetime_local_field_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Phlex::Rails::Helpers::DateTimeLocalFieldTag

# @!method datetime_local_field_tag(...)
# @return [nil]
define_output_helper :datetime_local_field_tag
register_output_helper :datetime_local_field_tag
end

module Phlex::Rails::Helpers::DateTimeLocalFieldTag
Expand Down
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/datetime_select.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Phlex::Rails::Helpers::DatetimeSelect

# @!method datetime_select(...)
# @return [nil]
define_output_helper :datetime_select
register_output_helper :datetime_select
end

module Phlex::Rails::Helpers::DateTimeSelect
Expand Down
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/debug.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module Phlex::Rails::Helpers::Debug

# @!method debug(...)
# @return [nil]
define_output_helper :debug
register_output_helper :debug
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/default_url_options.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::DefaultURLOptions
extend Phlex::Rails::HelperMacros

# @!method default_url_options(...)
define_value_helper :default_url_options
register_value_helper :default_url_options
end
2 changes: 1 addition & 1 deletion lib/phlex/rails/helpers/distance_of_time_in_words.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::DistanceOfTimeInWords
extend Phlex::Rails::HelperMacros

# @!method distance_of_time_in_words(...)
define_value_helper :distance_of_time_in_words
register_value_helper :distance_of_time_in_words
end
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module Phlex::Rails::Helpers::DistanceOfTimeInWordsToNow
extend Phlex::Rails::HelperMacros

# @!method distance_of_time_in_words_to_now(...)
define_value_helper :distance_of_time_in_words_to_now
register_value_helper :distance_of_time_in_words_to_now
end
Loading

0 comments on commit fab2934

Please sign in to comment.