Sha256: 782d6b2b387d4100a7725d4d89deef76c991b2b1d13d934fe4e43c386fb68945

Contents?: true

Size: 1.38 KB

Versions: 423

Compression:

Stored size: 1.38 KB

Contents

#!/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

Version data entries

423 entries across 370 versions & 64 rubygems

Version Path
alloy_sdk-0.1.0 vendor/bundle/ruby/2.6.0/gems/json-1.8.6/tools/server.rb
alloy_sdk-0.1.0 vendor/bundle/ruby/3.0.0/gems/json-1.8.6/tools/server.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/3.0.0/gems/tdiary-5.1.4/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tools/server.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/3.0.0/gems/json-2.3.1/tools/server.rb
tdiary-5.1.5 vendor/bundle/ruby/3.0.0/gems/json-2.3.1/tools/server.rb
tdiary-5.1.5 vendor/bundle/ruby/3.0.0/gems/tdiary-5.1.4/vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tools/server.rb
video_chat_get-0.1.9 vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tools/server.rb
json_pure-2.4.0 tools/server.rb
json-2.4.0 tools/server.rb
tdiary-5.1.4 vendor/bundle/ruby/2.7.0/gems/json-2.3.1/tools/server.rb
video_chat_get-0.1.6 vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tools/server.rb
cloudsmith-api-0.54.15 vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb
cloudsmith-api-0.53.79 vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb
cloudsmith-api-0.53.17 vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb
cloudsmith-api-0.53.3 vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb
cloudsmith-api-0.53.1 vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb
grape-extra_validators-2.0.0 vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb
cloudsmith-api-0.52.121 vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb
cloudsmith-api-0.52.92 vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb
cloudsmith-api-0.52.79 vendor/bundle/ruby/2.6.0/gems/json-2.3.1/tools/server.rb