Class: Super::LinkBuilder

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(text, href, **options) ⇒ LinkBuilder

Returns a new instance of LinkBuilder.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/super/link_builder.rb', line 5

def initialize(text, href, **options)
  @text = text
  @href = href
  @options = options
  @requirements = []
  @requirements += gather_requirements(text)
  @requirements += gather_requirements(href)
  @requirements += gather_requirements(options)

  unknown_arguments = @requirements - known_requirements
  if unknown_arguments.any?
    raise Error::ArgumentError, "Unknown arguments: #{unknown_arguments.join(", ")}"
  end
end

Instance Attribute Details

#requirementsObject (readonly)

Returns the value of attribute requirements.



20
21
22
# File 'lib/super/link_builder.rb', line 20

def requirements
  @requirements
end

Instance Method Details

#resolve(**kwargs) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/super/link_builder.rb', line 26

def resolve(**kwargs)
  Link.new(
    into_value(@text, kwargs),
    into_value(@href, kwargs),
    **into_value(@options, kwargs),
  )
end

#to_s(default_options: nil, **kwargs) ⇒ Object



22
23
24
# File 'lib/super/link_builder.rb', line 22

def to_s(default_options: nil, **kwargs)
  resolve(**kwargs).to_s(default_options: default_options)
end