Sha256: b87d71bbd96adc88be540c061c72f19141f1b6379a7368cc5241c6169c54252f
Contents?: true
Size: 1.09 KB
Versions: 15
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
15 entries across 15 versions & 1 rubygems