Module: Ocak::IssueBackend

Defined in:
lib/ocak/issue_backend.rb

Class Method Summary collapse

Class Method Details

.auto_detect(config:, logger: nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ocak/issue_backend.rb', line 19

def self.auto_detect(config:, logger: nil)
  store_dir = File.join(config.project_dir, '.ocak', 'issues')
  has_local = Dir.exist?(store_dir) && Dir.glob(File.join(store_dir, '*.md')).any?

  if has_local
    logger&.info('Auto-detected local issue store in .ocak/issues/')
    LocalIssueFetcher.new(config: config, logger: logger)
  else
    IssueFetcher.new(config: config, logger: logger)
  end
end

.build(config:, logger: nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/ocak/issue_backend.rb', line 8

def self.build(config:, logger: nil)
  case config.issue_backend
  when 'local'
    LocalIssueFetcher.new(config: config, logger: logger)
  when 'github'
    IssueFetcher.new(config: config, logger: logger)
  else
    auto_detect(config: config, logger: logger)
  end
end