Class: Gretel::Link

Inherits:
Object
  • Object
show all
Defined in:
lib/gretel/link.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key, text, url, options = {}) ⇒ Link

Returns a new instance of Link.



5
6
7
8
# File 'lib/gretel/link.rb', line 5

def initialize(key, text, url, options = {})
  # Use accessors so plugins can override their behavior
  self.key, self.text, self.url, self.options = key, text, url, options
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object

Enables accessors and predicate methods for values in the options hash. This can be used to pass information to links when rendering breadcrumbs manually.

link = Link.new(:my_crumb, "My Crumb", my_path, title: "Test Title", other_value: "Other")
link.title?       # => true
link.title        # => "Test Title"
link.other_value? # => true
link.other_value  # => "Other"
link.some_other?  # => false
link.some_other   # => nil


31
32
33
34
35
36
37
# File 'lib/gretel/link.rb', line 31

def method_missing(method, *args, &block)
  if method =~ /(.+)\?$/
    options[$1.to_sym].present?
  else
    options[method]
  end
end

Instance Attribute Details

#keyObject

Returns the value of attribute key.



3
4
5
# File 'lib/gretel/link.rb', line 3

def key
  @key
end

#optionsObject

Returns the value of attribute options.



3
4
5
# File 'lib/gretel/link.rb', line 3

def options
  @options
end

#textObject

Returns the value of attribute text.



3
4
5
# File 'lib/gretel/link.rb', line 3

def text
  @text
end

#urlObject

Returns the value of attribute url.



3
4
5
# File 'lib/gretel/link.rb', line 3

def url
  @url
end

Instance Method Details

#current!Object

Sets current so current? will return true.



11
12
13
# File 'lib/gretel/link.rb', line 11

def current!
  @current = true
end

#current?Boolean

Returns true if this is the last link in the breadcrumb trail.

Returns:

  • (Boolean)


16
17
18
# File 'lib/gretel/link.rb', line 16

def current?
  !!@current
end