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