class Gitomator::Task::Config::TeamConfig

Attributes

members[R]
name[R]

Public Class Methods

from_hash(config) click to toggle source

@param config [Hash] - Configuration data (e.g. parsed from a YAML file) @return [Enumerable<Gitomator::Task::Config::TeamConfig>]

# File lib/gitomator/task/config/team_config.rb, line 15
def self.from_hash(config)
  return config.map {|name, members| new(name, members) }
end
new(name, members_config) click to toggle source

@param name [String] @param members_config [Array] Each item is either a string (username) or Hash with one entry (username -> role)

# File lib/gitomator/task/config/team_config.rb, line 28
def initialize(name, members_config)
  @name    = name
  @members = parse_members_config(members_config)
end

Public Instance Methods

parse_members_config(members_config) click to toggle source
# File lib/gitomator/task/config/team_config.rb, line 34
def parse_members_config(members_config)
  result = {}

  members_config.each do |entry|
    if entry.is_a? String
      result[entry] = 'member' # Default role is 'member'
    elsif entry.is_a?(Hash) && entry.length == 1
      result[entry.keys.first] = entry.values.first
    else
      raise "Invalid team-member config, #{entry}."
    end
  end

  return result

end