Sha256: f9704de79036417d4743c11a200222b8cfae597b22d760f2476a360bda360c2b

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

require 'yaml'
require 'singleton'

module WhatsupGithub
  # Creates readable objects from confirurarion files
  class Config
    attr_reader :config
    include Singleton

    def initialize
      @file = '.whatsup.yml'
      @config = {}
    end

    def read
      unless File.exist?(@file)
        dist_file = File.expand_path("../template/#{@file}", __dir__)
        FileUtils.cp dist_file, @file
      end
      @config = YAML.load_file @file
      return {} if !@config
      @config
    end

    def repos
      read.dig 'repos'
    end

    def base_branch
      read.dig 'base_branch'
    end

    def output_format
      read.dig 'output_format'
    end

    def labels
      required_labels + optional_labels
    end

    def required_labels
      res = read.dig 'labels', 'required'
      return [] unless res
      res
    end

    def optional_labels
      res = read.dig 'labels', 'optional'
      return [] unless res
      res
    end

    def magic_word
      read.dig 'magic_word'
    end
  end
end

if $PROGRAM_NAME == __FILE__
  config = WhatsupGithub::Config.instance
  p config.repos
  p config.base_branch
  p config.output_format
  p config.labels
  p config.required_labels
  p config.optional_labels
  p config.magic_word
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
whatsup_github-0.3.1 lib/whatsup_github/config-reader.rb
whatsup_github-0.3.0 lib/whatsup_github/config-reader.rb