class Utilities

Attributes

model_directory[W]
tmp_directory[W]

Public Instance Methods

build_model(name)
Alias for: write_model
edit_models() click to toggle source
# File lib/pry_utilities.rb, line 21
def edit_models
  raise "Directory does not exist" unless File.exist?(model_directory)
  raise "ENV['EDITOR'] not set" unless ENV['EDITOR']
  `#{ENV['EDITOR']} #{model_directory}`
  puts "The models are open in your editor, but you will need to load them again after completing your work."
  true
end
get_note(type="md") click to toggle source

Great for writing descriptions without messing around with quotes and escapes and things TODO: Make this work for several sessions. (Thread it?)

# File lib/pry_utilities.rb, line 72
def get_note(type="md")
  contents = nil
  begin
    filename = File.join(tmp_directory, "#{self.object_id}.#{type}")
    i = 0
    while File.exist?(filename)
      filename = File.join(tmp_directory, "#{self.object_id}#{i}.#{type}")
      i += 1
    end
    raise "ENV['EDITOR'] not set" unless ENV['EDITOR']
    `#{ENV['EDITOR']} #{filename}`
    contents = File.read(filename)
  ensure
    puts "Cleaning up temp file and exiting ..."
    FileUtils.rm_f(filename)
  end
end
list_models() click to toggle source
# File lib/pry_utilities.rb, line 59
def list_models
  Dir.glob("#{model_directory}/*.rb").map { |file| File.basename(file).split('.')[0..-2].join('.').to_sym}
  true
end
load_model(name) click to toggle source
# File lib/pry_utilities.rb, line 29
def load_model(name)
  raise "Directory does not exist" unless File.exist?(model_directory)
  filename = File.join(model_directory, "#{name}.rb")
  load filename
end
load_models() click to toggle source
# File lib/pry_utilities.rb, line 35
def load_models
  Dir.glob("#{model_directory}/*.rb").map { |filename| load filename}
end
model_directory() click to toggle source
# File lib/pry_utilities.rb, line 47
def model_directory
  return @model_directory if @model_directory
  if File.exists?(user_directory)
    FileUtils.mkdir(user_model_directory) unless File.exists?(user_model_directory)
    @model_directory = user_model_directory
  elsif File.exists?("/tmp")
    @model_directory = File.expand_path("/tmp") if File.exists?("/tmp")
  end
  @model_directory
end
tmp_directory() click to toggle source
# File lib/pry_utilities.rb, line 64
def tmp_directory
  @tmp_directory ||= "/tmp"
end
update_model(name)
Alias for: write_model
user_directory() click to toggle source
# File lib/pry_utilities.rb, line 39
def user_directory
  File.expand_path("~/.gearbox")
end
user_model_directory() click to toggle source
# File lib/pry_utilities.rb, line 43
def user_model_directory
  @user_model_directory ||= File.join(user_directory, "models")
end
write_model(name) click to toggle source

Great for writing ad hoc models. TODO: Make this work for several sessions. (Thread it?)

# File lib/pry_utilities.rb, line 11
def write_model(name)
  raise "Directory does not exist" unless File.exist?(model_directory)
  filename = File.join(model_directory, "#{name}.rb")
  raise "ENV['EDITOR'] not set" unless ENV['EDITOR']
  `#{ENV['EDITOR']} #{filename}`
  load filename
end
Also aliased as: update_model, build_model