Class: PredictabilityEngine::DataSources::JiraYaml

Inherits:
Object
  • Object
show all
Defined in:
lib/predictability_engine/data_sources/jira_yaml.rb

Constant Summary collapse

PROJECT_KEY_PATTERN =
/\A[A-Z][A-Z0-9]+\z/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ JiraYaml

Returns a new instance of JiraYaml.



12
13
14
15
# File 'lib/predictability_engine/data_sources/jira_yaml.rb', line 12

def initialize(path)
  @path = Pathname.new(path)
  @config = load_config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



10
11
12
# File 'lib/predictability_engine/data_sources/jira_yaml.rb', line 10

def config
  @config
end

#pathObject (readonly)

Returns the value of attribute path.



10
11
12
# File 'lib/predictability_engine/data_sources/jira_yaml.rb', line 10

def path
  @path
end

Instance Method Details

#priority_aliasesObject



28
29
30
# File 'lib/predictability_engine/data_sources/jira_yaml.rb', line 28

def priority_aliases
  profile_priority_aliases.merge(inline_priority_aliases)
end

#profileObject



17
18
19
20
21
22
# File 'lib/predictability_engine/data_sources/jira_yaml.rb', line 17

def profile
  return @config['jira_profile'] if @config['jira_profile']
  return nil unless @path.basename.to_s.count('.') >= 2

  @path.basename.to_s.split('.').first
end

#queryObject



24
25
26
# File 'lib/predictability_engine/data_sources/jira_yaml.rb', line 24

def query
  @config['query'] || project_query || filter_query || convention_query
end

#workflow_config_pathObject



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/predictability_engine/data_sources/jira_yaml.rb', line 32

def workflow_config_path
  raw = @config['workflow_config']
  if raw && !raw.to_s.empty?
    return Pathname.new(raw).absolute? ? raw : File.expand_path(raw, @path.dirname.to_s)
  end

  name = middle_segment
  return nil if name.nil? || name.empty?

  candidate = File.expand_path("~/.config/jira/#{name}.workflow.yml")
  candidate if File.exist?(candidate)
end