Skip to content

Instantly share code, notes, and snippets.

@SamSaffron
Last active August 29, 2015 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SamSaffron/2d77fc288722f4eb184a to your computer and use it in GitHub Desktop.
Save SamSaffron/2d77fc288722f4eb184a to your computer and use it in GitHub Desktop.
trace = TracePoint.new(:raise) do |tp|
puts tp.raised_exception
puts tp.raised_exception.backtrace[0..25].join("\n")
puts
end
trace.enable
irb(main):006:0* $redis.expire "a", 1.minute
undefined method `to_ary' for 60:Fixnum
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/duration.rb:115:in `method_missing'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/connection/hiredis.rb:46:in `flatten'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/connection/hiredis.rb:46:in `write'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:257:in `block in write'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:236:in `io'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:255:in `write'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:214:in `block (3 levels) in process'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:208:in `each'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:208:in `block (2 levels) in process'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:357:in `ensure_connected'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:207:in `block in process'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:292:in `logging'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:206:in `process'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:112:in `call'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis.rb:314:in `block in expire'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis.rb:37:in `block in synchronize'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis.rb:37:in `synchronize'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/redis-3.2.1/lib/redis.rb:313:in `expire'
/home/sam/Source/discourse/lib/discourse_redis.rb:59:in `block (3 levels) in <class:DiscourseRedis>'
/home/sam/Source/discourse/lib/discourse_redis.rb:27:in `ignore_readonly'
/home/sam/Source/discourse/lib/discourse_redis.rb:59:in `block (2 levels) in <class:DiscourseRedis>'
(irb):6:in `irb_binding'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/workspace.rb:86:in `eval'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/workspace.rb:86:in `evaluate'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/context.rb:379:in `evaluate'
=> false
irb(main):007:0> $redis.expire "a", 60
=> false
irb(main):008:0> 1.minute
=> 60 seconds
irb(main):009:0> 1.minute.to_i
=> 60
irb(main):010:0> 1.minute.class
**drumroll**
[1.minute].flatten(1)
undefined method `to_ary' for 60:Fixnum
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.1.10/lib/active_support/duration.rb:115:in `method_missing'
(irb):4:in `flatten'
(irb):4:in `irb_binding'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/workspace.rb:86:in `eval'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/workspace.rb:86:in `evaluate'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/context.rb:379:in `evaluate'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:489:in `block (2 levels) in eval_input'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:623:in `signal_status'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:486:in `block in eval_input'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/ruby-lex.rb:245:in `block (2 levels) in each_top_level_statement'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/ruby-lex.rb:231:in `loop'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/ruby-lex.rb:231:in `block in each_top_level_statement'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/ruby-lex.rb:230:in `catch'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb/ruby-lex.rb:230:in `each_top_level_statement'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:485:in `eval_input'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:395:in `block in start'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:394:in `catch'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/2.2.0/irb.rb:394:in `start'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.10/lib/rails/commands/console.rb:90:in `start'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.10/lib/rails/commands/console.rb:9:in `start'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.10/lib/rails/commands/commands_tasks.rb:69:in `console'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.10/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
/home/sam/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.10/lib/rails/commands.rb:17:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
@riking
Copy link

riking commented Aug 19, 2015

[8] pry(main)> a = 1.minute
=> 60
[9] pry(main)> a.inspect
=> "60 seconds"
[10] pry(main)> cd a
[11] pry(#<Fixnum>):1> ls
BasicObject#methods: !  !=  __binding__  __id__  __send__  instance_eval  instance_exec  should  should_not
ActiveSupport::ProxyObject#methods: raise
ActiveSupport::Duration#methods: 
  +  -@  ago      eql?      inspect  kind_of?  parts=  until  value=
  -  ==  as_json  from_now  is_a?    parts     since   value
self.methods: __pry__
locals: args  block  method

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment