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.
219 220 221 222 223 224 |
# File 'lib/dommy/navigator.rb', line 219 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.
217 218 219 |
# File 'lib/dommy/navigator.rb', line 217 def name @name end |
#state ⇒ Object (readonly)
Returns the value of attribute state.
217 218 219 |
# File 'lib/dommy/navigator.rb', line 217 def state @state end |
Instance Method Details
#__event_parent__ ⇒ Object
267 268 269 |
# File 'lib/dommy/navigator.rb', line 267 def __event_parent__ nil end |
#__js_call__(method, args) ⇒ Object
256 257 258 259 260 261 262 263 264 265 |
# File 'lib/dommy/navigator.rb', line 256 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
233 234 235 236 237 238 239 240 241 242 |
# File 'lib/dommy/navigator.rb', line 233 def __js_get__(key) case key when "name" @name when "state" @state when "onchange" @onchange end end |
#__js_set__(key, value) ⇒ Object
244 245 246 247 248 249 250 251 252 253 254 |
# File 'lib/dommy/navigator.rb', line 244 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 |