hbserver 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/hbs +28 -3
- data/lib/hbserver.rb +1 -4
- data/lib/hbserver/server.rb +76 -0
- data/lib/hbserver/version.rb +1 -1
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5d01da46b651732378a676f485551e16bcf77c8
|
4
|
+
data.tar.gz: 58f6b57c14e6b9bf732716a64b42734a56be8095
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a207096ea1a983b0ba3a3f874114825a24baafabe92d5d3daa6e321ce90cbc63d73e4a356dbb0bd7380051146f80a53bf1c3261f4b7e5675a5b1229250ca23de
|
7
|
+
data.tar.gz: 2396294ebd2c51fd426fcba14d3bdd4dd4e1c22a4d151414df5b611bfed7d6fc9f847f749c7ac493b2a5067ac7b61d1fe04404a2c06f4d7bcafa683526b61c0f
|
data/bin/hbs
CHANGED
@@ -1,5 +1,30 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
argv = ARGV
|
4
|
+
|
5
|
+
_cmd = argv.shift
|
6
|
+
|
7
|
+
# 简单解析命令行参数 启动服务 和 设置环境
|
8
|
+
case _cmd
|
9
|
+
when "s"
|
10
|
+
_port = "3000"
|
11
|
+
_env = "development"
|
12
|
+
while !argv.empty?
|
13
|
+
_cmd = argv.shift
|
14
|
+
s = argv.shift
|
15
|
+
raise "命令#{_cmd}缺少参数" if s.nil?
|
16
|
+
case _cmd
|
17
|
+
when "-p"
|
18
|
+
_port = s if s =~ /[0-9]+/
|
19
|
+
when "-e"
|
20
|
+
_env = s if s =~ /[a-z]+/
|
21
|
+
end
|
22
|
+
end
|
23
|
+
require 'hbserver'
|
24
|
+
Hbserver::Server.new(_port,_env).start
|
25
|
+
when "c"
|
26
|
+
require 'hbserver'
|
27
|
+
IRB.start
|
28
|
+
else
|
29
|
+
p "help"
|
30
|
+
end
|
data/lib/hbserver.rb
CHANGED
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'rack'
|
2
|
+
require 'json'
|
3
|
+
module Hbserver
|
4
|
+
module_function
|
5
|
+
class Server
|
6
|
+
def initialize _port,_env
|
7
|
+
@port,@env = _port,_env
|
8
|
+
end
|
9
|
+
def call env
|
10
|
+
request = Rack::Request.new env
|
11
|
+
response = Rack::Response.new
|
12
|
+
|
13
|
+
_path_info = request.path_info #=> uri 路径
|
14
|
+
_params = request.params #=> 参数
|
15
|
+
_request_method = request.request_method #=> 请求方法 get post xhr 等
|
16
|
+
|
17
|
+
|
18
|
+
# _body = env.map{|k,v| "#{k} => #{v}" } .join("<br/>")
|
19
|
+
# _body = {a: 123, b: 456}.to_json
|
20
|
+
_body = {
|
21
|
+
ip: request.ip,
|
22
|
+
cookies: request.cookies,
|
23
|
+
session: request.session,
|
24
|
+
session_options: request.session_options,
|
25
|
+
referer: request.referer,
|
26
|
+
user_agent: request.user_agent,
|
27
|
+
method: request.request_method,
|
28
|
+
path: request.path,
|
29
|
+
path_info: request.path_info,
|
30
|
+
params: request.params,
|
31
|
+
port: request.port,
|
32
|
+
url: request.url,
|
33
|
+
base_url: request.base_url,
|
34
|
+
fullpath: request.fullpath,
|
35
|
+
host: request.host,
|
36
|
+
host_with_port: request.host_with_port,
|
37
|
+
logger: request.logger,
|
38
|
+
media_type: request.media_type,
|
39
|
+
media_type_params: request.media_type_params,
|
40
|
+
POST: request.POST,
|
41
|
+
query_string: request.query_string,
|
42
|
+
scheme: request.scheme,
|
43
|
+
script_name: request.script_name,
|
44
|
+
ssl: request.ssl?,
|
45
|
+
trace: request.trace?,
|
46
|
+
xhr: request.xhr?,
|
47
|
+
client: request['client']
|
48
|
+
}.to_json
|
49
|
+
|
50
|
+
if _path_info == "/baidu"
|
51
|
+
response.redirect('http://baidu.com')
|
52
|
+
else
|
53
|
+
# response.body = [_body]
|
54
|
+
response.write _body
|
55
|
+
response.headers["Content-Length"] = _body.to_s.bytesize.to_s
|
56
|
+
|
57
|
+
response.headers['Transfer-Encoding'] = 'chunked'
|
58
|
+
|
59
|
+
# response.headers["Content-Type"] = "text/html"
|
60
|
+
response.headers["Content-Type"] = "application/json"
|
61
|
+
# response.headers["Content-Type"] = "text/plain"
|
62
|
+
|
63
|
+
response.status = 200
|
64
|
+
end
|
65
|
+
|
66
|
+
response.finish
|
67
|
+
|
68
|
+
#[200,{},[_request_method]]
|
69
|
+
end
|
70
|
+
|
71
|
+
def start
|
72
|
+
Rack::Handler::Thin.run self,:Port => @port
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
data/lib/hbserver/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hbserver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yoshikizh
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rack
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rspec
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -76,6 +90,7 @@ extra_rdoc_files: []
|
|
76
90
|
files:
|
77
91
|
- bin/hbs
|
78
92
|
- lib/hbserver.rb
|
93
|
+
- lib/hbserver/server.rb
|
79
94
|
- lib/hbserver/version.rb
|
80
95
|
homepage: ''
|
81
96
|
licenses:
|