Class: Monorail::Monorail

Inherits:
Object
  • Object
show all
Defined in:
lib/monorail.rb

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Monorail

Returns a new instance of Monorail.



94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/monorail.rb', line 94

def initialize args
  @args = args
  block_given? and yield self

  case @args.environment
  when :rails
    initialize_for_rails
  when :monorail
    initialize_for_monorail
  else
    initialize_default
  end

end

Instance Method Details

#initialize_defaultObject



135
136
137
# File 'lib/monorail.rb', line 135

def initialize_default
  HttpEventMachine.module_eval "alias_method :process_actual_request, :process_default"
end

#initialize_for_monorailObject



120
121
122
123
124
125
# File 'lib/monorail.rb', line 120

def initialize_for_monorail
  $>.puts "initializing monorail environment..."
  require @args.directory + "/monorail_config.rb"
  HttpEventMachine.module_eval "alias_method :process_actual_request, :process_monorail_request"
  $>.puts "done initializing monorail environment"
end

#initialize_for_railsObject



127
128
129
130
131
132
133
# File 'lib/monorail.rb', line 127

def initialize_for_rails
  $>.puts "initializing rails environment..."
  require @args.rails + "/config/environment"
  require "dispatcher"
  $>.puts "done initializing rails environment"
  HttpEventMachine.module_eval "alias_method :process_actual_request, :process_rails_request"
end

#runObject



110
111
112
113
114
115
116
117
# File 'lib/monorail.rb', line 110

def run
  $>.puts "running server on #{@args.host}, port #{@args.port}"
  $>.puts "starting the run..."
  EventMachine.run {
    EventMachine.start_server @args.host, @args.port, HttpEventMachine
    EventMachine.add_periodic_timer(30) {p Time.now}
  }
end