我现在正在研究Camping
web 框架是如何工作的,我不明白Camping::Server.start
第 10 行在/bin/camping
做什么。
我希望这会在第 131 行调用该start
方法/lib/camping/server.rb
,因此我puts 'hello'
在该方法的开头放置了一个简单的语句,希望在我运行时调用该语句/bin/camping
。但是,我从来没有看到我的 puts 语句被调用,所以我只能假设它不是start
被调用的方法。
我觉得我在这里遗漏了一些明显的东西。以下是露营 github 页面和相关代码部分的链接:
Github:https ://github.com/camping/camping
来自/bin/camping
:
#!/usr/bin/env ruby
$:.unshift File.dirname(__FILE__) + "/../lib"
require 'camping'
require 'camping/server'
begin
Camping::Server.start
rescue OptionParser::ParseError => ex
puts "did it error"
STDERR.puts "!! #{ex.message}"
puts "** use `#{File.basename($0)} --help` for more details..."
exit 1
end
来自/lib/server.rb
:
def start
if options[:server] == "console"
puts "** Starting console"
@reloader.reload!
r = @reloader
eval("self", TOPLEVEL_BINDING).meta_def(:reload!) { r.reload!; nil }
ARGV.clear
IRB.start
exit
else
name = server.name[/\w+$/]
puts "** Starting #{name} on #{options[:Host]}:#{options[:Port]}"
super
end
end