Class: Takagi::CoAP::Registries::ContentFormat

Inherits:
Base
  • Object
show all
Defined in:
lib/takagi/coap/registries/content_format.rb

Overview

CoAP Content-Format Registry (RFC 7252 ยง12.3)

Extensible registry for CoAP content-format codes. Plugins can register custom content formats without modifying core code.

Examples:

Using predefined formats

Takagi::CoAP::Registries::ContentFormat::JSON          # => 50
Takagi::CoAP::Registries::ContentFormat::TEXT_PLAIN    # => 0

Registering a custom format

Takagi::CoAP::Registries::ContentFormat.register(65000, 'application/custom', :custom)
Takagi::CoAP::Registries::ContentFormat::CUSTOM  # => 65000

Looking up format names

Takagi::CoAP::Registries::ContentFormat.name_for(50)  # => "application/json"

Class Method Summary collapse

Methods inherited from Base

all, clear!, each_value, inherited, metadata_for, name_for, register, registered?, rfc_for, value_for, values

Class Method Details

.cbor?(code) ⇒ Boolean

Check if format is CBOR-based

Parameters:

  • code (Integer)

    Content-format code

Returns:

  • (Boolean)

    true if CBOR format



56
57
58
59
# File 'lib/takagi/coap/registries/content_format.rb', line 56

def self.cbor?(code)
  mime = mime_type_for(code)
  mime&.include?('cbor') || false
end

.code_for_mime(mime_type) ⇒ Integer?

Get content-format code for a MIME type

Parameters:

  • mime_type (String)

    MIME type

Returns:

  • (Integer, nil)

    Content-format code



41
42
43
# File 'lib/takagi/coap/registries/content_format.rb', line 41

def self.code_for_mime(mime_type)
  value_for(mime_type)
end

.json?(code) ⇒ Boolean

Check if format is JSON-based

Parameters:

  • code (Integer)

    Content-format code

Returns:

  • (Boolean)

    true if JSON format



48
49
50
51
# File 'lib/takagi/coap/registries/content_format.rb', line 48

def self.json?(code)
  mime = mime_type_for(code)
  mime&.include?('json') || false
end

.mime_type_for(code) ⇒ String?

Get MIME type for a content-format code

Parameters:

  • code (Integer)

    Content-format code

Returns:

  • (String, nil)

    MIME type



34
35
36
# File 'lib/takagi/coap/registries/content_format.rb', line 34

def self.mime_type_for(code)
  name_for(code)
end

.text?(code) ⇒ Boolean

Check if format is text-based

Parameters:

  • code (Integer)

    Content-format code

Returns:

  • (Boolean)

    true if text format



64
65
66
67
# File 'lib/takagi/coap/registries/content_format.rb', line 64

def self.text?(code)
  mime = mime_type_for(code)
  mime&.start_with?('text/') || false
end