class Config

Attributes

editor[W]
note_path[R]
path[R]
prompt[W]

Public Class Methods

new(path) click to toggle source
# File lib/cnote/config.rb, line 9
def initialize(path)
  @path = File.expand_path(path)

  if !File.exists?(@path)
    puts "Welcome, new user!"

    @note_path = get_note_path
    save
    puts "Okay, we're ready to go!"
  else
    load
  end
end

Public Instance Methods

editor() click to toggle source
# File lib/cnote/config.rb, line 50
def editor
  @editor || ENV["EDITOR"]
end
get(key) click to toggle source
# File lib/cnote/config.rb, line 68
def get(key)
  case key.downcase
  when 'editor'
    editor
  when 'prompt'
    prompt
  end
end
get_note_path() click to toggle source
# File lib/cnote/config.rb, line 23
def get_note_path
  path = nil

  while !path or !File.exists? path
    print "Enter a path for your note folder: "

    path = File.expand_path gets.chomp
    
    if File.exists? path
      if !File.directory? path
        puts "Hey, that's not a folder!"
      end
    else
      puts "That folder doesn't exist yet. Do you want to create it?"
      case gets.strip.downcase
      when "y", "yes", "yeah", "sure", "ok", "okay", "alright", "yep", "yup"
        FileUtils.mkdir_p path
        puts "Done!"
      else
        puts "Okay."
      end
    end
  end

  return path
end
load() click to toggle source
# File lib/cnote/config.rb, line 83
def load
  conf = YAML.load(File.read(@path))

  @note_path = conf["note_path"]
  @editor = conf["editor"]
  @prompt = conf["prompt"]
end
print() click to toggle source
prompt() click to toggle source
# File lib/cnote/config.rb, line 54
def prompt
  @prompt || ">"
end
save() click to toggle source
# File lib/cnote/config.rb, line 77
def save
  File.open(@path, "w") do |file|
    file.write(YAML.dump(to_hash))
  end
end
set(key, val) click to toggle source
# File lib/cnote/config.rb, line 58
def set(key, val)
  case key.downcase
  when 'editor'
    @editor = val
  when 'prompt'
    @prompt = val
  end
  save
end
to_hash() click to toggle source
# File lib/cnote/config.rb, line 95
def to_hash
  hash = Hash.new
  hash["note_path"] = @note_path if @note_path
  hash["editor"] = @editor if @editor
  hash["prompt"] = @prompt if @prompt
  return hash
end