Class: Dommy::PermissionStatus
- Inherits:
-
Object
- Object
- Dommy::PermissionStatus
- Includes:
- EventTarget
- Defined in:
- lib/dommy/navigator.rb
Overview
‘PermissionStatus` — `state` + `onchange` event handler. Fires a `change` event when `Permissions#set` mutates the underlying value (mirrors browser behavior where the user toggles a permission).
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#state ⇒ Object
readonly
Returns the value of attribute state.
Instance Method Summary collapse
- #__event_parent__ ⇒ Object
- #__js_call__(method, args) ⇒ Object
- #__js_get__(key) ⇒ Object
- #__js_set__(key, value) ⇒ Object
- #__set_state__(new_state) ⇒ Object
-
#initialize(window, name, state) ⇒ PermissionStatus
constructor
A new instance of PermissionStatus.
Methods included from EventTarget
#__deliver_event__, #add_event_listener, #dispatch_event, #invoke_listener, #remove_event_listener
Constructor Details
#initialize(window, name, state) ⇒ PermissionStatus
Returns a new instance of PermissionStatus.
282 283 284 285 286 287 |
# File 'lib/dommy/navigator.rb', line 282 def initialize(window, name, state) @window = window @name = name @state = state @onchange = nil end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
280 281 282 |
# File 'lib/dommy/navigator.rb', line 280 def name @name end |
#state ⇒ Object (readonly)
Returns the value of attribute state.
280 281 282 |
# File 'lib/dommy/navigator.rb', line 280 def state @state end |
Instance Method Details
#__event_parent__ ⇒ Object
330 331 332 |
# File 'lib/dommy/navigator.rb', line 330 def __event_parent__ nil end |
#__js_call__(method, args) ⇒ Object
319 320 321 322 323 324 325 326 327 328 |
# File 'lib/dommy/navigator.rb', line 319 def __js_call__(method, args) case method when "addEventListener" add_event_listener(args[0], args[1], args[2]) when "removeEventListener" remove_event_listener(args[0], args[1]) when "dispatchEvent" dispatch_event(args[0]) end end |
#__js_get__(key) ⇒ Object
296 297 298 299 300 301 302 303 304 305 |
# File 'lib/dommy/navigator.rb', line 296 def __js_get__(key) case key when "name" @name when "state" @state when "onchange" @onchange end end |
#__js_set__(key, value) ⇒ Object
307 308 309 310 311 312 313 314 315 316 317 |
# File 'lib/dommy/navigator.rb', line 307 def __js_set__(key, value) case key when "onchange" # Assigning to onchange overwrites the previous handler. remove_event_listener("change", @onchange) if @onchange @onchange = value add_event_listener("change", value) if value end nil end |