class StimulusReflex::Element
Attributes
attributes[R]
data_attributes[R]
Public Class Methods
new(data = {})
click to toggle source
Calls superclass method
# File lib/stimulus_reflex/element.rb, line 6 def initialize(data = {}) @attributes = HashWithIndifferentAccess.new(data["attrs"] || {}) @data_attributes = HashWithIndifferentAccess.new(data["dataset"] || {}) all_attributes = @attributes.merge(@data_attributes) super all_attributes.merge(all_attributes.transform_keys(&:underscore)) @data_attributes.transform_keys! { |key| key.delete_prefix "data-" } end
Public Instance Methods
dataset()
click to toggle source
# File lib/stimulus_reflex/element.rb, line 22 def dataset @dataset ||= OpenStruct.new(data_attributes.merge(data_attributes.transform_keys(&:underscore))) end
signed()
click to toggle source
# File lib/stimulus_reflex/element.rb, line 14 def signed @signed ||= ->(accessor) { GlobalID::Locator.locate_signed(dataset[accessor]) } end
unsigned()
click to toggle source
# File lib/stimulus_reflex/element.rb, line 18 def unsigned @unsigned ||= ->(accessor) { GlobalID::Locator.locate(dataset[accessor]) } end