Building off my previous ~/.pryrc I wanted to automatically load up my core project Ruby file, spec_helper.rb, and fire off some initialization routines whenever I start a new Pry session in my project's directory.
Because the contents of the local directory's .pryrc is evaluated before the :beforesession hook from ~/.pryrc timing is a bit more delicate. I get around this by creating a custom function named prybeforesession (but you could name it anything you want really) and have the ~/.pryrc's before_session hook execute it if it exists.
So my project's .pryrc:
#~/Projects/ActiveAvro/.pryrc def _pry_before_session require 'active_avro' require 'spec_helper' ActiveAvroHelper.initialize end
And my updated ~/.pryrc looks like this:
#~/.pryrc require 'interactive_editor' Pry.config.editor = "mate" # add the current directories /lib and /spec directories to the path if they exist before_session = Proc.new do |out, target, _pry_| dir = `pwd`.chomp %w(lib spec test).map{ |d| "#{dir}/#{d}" }.each { |p| $: << p unless !Dir.exists?(p) || $:.include?(p) } # if a local .pryrc defines a _pry_before_session function, execute it now send(:_pry_before_session) rescue nil end Pry.hooks[:before_session] = before_session