Class: StimulusReflex::Dataset

Inherits:
OpenStruct show all
Includes:
AttributeBuilder
Defined in:
lib/stimulus_reflex/dataset.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from AttributeBuilder

#build_data_attrs, #build_underscored

Constructor Details

#initialize(data = {}) ⇒ Dataset

Returns a new instance of Dataset.



10
11
12
13
14
15
16
17
# File 'lib/stimulus_reflex/dataset.rb', line 10

def initialize(data = {})
  datasets = data["dataset"] || {}
  regular_dataset = datasets["dataset"] || {}
  @attrs = build_data_attrs(regular_dataset, datasets["datasetAll"] || {})
  @data_attrs = @attrs.transform_keys { |key| key.delete_prefix "data-" }

  super build_underscored(@data_attrs)
end

Instance Attribute Details

#attrsObject

Returns the value of attribute attrs.



8
9
10
# File 'lib/stimulus_reflex/dataset.rb', line 8

def attrs
  @attrs
end

#data_attrsObject

Returns the value of attribute data_attrs.



8
9
10
# File 'lib/stimulus_reflex/dataset.rb', line 8

def data_attrs
  @data_attrs
end

Instance Method Details

#booleanObject



27
28
29
# File 'lib/stimulus_reflex/dataset.rb', line 27

def boolean
  @boolean ||= ->(accessor) { cast_boolean(self[accessor]) || self[accessor].blank? }
end

#numericObject



31
32
33
# File 'lib/stimulus_reflex/dataset.rb', line 31

def numeric
  @numeric ||= ->(accessor) { Float(self[accessor]) }
end

#signedObject



19
20
21
# File 'lib/stimulus_reflex/dataset.rb', line 19

def signed
  @signed ||= ->(accessor) { GlobalID::Locator.locate_signed(self[accessor]) }
end

#unsignedObject



23
24
25
# File 'lib/stimulus_reflex/dataset.rb', line 23

def unsigned
  @unsigned ||= ->(accessor) { GlobalID::Locator.locate(self[accessor]) }
end