Module: InertiaRails::ScrollMetadata

Defined in:
lib/inertia_rails/scroll_metadata.rb

Defined Under Namespace

Classes: HashAdapter, KaminariAdapter, MissingMetadataAdapterError, PagyAdapter, Props

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.adaptersObject

Returns the value of attribute adapters.



72
73
74
# File 'lib/inertia_rails/scroll_metadata.rb', line 72

def adapters
  @adapters
end

Class Method Details

.extract(metadata, **options) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/inertia_rails/scroll_metadata.rb', line 74

def extract(, **options)
  overrides = options.slice(:page_name, :previous_page, :next_page, :current_page)

  adapters.each do |adapter|
    next unless adapter.match?()

    return Props.new(**adapter.call(, **options).merge!(overrides)).as_json
  end

  begin
    Props.new(**overrides).as_json
  rescue ArgumentError
    raise MissingMetadataAdapterError, "No ScrollMetadata adapter found for #{}"
  end
end

.register_adapter(adapter) ⇒ Object



90
91
92
# File 'lib/inertia_rails/scroll_metadata.rb', line 90

def register_adapter(adapter)
  adapters.unshift(adapter.new)
end