28 lines
663 B
Ruby
28 lines
663 B
Ruby
|
|
# frozen_string_literal: true
|
||
|
|
|
||
|
|
module Firecrawl
|
||
|
|
module Models
|
||
|
|
# Result of a map operation containing discovered URLs.
|
||
|
|
# The v2 API may return links as either plain URL strings or objects
|
||
|
|
# with url, title, and description fields. This class normalises both.
|
||
|
|
class MapData
|
||
|
|
attr_reader :links
|
||
|
|
|
||
|
|
def initialize(data)
|
||
|
|
raw_links = data["links"] || []
|
||
|
|
@links = raw_links.map do |item|
|
||
|
|
if item.is_a?(Hash)
|
||
|
|
item
|
||
|
|
elsif item.is_a?(String)
|
||
|
|
{ "url" => item }
|
||
|
|
end
|
||
|
|
end.compact
|
||
|
|
end
|
||
|
|
|
||
|
|
def to_s
|
||
|
|
"MapData{links=#{links.size}}"
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|