Sha256: 6ebaf3ec46b8c6e990d95570fcc2c7f0440d3a406c534951767830e2d12334c6

Contents?: true

Size: 1.42 KB

Versions: 12

Compression:

Stored size: 1.42 KB

Contents

# frozen_string_literal: true

module Script
  module Layers
    module Infrastructure
      class ScriptRepository
        include SmartProperties
        property! :ctx, accepts: ShopifyCli::Context

        def get_script(language, extension_point_type, script_name)
          source_file_path = src_code_file(language)
          unless ctx.file_exist?(source_file_path)
            raise Domain::Errors::ScriptNotFoundError.new(extension_point_type, source_file_path)
          end

          Domain::Script.new(script_id(language), script_name, extension_point_type, language)
        end

        def with_temp_build_context
          prev_dir = Dir.pwd
          temp_dir = "#{project_base}/temp"
          ctx.mkdir_p(temp_dir)
          ctx.chdir(temp_dir)
          ctx.cp_r("#{src_base}/.", ".")
          yield
        ensure
          ctx.chdir(prev_dir)
          ctx.rm_rf(temp_dir)
        end

        def relative_path_to_src
          "src"
        end

        private

        def project_base
          ScriptProject.current.directory
        end

        def src_base
          "#{project_base}/#{relative_path_to_src}"
        end

        def script_id(language)
          "#{relative_path_to_src}/#{file_name(language)}"
        end

        def src_code_file(language)
          "#{src_base}/#{file_name(language)}"
        end

        def file_name(language)
          "script.#{language}"
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
shopify-cli-1.4.1 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.4.0 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.3.1 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.3.0 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.2.0 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.1.2 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.1.1 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.1.0 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.0.5 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.0.4 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.0.3 lib/project_types/script/layers/infrastructure/script_repository.rb
shopify-cli-1.0.2 lib/project_types/script/layers/infrastructure/script_repository.rb