Class: Super::LinkBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/super/link_builder.rb

Instance Method Summary collapse

Instance Method Details

#resolve(**kwargs) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/super/link_builder.rb', line 19

def resolve(**kwargs)
  raise Super::Error::IncompleteBuilder, "LinkBuilder requires that #text is set" if @text.nil?
  raise Super::Error::IncompleteBuilder, "LinkBuilder requires that #href is set" if @href.nil?

  @options ||= -> (**) { {} }
  @process_text ||= -> (t) { t }
  @process_href ||= -> (h) { h }
  @process_options ||= -> (o) { o }

  Super::Link.new(
    @process_text.call(@text.call(**kwargs)),
    @process_href.call(@href.call(**kwargs)),
    **@process_options.call(@options.call(**kwargs))
  )
end