Class: CloudInit::Userdata::JSON

Inherits:
CloudInit::Userdata show all
Defined in:
lib/cloudinit_userdata/formats/json.rb

Constant Summary collapse

PREFIXES =
%w([ {).freeze
MIMETYPES =
%w(application/json).freeze

Constants inherited from CloudInit::Userdata

VERSION

Instance Attribute Summary

Attributes inherited from CloudInit::Userdata

#raw

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from CloudInit::Userdata

#empty?, #initialize, parse, register_format, #valid?

Constructor Details

This class inherits a constructor from CloudInit::Userdata

Class Method Details

.match?(value) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/cloudinit_userdata/formats/json.rb', line 16

def self.match?(value)
  PREFIXES.any? { |prefix| value.start_with?(prefix) }
end

.mimetypesObject



20
21
22
# File 'lib/cloudinit_userdata/formats/json.rb', line 20

def self.mimetypes
  MIMETYPES
end

Instance Method Details

#validateObject



10
11
12
13
14
# File 'lib/cloudinit_userdata/formats/json.rb', line 10

def validate
  ::JSON.parse(raw)
rescue ::JSON::ParserError => e
  raise ParseError, "Contains invalid JSON: #{e.message.sub(/^(\d+): /, '')}"
end