Class: Browser::History

Inherits:
Object show all
Includes:
Native
Defined in:
opal/browser/history.rb

Overview

History allows manipulation of the session history.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#currentString (readonly)

Returns the current item.

Returns:

  • (String)

    the current item


56
57
58
# File 'opal/browser/history.rb', line 56

def current
  $window.location.path
end

#lengthInteger (readonly)

Returns how many items are in the history.

Returns:

  • (Integer)

    how many items are in the history


18
# File 'opal/browser/history.rb', line 18

alias_native :length

Class Method Details

.supported?Boolean

Check if HTML5 history is supported.

Returns:

  • (Boolean)

10
11
12
# File 'opal/browser/history.rb', line 10

def self.supported?
  Browser.supports? 'History'
end

Instance Method Details

#back(number = 1) ⇒ Object

Go back in the history.

Parameters:

  • number (Integer) (defaults to: 1)

    how many items to go back


23
24
25
# File 'opal/browser/history.rb', line 23

def back(number = 1)
  `#@native.go(-number)`
end

#forward(number = 1) ⇒ Object

Go forward in the history.

Parameters:

  • number (Integer) (defaults to: 1)

    how many items to go forward


30
31
32
# File 'opal/browser/history.rb', line 30

def forward(number = 1)
  `#@native.go(number)`
end

#push(item, data = nil) ⇒ Object

Push an item in the history.

Parameters:

  • item (String)

    the item to push in the history

  • data (Object) (defaults to: nil)

    additional state to push


38
39
40
41
42
# File 'opal/browser/history.rb', line 38

def push(item, data = nil)
  data = `null` if data.nil?

  `#@native.pushState(data, null, item)`
end

#replace(item, data = nil) ⇒ Object

Replace the current history item with another.

Parameters:

  • item (String)

    the item to replace with

  • data (Object) (defaults to: nil)

    additional state to replace


48
49
50
51
52
# File 'opal/browser/history.rb', line 48

def replace(item, data = nil)
  data = `null` if data.nil?

  `#@native.replaceState(data, null, item)`
end

#stateObject

Raises:

  • (NotImplementedError)

63
64
65
66
67
68
69
70
71
72
73
74
# File 'opal/browser/history.rb', line 63

def state
  %x{
    var state = #@native.state;

    if (state == null) {
      return nil;
    }
    else {
      return state;
    }
  }
end