class YARD::JsonRegistryStore

Public Instance Methods

save(merge=true, file=nil) click to toggle source
Calls superclass method
# File lib/puppet_x/puppetlabs/strings/yard/json_registry_store.rb, line 4
def save(merge=true, file=nil)
  super

  @serializer = Serializers::JsonSerializer.new(@file)

  sdb = Registry.single_object_db
  if sdb == true || sdb == nil
    serialize_output_schema(@store)
  else
    values(false).each do |object|
      serialize_output_schema(object)
    end
  end
  true
end
serialize_output_schema(obj) click to toggle source

@param obj [Hash] A hash representing the registry or part of the registry.

# File lib/puppet_x/puppetlabs/strings/yard/json_registry_store.rb, line 22
def serialize_output_schema(obj)

    schema = {
      :puppet_functions => [],
      :puppet_providers => [],
      :puppet_classes => [],
      :defined_types => [],
      :puppet_types => [],
    }

    schema[:puppet_functions] += obj.select do |key, val|
      val.type == :method and (val['puppet_4x_function'] or
                               val['puppet_3x_function'])
    end.values

    schema[:puppet_classes] += obj.select do |key, val|
      val.type == :hostclass
    end.values

    schema[:defined_types] += obj.select do |key, val|
      val.type == :definedtype
    end.values

    schema[:puppet_providers] += obj.select do |key, val|
      val.type == :provider
    end.values

    schema[:puppet_types] += obj.select do |key, val|
      val.type == :type
    end.values

    @serializer.serialize(schema.to_json)
end