class Matrixeval::Ruby::Target

Public Instance Methods

cli_example_lines() click to toggle source
# File lib/matrixeval/ruby/target.rb, line 59
def cli_example_lines
  [
    "",
    "Example:",
    "    matrixeval --all bundle install",
    "    matrixeval --ruby 3.0 rspec a_spec.rb",
    "    matrixeval --ruby 3.1 --active_model 7.0 rake test",
    "    matrixeval bash"
  ]
end
create_files() click to toggle source
# File lib/matrixeval/ruby/target.rb, line 70
def create_files
  gemfile_lock_folder = Matrixeval.working_dir.join(".matrixeval/gemfile_locks")
  FileUtils.mkdir_p gemfile_lock_folder

  Context.all.each do |context|
    FileUtils.touch gemfile_lock_folder.join(context.id)
  end
end
env(context) click to toggle source
# File lib/matrixeval/ruby/target.rb, line 17
def env(context)
  {
    "BUNDLE_PATH" => "/bundle",
    "GEM_HOME" => "/bundle",
    "BUNDLE_APP_CONFIG" => "/bundle",
    "BUNDLE_BIN" => "/bundle/bin",
    "PATH" => "/app/bin:/bundle/bin:$PATH"
  }
end
gitignore_paths() click to toggle source
# File lib/matrixeval/ruby/target.rb, line 46
def gitignore_paths
  [
    ".matrixeval/gemfile_locks"
  ]
end
matrixeval_yml_template_path() click to toggle source
# File lib/matrixeval/ruby/target.rb, line 9
def matrixeval_yml_template_path
  Matrixeval::Ruby.root.join("lib/matrixeval/ruby/templates/matrixeval.yml")
end
mounts(context) click to toggle source
# File lib/matrixeval/ruby/target.rb, line 27
def mounts(context)
  bundle_volume = bundle_volume(context)

  [
    "#{bundle_volume}:/bundle",
    "../gemfile_locks/#{context.id}:/app/Gemfile.lock"
  ]
end
support_commands() click to toggle source
# File lib/matrixeval/ruby/target.rb, line 52
def support_commands
  [
    'ruby', 'rake', 'rails', 'rspec', 'bundle',
    'bin/rake', 'bin/rails', 'bin/rspec', 'bin/test'
  ]
end
vector_key() click to toggle source
# File lib/matrixeval/ruby/target.rb, line 13
def vector_key
  "ruby"
end
version() click to toggle source
# File lib/matrixeval/ruby/target.rb, line 5
def version
  Matrixeval::Ruby::VERSION
end
volumes(context) click to toggle source
# File lib/matrixeval/ruby/target.rb, line 36
def volumes(context)
  bundle_volume = bundle_volume(context)

  {
    bundle_volume => {
      "name" => bundle_volume
    }
  }
end

Private Instance Methods

bundle_volume(context) click to toggle source
# File lib/matrixeval/ruby/target.rb, line 81
def bundle_volume(context)
  docker_image = context.main_variant.container.image
  "bundle_#{docker_image.gsub(/[^A-Za-z0-9]/,'_')}"
end