Method: Mustermann::Expander#add

Defined in:
lib/mustermann/expander.rb

#add(*patterns) ⇒ Mustermann::Expander Also known as: <<

Add patterns to expand.

Examples:

expander = Mustermann::Expander.new
expander.add("/:a.jpg", "/:b.png")
expander.expand(a: "pony") # => "/pony.jpg"

Parameters:

  • patterns (Array<#to_str, Mustermann::Pattern>)

    list of to add for expansion, Strings will be compiled to patterns.

Returns:



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/mustermann/expander.rb', line 43

def add(*patterns)
  patterns.each do |pattern|
    pattern = Mustermann.new(pattern, **@options)
    if block_given?
      @api_expander.add(yield(pattern))
    else
      raise NotImplementedError, "expanding not supported for #{pattern.class}" unless pattern.respond_to? :to_ast
      @api_expander.add(pattern.to_ast)
    end
    @patterns << pattern
  end
  self
end