class Dug::Configurator
Attributes
application_credentials_file[RW]
client_id[RW]
client_secret[RW]
label_rules[RW]
processed_label_name[RW]
token_store[RW]
unprocessed_label_name[RW]
Public Class Methods
new()
click to toggle source
# File lib/dug/configurator.rb, line 14 def initialize @label_rules = {} LABEL_RULE_TYPES.each do |type| label_rules[Util.pluralize(type)] = {} end end
Public Instance Methods
_clear!()
click to toggle source
# File lib/dug/configurator.rb, line 74 def _clear! %w( application_credentials_file client_id client_secret token_store unprocessed_label_name rule_file ).each do |var| instance_variable_set("@#{var}", nil) end initialize end
label_for(type, name, opts={})
click to toggle source
# File lib/dug/configurator.rb, line 55 def label_for(type, name, opts={}) type = type.to_s run_validations(type, name) rule = label_rules[Util.pluralize(type)][name] case rule when String, nil rule when Array if type == 'repository' raise ArgumentError, "Multiple remotes possible and no remote specified" unless opts.keys.include?(:remote) rule = rule.detect do |r| r['remote'] == opts[:remote] end rule['label'] if rule end end end
rule_file()
click to toggle source
# File lib/dug/configurator.rb, line 45 def rule_file @rule_file end
rule_file=(file_path)
click to toggle source
# File lib/dug/configurator.rb, line 49 def rule_file=(file_path) @rule_file = file_path load_rules @rule_file end
Private Instance Methods
load_rules()
click to toggle source
# File lib/dug/configurator.rb, line 93 def load_rules # TODO should validate incoming YAML loaded_rules = YAML.load_file(rule_file) LABEL_RULE_TYPES.each do |type| type = Util.pluralize(type) @label_rules[type] = loaded_rules[type] if loaded_rules[type] end @label_rules end
run_validations(type, name)
click to toggle source
# File lib/dug/configurator.rb, line 105 def run_validations(type, name) validate_rule_type!(type) validate_reason!(name) if type == 'reason' validate_state!(name) if type == 'state' end