Files
importer-issue-ops/lib/models/arguments.rb
2023-06-22 19:04:24 +00:00

53 lines
1.3 KiB
Ruby

# frozen_string_literal: true
require_relative "../concerns/environment_writer"
class Arguments
include EnvironmentWriter
def initialize(provider, command, issue_content)
@args = argument_class(provider, command, issue_content)
@custom_transformers = custom_transformers(command)
end
def argument_class(provider, command, issue_content)
provider.module.const_get(command.classify).new(issue_content, command)
end
def custom_transformers(command)
command.options&.dig("custom-transformers")&.split(" ") || Dir.glob("transformers/**/*.rb")
end
def to_output
arguments = @args.to_a || []
arguments.concat(["--custom-transformers", *@custom_transformers]) if @custom_transformers.length.positive?
puts arguments.to_s
return if arguments.blank?
rng = Random.new
variable_names = Set.new
set_output(
"args",
arguments.map do |a|
value = a.include?(" ") ? a.inspect : a
unless value.start_with?("--")
name = "variable_#{rng.rand(1000..9999)}"
name = "variable_#{rng.rand(1000..9999)}" while variable_names.include?(name)
variable_names.add(name)
set_environment(name, value)
value = "$#{name}"
end
value
end.join(" ")
)
end
end