Sha256: ef0c6cdcd69c4617098f704b8845734ccff107cd77192525c60766a1b5c9a7d0

Contents?: true

Size: 1.21 KB

Versions: 21

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal  = true

require 'pathname'
require 'json'

class Ree::PackageSchemaBuilder
  Schema = Ree::PackageSchema

  # @param [Ree::Package] package
  # @return [Hash]
  def call(package)
    Ree.logger.debug("generating package schema for '#{package.name}' package")

    if !package.loaded?
      raise Ree::Error.new("package schema should be loaded", :invalid_schema)
    end
    
    data = {
      Schema::SCHEMA_TYPE => Schema::PACKAGE,
      Schema::SCHEMA_VERSION => Schema::SCHEMA_VERSION_NUMBER,
      Schema::NAME => package.name,
      Schema::ENTRY_PATH => package.entry_rpath,
      Schema::TAGS => package.tags,
      Schema::DEPENDS_ON => package.deps.sort_by(&:name).map { |dep|
        {
          Schema::DependsOn::NAME => dep.name,
        }
      },
      Schema::ENV_VARS => package.env_vars.sort_by(&:name).map { |var|
        {
          Schema::EnvVars::NAME => var.name,
          Schema::EnvVars::DOC => var.doc,
        }
      },
      Schema::OBJECTS => package.objects.select { !_1.rpath.nil? }.sort_by(&:name).map { |object|
        {
          Schema::Objects::NAME => object.name,
          Schema::Objects::SCHEMA => object.schema_rpath,
        }
      }
    }

    data
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
ree-1.0.22 lib/ree/core/package_schema_builder.rb
ree-1.0.21 lib/ree/core/package_schema_builder.rb
ree-1.0.20 lib/ree/core/package_schema_builder.rb
ree-1.0.19 lib/ree/core/package_schema_builder.rb
ree-1.0.18 lib/ree/core/package_schema_builder.rb
ree-1.0.17 lib/ree/core/package_schema_builder.rb
ree-1.0.16 lib/ree/core/package_schema_builder.rb
ree-1.0.15 lib/ree/core/package_schema_builder.rb
ree-1.0.14 lib/ree/core/package_schema_builder.rb
ree-1.0.13 lib/ree/core/package_schema_builder.rb
ree-1.0.12 lib/ree/core/package_schema_builder.rb
ree-1.0.11 lib/ree/core/package_schema_builder.rb
ree-1.0.10 lib/ree/core/package_schema_builder.rb
ree-1.0.9 lib/ree/core/package_schema_builder.rb
ree-1.0.8 lib/ree/core/package_schema_builder.rb
ree-1.0.7 lib/ree/core/package_schema_builder.rb
ree-1.0.6 lib/ree/core/package_schema_builder.rb
ree-1.0.5 lib/ree/core/package_schema_builder.rb
ree-1.0.4 lib/ree/core/package_schema_builder.rb
ree-1.0.3 lib/ree/core/package_schema_builder.rb