Class: Takagi::Discovery::CoreLinkFormat

Inherits:
Object
  • Object
show all
Defined in:
lib/takagi/discovery/core_link_format.rb

Overview

Builds CoRE Link Format payloads as defined in RFC 6690.

Constant Summary collapse

CONTENT_FORMAT =
40

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(router, raw_query) ⇒ CoreLinkFormat

Returns a new instance of CoreLinkFormat.



16
17
18
19
# File 'lib/takagi/discovery/core_link_format.rb', line 16

def initialize(router, raw_query)
  @router = router
  @query = parse_query(raw_query)
end

Class Method Details

.generate(router:, request: nil) ⇒ Object



11
12
13
14
# File 'lib/takagi/discovery/core_link_format.rb', line 11

def self.generate(router:, request: nil)
  query = request&.uri&.query
  new(router, query).generate
end

Instance Method Details

#generateObject



21
22
23
24
25
26
27
# File 'lib/takagi/discovery/core_link_format.rb', line 21

def generate
  resources = router.link_format_entries
  server_entry = server_link_entry
  resources << server_entry if server_entry
  filtered = filter_resources(resources.reject { |entry| entry.path == '/.well-known/core' })
  filtered.map { |entry| format_entry(entry) }.join(',')
end