class Nv::Config

Public Class Methods

new(config_path) click to toggle source
Calls superclass method
# File lib/nv/config.rb, line 13
def initialize(config_path)
  # Initialize config file
  @config_path = config_path
  config_dir = File.dirname(@config_path)

  Dir.mkdir(config_dir) unless Dir.exist?(config_dir)
  FileUtils.touch(@config_path) unless File.exist?(@config_path)

  @config = YAML.load(open(@config_path).read) || {}
  super(@config)
end

Public Instance Methods

save() click to toggle source
# File lib/nv/config.rb, line 25
def save
  File.open(@config_path, 'w') do |f|
    f.print YAML.dump(transform_keys(self.to_h){|k| k.to_s})
  end
end
verify_for_authentication() click to toggle source
# File lib/nv/config.rb, line 31
def verify_for_authentication
  self.email && self.password
end
verify_for_authentication!(cmd) click to toggle source
# File lib/nv/config.rb, line 35
    def verify_for_authentication!(cmd)
      unless verify_for_authentication
        puts <<-EOD.undent
        `nv #{cmd}` should be given email and password.
        $ nv config email <email>
        $ nv config password <password>
        EOD
        exit
      end
    end

Private Instance Methods

transform_keys(hs) { |key| ... } click to toggle source
# File lib/nv/config.rb, line 48
def transform_keys(hs)
  result = {}
  hs.each_key do |key|
    result[yield(key)] = hs[key]
  end
  result
end