Module: BEL::Extension::Format::Formatter

Included in:
FormatBEL, FormatJGF, FormatJSON, FormatRDF, FormatXBEL
Defined in:
lib/bel/extension_format.rb

Overview

The Formatter module defines methods to be implemented by a format extension Class. It is broken up into three parts:

Examples:

Typical creation of a Formatter class.

class FormatYAML
  include BEL::Extension::Format::Formatter
  # override methods
end

Create a YAML format extension.

class FormatYAML
  include BEL::Extension::Format::Formatter

  ID          = :yaml
  MEDIA_TYPES = %i(text/yaml)
  EXTENSIONS  = %i(yaml)

  def id
    ID
  end

  def media_types
    MEDIA_TYPES
  end

  def file_extensions
    EXTENSIONS
  end

  def deserialize(data)
    YAML.load(data)
  end

  def serialize(data)
    YAML.dump(data)
  end
end

Instance Method Summary collapse

Instance Method Details

#deserialize(data) ⇒ Object

Raises:

  • (NotImplementedError)


186
187
188
# File 'lib/bel/extension_format.rb', line 186

def deserialize(data)
  raise NotImplementedError.new("#{__method__} is not implemented.")
end

#evidence_hash(object) ⇒ Object

Raises:

  • (NotImplementedError)


182
183
184
# File 'lib/bel/extension_format.rb', line 182

def evidence_hash(object)
  raise NotImplementedError.new("#{__method__} is not implemented.")
end

#file_extensionsObject



177
178
179
180
# File 'lib/bel/extension_format.rb', line 177

def file_extensions
  # optional
  nil
end

#idObject

Raises:

  • (NotImplementedError)


168
169
170
# File 'lib/bel/extension_format.rb', line 168

def id
  raise NotImplementedError.new("#{__method__} is not implemented.")
end

#media_typesObject



172
173
174
175
# File 'lib/bel/extension_format.rb', line 172

def media_types
  # optional
  nil
end

#serialize(data, writer = nil) ⇒ Object

Raises:

  • (NotImplementedError)


190
191
192
# File 'lib/bel/extension_format.rb', line 190

def serialize(data, writer = nil)
  raise NotImplementedError.new("#{__method__} is not implemented.")
end