/usr/share/doc/ruby-json/examples/server.rb is in ruby-json 1.8.3-1build4.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #!/usr/bin/env ruby
# encoding: utf-8
require 'webrick'
include WEBrick
$:.unshift 'ext'
$:.unshift 'lib'
require 'json'
class JSONServlet < HTTPServlet::AbstractServlet
@@count = 1
def do_GET(req, res)
obj = {
"TIME" => Time.now.strftime("%FT%T"),
"foo" => "Bär",
"bar" => "© ≠ €!",
'a' => 2,
'b' => 3.141,
'COUNT' => @@count += 1,
'c' => 'c',
'd' => [ 1, "b", 3.14 ],
'e' => { 'foo' => 'bar' },
'g' => "松本行弘",
'h' => 1000.0,
'i' => 0.001,
'j' => "\xf0\xa0\x80\x81",
}
res.body = JSON.generate obj
res['Content-Type'] = "application/json"
end
end
def create_server(err, dir, port)
dir = File.expand_path(dir)
err.puts "Surf to:", "http://#{Socket.gethostname}:#{port}"
s = HTTPServer.new(
:Port => port,
:DocumentRoot => dir,
:Logger => WEBrick::Log.new(err),
:AccessLog => [
[ err, WEBrick::AccessLog::COMMON_LOG_FORMAT ],
[ err, WEBrick::AccessLog::REFERER_LOG_FORMAT ],
[ err, WEBrick::AccessLog::AGENT_LOG_FORMAT ]
]
)
s.mount("/json", JSONServlet)
s
end
default_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'data'))
dir = ARGV.shift || default_dir
port = (ARGV.shift || 6666).to_i
s = create_server(STDERR, dir, 6666)
t = Thread.new { s.start }
trap(:INT) do
s.shutdown
t.join
exit
end
sleep
|