Class: Rbk::Configuration

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ Configuration

Returns a new instance of Configuration.



23
24
25
26
# File 'lib/rbk/configuration.rb', line 23

def initialize(config={})
  @config = defaults.merge(config)
  @parser = create_parser
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m, *args, &block) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/rbk/configuration.rb', line 40

def method_missing(m, *args, &block)
  if @config.key?(m.to_s)
    @config[m.to_s]
  else
    super
  end
end

Class Method Details

.create(argv) ⇒ Object



8
9
10
# File 'lib/rbk/configuration.rb', line 8

def self.create(argv)
  self.load.parse(argv)
end

.loadObject



12
13
14
15
16
17
18
19
20
21
# File 'lib/rbk/configuration.rb', line 12

def self.load
  if File.exists?('.rbk.yml')
    config = YAML.load_file('.rbk.yml')
  elsif File.exists?(File.join(Dir.home, '.rbk.yml'))
    config = YAML.load_file(File.join(Dir.home, '.rbk.yml'))
  else
    config = {}
  end
  new(config)
end

Instance Method Details

#aws_credentialsObject



60
61
62
63
64
65
# File 'lib/rbk/configuration.rb', line 60

def aws_credentials
  {
    access_key_id: @config['aws_access_key_id'],
    secret_access_key: @config['aws_secret_access_key']
  }
end

#help?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/rbk/configuration.rb', line 48

def help?
  !!@config['show_help']
end

#parse(argv) ⇒ Object



28
29
30
31
# File 'lib/rbk/configuration.rb', line 28

def parse(argv)
  @parser.parse(argv)
  self
end

#quiet?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/rbk/configuration.rb', line 52

def quiet?
  !!@config['quiet']
end

#usageObject



56
57
58
# File 'lib/rbk/configuration.rb', line 56

def usage
  @parser.to_s
end

#validateObject



33
34
35
36
37
38
# File 'lib/rbk/configuration.rb', line 33

def validate
  invalid_option?(@config['bucket'], 'Missing S3 bucket')
  invalid_option?(@config['github_access_token'], 'Missing GitHub access token')
  invalid_option?(@config['organization'], 'Missing organization')
  self
end