module Mova::Interpolation::Sprintf::Overridable

Public Instance Methods

missing_placeholder(placeholder, values) click to toggle source

@return [String] default replacement for missing placeholder @param placeholder [Symbol] @param values [Hash{Symbol => String}] all given values for interpolation

@example Wrap missing placeholders in HTML tag

interpolator = Mova::Interpolation::Sprintf.new.tap do |i|
  def i.missing_placeholder(placeholder, values)
    "<span class='error'>#{placeholder}<span>"
  end
end
interpolator.call("%{my} %{notes}", my: "your") #=> "your <span class='error'>notes</span>"

@example Raise an exception in case of missing placeholder

interpolator = Mova::Interpolation::Sprintf.new.tap do |i|
  def i.missing_placeholder(placeholder, values)
    raise KeyError.new("#{placeholder.inspect} is missing, #{values.inspect} given")
  end
end
interpolator.call("%{my} %{notes}", my: "your") #=> KeyError: :notes is missing, {my: "your"} given
# File lib/mova/interpolation/sprintf.rb, line 66
def missing_placeholder(placeholder, values)
  "%{#{placeholder}}"
end