Class: DatGretel::Link

Inherits:
Object
  • Object
show all
Defined in:
lib/dat_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
9
# File 'lib/dat_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
  self.current = false
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


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

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

Instance Attribute Details

#currentObject

Returns the value of attribute current.



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

def current
  @current
end

#keyObject

Returns the value of attribute key.



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

def key
  @key
end

#optionsObject

Returns the value of attribute options.



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

def options
  @options
end

#textObject

Returns the value of attribute text.



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

def text
  @text
end

#urlObject

Returns the value of attribute url.



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

def url
  @url
end

Instance Method Details

#current!Object

Sets current so current? will return true.



12
13
14
# File 'lib/dat_gretel/link.rb', line 12

def current!
  @current = true
end

#current?Boolean

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

Returns:

  • (Boolean)


17
18
19
# File 'lib/dat_gretel/link.rb', line 17

def current?
  !!@current 
end