Sha256: 8ccd7803d62609864a88b204da7955cedb7e4660dc640dc66e29bced946d5040

Contents?: true

Size: 1.5 KB

Versions: 30

Compression:

Stored size: 1.5 KB

Contents

require 'fileutils'

module Ree
  module CLI
    class GenerateObjectSchema
      class << self
        def run(package_name:, object_path:, project_path:, silence: false)
          ENV['REE_SKIP_ENV_VARS_CHECK'] = 'true'

          path = Ree.locate_packages_schema(project_path)
          dir = Pathname.new(path).dirname.to_s

          Ree.init(dir)

          package_name = package_name.to_sym
          object_name = object_path.split('/')[-1].split('.').first.to_sym

          puts("Generating #{object_name}.schema.json in #{package_name} package") if !silence

          facade = Ree.container.packages_facade
          Ree.load_package(package_name)

          package = facade.get_package(package_name)

          if facade.has_object?(package_name, object_name)
            object = facade.load_package_object(package_name, object_name)
            Ree.write_object_schema(package.name, object.name)
            facade.dump_package_schema(package_name)
          else
            file_path = File.join(dir, object_path)

            if File.exist?(file_path)
              facade.load_file(file_path, package_name)
              facade.dump_package_schema(package_name)

              if facade.has_object?(package_name, object_name)
                Ree.write_object_schema(package_name, object_name)
              end
            else
              raise Ree::Error.new("package file not found: #{file_path}")
            end
          end

          puts("done") if !silence
        end
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
ree-1.0.39 lib/ree/cli/generate_object_schema.rb
ree-1.0.38 lib/ree/cli/generate_object_schema.rb
ree-1.0.37 lib/ree/cli/generate_object_schema.rb
ree-1.0.36 lib/ree/cli/generate_object_schema.rb
ree-1.0.35 lib/ree/cli/generate_object_schema.rb
ree-1.0.34 lib/ree/cli/generate_object_schema.rb
ree-1.0.33 lib/ree/cli/generate_object_schema.rb
ree-1.0.32 lib/ree/cli/generate_object_schema.rb
ree-1.0.31 lib/ree/cli/generate_object_schema.rb
ree-1.0.30 lib/ree/cli/generate_object_schema.rb
ree-1.0.29 lib/ree/cli/generate_object_schema.rb
ree-1.0.28 lib/ree/cli/generate_object_schema.rb
ree-1.0.27 lib/ree/cli/generate_object_schema.rb
ree-1.0.26 lib/ree/cli/generate_object_schema.rb
ree-1.0.25 lib/ree/cli/generate_object_schema.rb
ree-1.0.24 lib/ree/cli/generate_object_schema.rb
ree-1.0.23 lib/ree/cli/generate_object_schema.rb
ree-1.0.22 lib/ree/cli/generate_object_schema.rb
ree-1.0.21 lib/ree/cli/generate_object_schema.rb
ree-1.0.20 lib/ree/cli/generate_object_schema.rb