Class: GitMarkdown::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/git/markdown/configuration.rb

Constant Summary collapse

XDG_CONFIG_HOME =
ENV.fetch("XDG_CONFIG_HOME", File.expand_path("~/.config"))
DEFAULT_PROVIDER =
:github

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



12
13
14
15
16
17
18
# File 'lib/git/markdown/configuration.rb', line 12

def initialize
  @provider = DEFAULT_PROVIDER
  @output_dir = Dir.pwd
  @default_status = :unresolved
  @api_url = nil
  @graphql_url = nil
end

Instance Attribute Details

#api_urlObject

Returns the value of attribute api_url.



10
11
12
# File 'lib/git/markdown/configuration.rb', line 10

def api_url
  @api_url
end

#default_statusObject

Returns the value of attribute default_status.



10
11
12
# File 'lib/git/markdown/configuration.rb', line 10

def default_status
  @default_status
end

#graphql_urlObject

Returns the value of attribute graphql_url.



10
11
12
# File 'lib/git/markdown/configuration.rb', line 10

def graphql_url
  @graphql_url
end

#output_dirObject

Returns the value of attribute output_dir.



10
11
12
# File 'lib/git/markdown/configuration.rb', line 10

def output_dir
  @output_dir
end

#providerObject

Returns the value of attribute provider.



10
11
12
# File 'lib/git/markdown/configuration.rb', line 10

def provider
  @provider
end

#tokenObject

Returns the value of attribute token.



10
11
12
# File 'lib/git/markdown/configuration.rb', line 10

def token
  @token
end

Class Method Details

.loadObject



20
21
22
# File 'lib/git/markdown/configuration.rb', line 20

def self.load
  new.load!
end

Instance Method Details

#config_dirObject



32
33
34
# File 'lib/git/markdown/configuration.rb', line 32

def config_dir
  File.join(XDG_CONFIG_HOME, "git-markdown")
end

#config_fileObject



36
37
38
# File 'lib/git/markdown/configuration.rb', line 36

def config_file
  File.join(config_dir, "config.yml")
end

#credentials_fileObject



40
41
42
# File 'lib/git/markdown/configuration.rb', line 40

def credentials_file
  File.join(config_dir, "credentials")
end

#load!Object



24
25
26
27
28
29
30
# File 'lib/git/markdown/configuration.rb', line 24

def load!
  load_from_file if config_file_exist?
  resolve_credentials
  resolve_api_url if api_url.nil?
  resolve_graphql_url if graphql_url.nil?
  self
end

#save!Object



44
45
46
47
48
# File 'lib/git/markdown/configuration.rb', line 44

def save!
  FileUtils.mkdir_p(config_dir)
  File.write(config_file, config_to_yaml)
  FileUtils.chmod(0o700, config_dir)
end

#save_credentials!(token_value) ⇒ Object



50
51
52
53
54
55
# File 'lib/git/markdown/configuration.rb', line 50

def save_credentials!(token_value)
  FileUtils.mkdir_p(config_dir)
  File.write(credentials_file, token_value)
  FileUtils.chmod(0o600, credentials_file)
  @token = token_value
end