Class: StimulusReflex::ReflexData
- Inherits:
-
Object
- Object
- StimulusReflex::ReflexData
- Defined in:
- lib/stimulus_reflex/reflex_data.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
Instance Method Summary collapse
- #arguments ⇒ Object
- #element ⇒ Object
- #form_data ⇒ Object
- #form_params ⇒ Object
- #id ⇒ Object
-
#initialize(data) ⇒ ReflexData
constructor
A new instance of ReflexData.
- #method_name ⇒ Object
- #npm_version ⇒ Object
- #params ⇒ Object
- #permanent_attribute_name ⇒ Object
-
#reflex_controller ⇒ Object
END TODO remove.
- #reflex_name ⇒ Object
- #selectors ⇒ Object
- #suppress_logging ⇒ Object
- #tab_id ⇒ Object
- #target ⇒ Object
- #url ⇒ Object
- #url_params ⇒ Object
- #version ⇒ Object
-
#xpath_controller ⇒ Object
TODO: remove this in v4.
- #xpath_element ⇒ Object
Constructor Details
#initialize(data) ⇒ ReflexData
Returns a new instance of ReflexData.
6 7 8 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 6 def initialize(data) @data = data.deep_merge(data.deep_transform_keys { |k| k.to_s.underscore }).with_indifferent_access end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
4 5 6 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 4 def data @data end |
Instance Method Details
#arguments ⇒ Object
30 31 32 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 30 def arguments (data[:args] || []).map { |arg| object_with_indifferent_access arg } || [] end |
#element ⇒ Object
38 39 40 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 38 def element StimulusReflex::Element.new(data) end |
#form_data ⇒ Object
50 51 52 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 50 def form_data Rack::Utils.parse_nested_query(data[:form_data]) end |
#form_params ⇒ Object
58 59 60 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 58 def form_params form_data.deep_merge(data[:params] || {}) end |
#id ⇒ Object
66 67 68 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 66 def id data[:id] end |
#method_name ⇒ Object
26 27 28 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 26 def method_name target.split("#").second end |
#npm_version ⇒ Object
88 89 90 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 88 def npm_version data[:version].to_s end |
#params ⇒ Object
54 55 56 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 54 def params form_params.deep_merge(url_params) end |
#permanent_attribute_name ⇒ Object
42 43 44 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 42 def permanent_attribute_name data[:permanent_attribute_name] end |
#reflex_controller ⇒ Object
END TODO remove
84 85 86 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 84 def reflex_controller data[:reflex_controller] end |
#reflex_name ⇒ Object
10 11 12 13 14 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 10 def reflex_name reflex_name = target.split("#").first reflex_name = reflex_name.camelize reflex_name.end_with?("Reflex") ? reflex_name : "#{reflex_name}Reflex" end |
#selectors ⇒ Object
16 17 18 19 20 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 16 def selectors selectors = (data[:selectors] || []).select(&:present?) selectors = data[:selectors] = ["body"] if selectors.blank? selectors end |
#suppress_logging ⇒ Object
46 47 48 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 46 def suppress_logging data[:suppress_logging] end |
#tab_id ⇒ Object
70 71 72 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 70 def tab_id data[:tab_id] end |
#target ⇒ Object
22 23 24 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 22 def target data[:target].to_s end |
#url ⇒ Object
34 35 36 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 34 def url data[:url].to_s end |
#url_params ⇒ Object
62 63 64 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 62 def url_params Rack::Utils.parse_nested_query(URI.parse(url).query) end |
#version ⇒ Object
92 93 94 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 92 def version npm_version.gsub("-pre", ".pre").gsub("-rc", ".rc") end |
#xpath_controller ⇒ Object
TODO: remove this in v4
75 76 77 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 75 def xpath_controller data[:xpath_controller] end |
#xpath_element ⇒ Object
79 80 81 |
# File 'lib/stimulus_reflex/reflex_data.rb', line 79 def xpath_element data[:xpath_element] end |