public
Rubygem
Description: Merb Core: All you need. None you don't.
Homepage: http://www.merbivore.com
Clone URL: git://github.com/wycats/merb-core.git
daikini (author)
Wed Feb 13 08:55:22 -0800 2008
commit  bdfa396c8c4c6dda7a9a4a3a7adaa30b8d39fb85
tree    1caaaa691b1a64a76ebfbf4cd6bc59c8a8cba603
parent  d1d519fe19dcd2d58d349f4216c642588278997d
merb-core / lib / merb-core / rack / adapter / irb.rb
100644 45 lines (41 sloc) 0.983 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
module Merb
  module Rack
    class Console
      def params() {} end
      
      def url(name, params={})
        Merb::Router.generate(name, params)
      end
      
      def show_routes
        seen = []
        unless Merb::Router.named_routes.empty?
          puts "Named Routes"
          Merb::Router.named_routes.each do |name,route|
            puts " #{name}: #{route}"
            seen << route
          end
        end
        puts "Anonymous Routes"
        (Merb::Router.routes - seen).each do |route|
          puts " #{route}"
        end
        nil
      end
    end
 
    class Irb
 
      def self.start(opts={})
        m = Merb::Rack::Console.new
        Object.send(:define_method, :merb) {
          m
        }
        ARGV.clear # Avoid passing args to IRB
        require 'irb'
        require 'irb/completion'
        if File.exists? ".irbrc"
          ENV['IRBRC'] = ".irbrc"
        end
        IRB.start
        exit
      end
    end
  end
end