Method: PSON.generate

Defined in:
lib/puppet/external/pson/common.rb

.generate(obj, state = nil) ⇒ Object Also known as: unparse

Unparse the Ruby data structure obj into a single line PSON string and return it. state is

  • a PSON::State object,

  • or a Hash like object (responding to to_hash),

  • an object convertible into a hash by a to_h method,

that is used as or to configure a State object.

It defaults to a state object, that creates the shortest possible PSON text in one line, checks for circular data structures and doesn’t allow NaN, Infinity, and -Infinity.

A state hash can have the following keys:

  • indent: a string used to indent levels (default: ”),

  • space: a string that is put after, a : or , delimiter (default: ”),

  • space_before: a string that is put before a : pair delimiter (default: ”),

  • object_nl: a string that is put at the end of a PSON object (default: ”),

  • array_nl: a string that is put at the end of a PSON array (default: ”),

  • check_circular: true if checking for circular data structures should be done (the default), false otherwise.

  • allow_nan: true if NaN, Infinity, and -Infinity should be generated, otherwise an exception is thrown, if these values are encountered. This options defaults to false.

  • max_nesting: The maximum depth of nesting allowed in the data structures from which PSON is to be generated. Disable depth checking with :max_nesting => false, it defaults to 19.

See also the fast_generate for the fastest creation method with the least amount of sanity checks, and the pretty_generate method for some defaults for a pretty output.



177
178
179
180
181
182
183
184
# File 'lib/puppet/external/pson/common.rb', line 177

def generate(obj, state = nil)
  if state
    state = State.from_state(state)
  else
    state = State.new
  end
  obj.to_pson(state)
end