Haml::Util#def_static_method

Parsed documentation:
View on GitHub
This is used for methods in {Haml::Buffer} that need to be very fast,
and take a lot of boolean parameters
that are known at compile-time.
Instead of passing the parameters in normally,
a separate method is defined for every possible combination of those parameters;
these are then called using \{#static\_method\_name}.

To define a static method, an ERB template for the method is provided.
All conditionals based on the static parameters
are done as embedded Ruby within this template.
For example:

    def_static_method(Foo, :my_static_method, [:foo, :bar], :baz, :bang, <<RUBY)
      <% if baz && bang %>
        return foo + bar
      <% elsif baz || bang %>
        return foo - bar
      <% else %>
        return 17
      <% end %>
    RUBY

\{#static\_method\_name} can be used to call static methods.

@overload def_static_method(klass, name, args, *vars, erb)
@param klass [Module] The class on which to define the static method
@param name [#to_s] The (base) name of the static method
@param args [Array<Symbol>] The names of the arguments to the defined methods
  (**not** to the ERB template)
@param vars [Array<Symbol>] The names of the static boolean variables
  to be made available to the ERB template
Suggestions:
Please help! Open an issue on GitHub if this assessment is incorrect.