Sha256: 7630479bf8e6cf988d9fa0675adbc8cc3ad01c33577072c50f545de85dfd0352

Contents?: true

Size: 1.09 KB

Versions: 31

Compression:

Stored size: 1.09 KB

Contents

# frozen_string_literal  = true

require 'pathname'
require 'json'

class Ree::PackagesSchemaBuilder
  Schema = Ree::PackagesSchema

  def initialize
    @packages_detector = Ree::PackagesDetector.new
  end

  # @dir [String] - path to root project dir
  def call
    packages = @packages_detector.call(Ree.root_dir)
    gem_packages = []

    Ree.gems.each do |gem|
      gem_packages += @packages_detector.call(gem.dir, gem.name)
    end

    result = {
      Schema::SCHEMA_VERSION => Schema::SCHEMA_VERSION_NUMBER,
      Schema::SCHEMA_TYPE => Schema::PACKAGES,
      Schema::PACKAGES => packages.sort_by { _1[:name] }.map {
        {
          Schema::Packages::NAME => _1.fetch(:name),
          Schema::Packages::SCHEMA => _1.fetch(:package_schema_path),
        }
      },
      Schema::GEM_PACKAGES => gem_packages.sort_by { [_1.fetch(:gem_name), _1.fetch(:name)] }.map {
        {
          Schema::Packages::GEM => _1.fetch(:gem_name),
          Schema::Packages::NAME => _1.fetch(:name),
          Schema::Packages::SCHEMA => _1.fetch(:package_schema_path),
        }
      },
    }
    
    result
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
ree-1.0.32 lib/ree/core/packages_schema_builder.rb
ree-1.0.31 lib/ree/core/packages_schema_builder.rb
ree-1.0.30 lib/ree/core/packages_schema_builder.rb
ree-1.0.29 lib/ree/core/packages_schema_builder.rb
ree-1.0.28 lib/ree/core/packages_schema_builder.rb
ree-1.0.27 lib/ree/core/packages_schema_builder.rb
ree-1.0.26 lib/ree/core/packages_schema_builder.rb
ree-1.0.25 lib/ree/core/packages_schema_builder.rb
ree-1.0.24 lib/ree/core/packages_schema_builder.rb
ree-1.0.23 lib/ree/core/packages_schema_builder.rb
ree-1.0.22 lib/ree/core/packages_schema_builder.rb
ree-1.0.21 lib/ree/core/packages_schema_builder.rb
ree-1.0.20 lib/ree/core/packages_schema_builder.rb
ree-1.0.19 lib/ree/core/packages_schema_builder.rb
ree-1.0.18 lib/ree/core/packages_schema_builder.rb
ree-1.0.17 lib/ree/core/packages_schema_builder.rb
ree-1.0.16 lib/ree/core/packages_schema_builder.rb
ree-1.0.15 lib/ree/core/packages_schema_builder.rb
ree-1.0.14 lib/ree/core/packages_schema_builder.rb
ree-1.0.13 lib/ree/core/packages_schema_builder.rb