Sha256: 0a7ce57e7b3cad402b55c56443b8dec441f08119afd18f610a5b5f47f54f47d3
Contents?: true
Size: 835 Bytes
Versions: 13
Compression:
Stored size: 835 Bytes
Contents
# frozen_string_literal: true class StimulusReflex::Element < OpenStruct attr_reader :attributes, :data_attributes 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 def signed @signed ||= ->(accessor) { GlobalID::Locator.locate_signed(dataset[accessor]) } end def unsigned @unsigned ||= ->(accessor) { GlobalID::Locator.locate(dataset[accessor]) } end def dataset @dataset ||= OpenStruct.new(data_attributes.merge(data_attributes.transform_keys(&:underscore))) end end
Version data entries
13 entries across 13 versions & 1 rubygems