Sha256: 7ccbddf11437bab148e90ca0c65a65c5919d174efefe0763498baf4a3802a26e

Contents?: true

Size: 869 Bytes

Versions: 1

Compression:

Stored size: 869 Bytes

Contents

# frozen_string_literal: true

require "yaml"

module Groundskeeper
  # Accesses project details stored in the home directory.
  class Project
    attr_reader :details

    DETAILS_PATH = "~/.project_details/projects.yml"
    JIRA_PREFIX_KEY = "jira_prefix"
    PROJECT_NAME_KEY = "name"
    SOURCE_CONTROL_USERNAME_KEY = "scm_username"

    def self.build(repository_name)
      new(
        yaml: Document.new(DETAILS_PATH).read,
        repository_name: repository_name
      )
    end

    def initialize(yaml:, repository_name:)
      projects = YAML.safe_load(yaml) || {}
      @details = projects[repository_name] || {}
    end

    def project_name
      details[PROJECT_NAME_KEY] || ""
    end

    def jira_prefix
      details[JIRA_PREFIX_KEY] || ""
    end

    def source_control_username
      details[SOURCE_CONTROL_USERNAME_KEY] || ""
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
groundskeeper-bitcore-0.1.1 lib/groundskeeper/project.rb