module Hyalite::DOMProperty
Constants
- DOM_ATTRIBUTE_NAMES
- HAS_BOOLEAN_VALUE
- HAS_NUMERIC_VALUE
- HAS_OVERLOADED_BOOLEAN_VALUE
- HAS_POSITIVE_NUMERIC_VALUE
- HAS_SIDE_EFFECTS
- ID_ATTRIBUTE_NAME
- MUST_USE_ATTRIBUTE
- MUST_USE_PROPERTY
- PROPERTIES
Public Class Methods
default_value_cache()
click to toggle source
# File lib/hyalite/dom_property.rb, line 211 def default_value_cache @default_value_cache ||= {} end
default_value_for_property(node_name, prop)
click to toggle source
# File lib/hyalite/dom_property.rb, line 199 def default_value_for_property(node_name, prop) node_defaults = default_value_cache[node_name] unless node_defaults default_value_cache[node_name] = node_defaults = {} end unless node_defaults.include? prop test_element = $document.create_element(node_name) node_defaults[prop] = test_element[prop] end node_defaults[prop] end
include?(name)
click to toggle source
# File lib/hyalite/dom_property.rb, line 195 def include?(name) PROPERTIES.has_key? name end
is_custom_attribute(attribute_name)
click to toggle source
# File lib/hyalite/dom_property.rb, line 215 def is_custom_attribute(attribute_name) !!(/^(data|aria)-[a-z_][a-z\d_.\-]*$/ =~ attribute_name) end
property_info(name)
click to toggle source
# File lib/hyalite/dom_property.rb, line 168 def property_info(name) return nil unless PROPERTIES.has_key? name.to_sym @property_info ||= {} unless @property_info.has_key? name property = PROPERTIES[name.to_sym] attribute_name = DOM_ATTRIBUTE_NAMES.has_key?(name) ? DOM_ATTRIBUTE_NAMES[name] : name.downcase @property_info[name] = { attribute_name: attribute_name, attribute_namespace: nil, property_name: name, mutation_method: nil, must_use_attribute: property && property & MUST_USE_ATTRIBUTE > 0, must_use_property: property && property & MUST_USE_PROPERTY > 0, has_side_effects: property && property & HAS_SIDE_EFFECTS > 0, has_boolean_value: property && property & HAS_BOOLEAN_VALUE > 0, has_numeric_value: property && property & HAS_NUMERIC_VALUE > 0, has_positive_numeric_value: property && property & HAS_POSITIVE_NUMERIC_VALUE > 0, has_overloaded_boolean_value: property && property & HAS_OVERLOADED_BOOLEAN_VALUE > 0 } end @property_info[name] end