Class: TabsOnRails::Tabs::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/tabs_on_rails/tabs/builder.rb

Overview

Builder

The Builder class represents the interface for any custom Builder.

To create a custom Builder, extend this class and implement the following abstract methods:

  • tab_for

Optionally, you can override the following methods to customize the Builder behavior:

  • open_tabs

  • close_tabs

Direct Known Subclasses

TabsBuilder

Instance Method Summary collapse

Constructor Details

#initialize(context, options = {}) ⇒ Builder

Initializes a new builder with the given hash of options, providing the current Rails template as context.

Warning: You should not override this method to prevent incompatibility with future versions.



35
36
37
38
39
# File 'lib/tabs_on_rails/tabs/builder.rb', line 35

def initialize(context, options = {})
  @context   = context
  @namespace = options.delete(:namespace) || :default
  @options   = options
end

Instance Method Details

#close_tabs(*args) ⇒ Object

Override this method to use a custom close tag for your tabs.



71
72
# File 'lib/tabs_on_rails/tabs/builder.rb', line 71

def close_tabs(*args)
end

#current_tab?(tab) ⇒ Boolean

Returns true if tab is the current_tab.

Examples

class MyController < ApplicationController
  tab :foo
end

current_tab? :foo   # => true
current_tab? 'foo'  # => true
current_tab? :bar   # => false
current_tab? 'bar'  # => false

Returns:

  • (Boolean)


54
55
56
# File 'lib/tabs_on_rails/tabs/builder.rb', line 54

def current_tab?(tab)
  tab.to_s == @context.current_tab(@namespace).to_s
end

#open_tabs(*args) ⇒ Object

Override this method to use a custom open tag for your tabs.



67
68
# File 'lib/tabs_on_rails/tabs/builder.rb', line 67

def open_tabs(*args)
end

#tab_for(*args) ⇒ Object

Creates and returns a tab with given args.

Raises NotImplemented: you should implement this method in your custom Builder.

Raises:

  • (NotImplementedError)


62
63
64
# File 'lib/tabs_on_rails/tabs/builder.rb', line 62

def tab_for(*args)
  raise NotImplementedError
end