Class: Merb::Rack::Console

Inherits:
Object show all
Defined in:
merb-core/lib/merb-core/rack/adapter/irb.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) close_sandbox!

Ends a sandboxed session (delegates to any Merb::Orms::* modules).

An ORM should implement Merb::Orms::MyOrm#close_sandbox! to support this. Usually this involves rolling back a transaction.



78
79
80
81
# File 'merb-core/lib/merb-core/rack/adapter/irb.rb', line 78

def close_sandbox!
  orm_modules.each { |orm| orm.close_sandbox! if orm.respond_to?(:close_sandbox!) }
  puts "Modifications have been rolled back"
end

- (Object) open_sandbox!

Starts a sandboxed session (delegates to any Merb::Orms::* modules).

An ORM should implement Merb::Orms::MyOrm#open_sandbox! to support this. Usually this involves starting a transaction.



67
68
69
70
71
# File 'merb-core/lib/merb-core/rack/adapter/irb.rb', line 67

def open_sandbox!
  puts "Loading #{Merb.environment} environment in sandbox (Merb #{Merb::VERSION})"
  puts "Any modifications you make will be rolled back on exit"
  orm_modules.each { |orm| orm.open_sandbox! if orm.respond_to?(:open_sandbox!) }
end

- (Object) reload!

Reloads classes using Merb::BootLoader::ReloadClasses.



22
23
24
# File 'merb-core/lib/merb-core/rack/adapter/irb.rb', line 22

def reload!
  Merb::BootLoader::ReloadClasses.reload!
end

- (Object) resource(*args)



15
16
17
18
# File 'merb-core/lib/merb-core/rack/adapter/irb.rb', line 15

def resource(*args)
  args << {}
  Merb::Router.resource(*args)
end

- (Object) route_to(url, method = :get, env_overrides = {})

Returns a request for a specific URL and method.



28
29
30
31
32
# File 'merb-core/lib/merb-core/rack/adapter/irb.rb', line 28

def route_to(url, method = :get, env_overrides = {})
  request_env = ::Rack::MockRequest.env_for(url)
  request_env["REQUEST_METHOD"] = method.to_s
  Merb::Router.route_for(Merb::Request.new(request_env.merge(env_overrides)))
end

- (Object) show_routes

Prints all routes for the application.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'merb-core/lib/merb-core/rack/adapter/irb.rb', line 36

def show_routes
  seen = []
  unless Merb::Router.named_routes.empty?
    puts "==== Named routes"
    Merb::Router.named_routes.each do |name,route|
      # something weird happens when you combine sprintf and irb
      puts "Helper     : #{name}"
      meth = $1.upcase if route.conditions[:method].to_s =~ /(get|post|put|delete)/
      puts "HTTP method: #{meth || 'GET'}"
      puts "Route      : #{route}"
      puts "Params     : #{route.params.inspect}"
      puts
      seen << route
    end
  end
  puts "==== Anonymous routes"
  (Merb::Router.routes - seen).each do |route|
    meth = $1.upcase if route.conditions[:method].to_s =~ /(get|post|put|delete)/
    puts "HTTP method: #{meth || 'GET'}"
    puts "Route      : #{route}"
    puts "Params     : #{route.params.inspect}"
    puts
  end
  nil
end

- (Object) trace_log!

Explicitly show logger output during IRB session



85
86
87
# File 'merb-core/lib/merb-core/rack/adapter/irb.rb', line 85

def trace_log!
  Merb.logger.auto_flush = true
end

- (Object) url(name, *args)



7
8
9
10
# File 'merb-core/lib/merb-core/rack/adapter/irb.rb', line 7

def url(name, *args)
  args << {}
  Merb::Router.url(name, *args)
end