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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 350b341562940b09dc9d9940b4b592618afde832
4
- data.tar.gz: be9b072b3e16de799a81dba785772afca39bf0cb
3
+ metadata.gz: e5d01da46b651732378a676f485551e16bcf77c8
4
+ data.tar.gz: 58f6b57c14e6b9bf732716a64b42734a56be8095
5
5
  SHA512:
6
- metadata.gz: bd4ef3108145f9b4912ef585450d624ba53043dcfcefa9f27a3392aba8c173847a9800ab7cdb3e71f1ccc06d345770cafd50fe75670097f9f47d4495fa6f5acf
7
- data.tar.gz: 7865e98b8f62f257c4c0ed5a7a7375bec5459eda3fd89aef3d2400b298e339e850ff8ee2114ff58cb094a28699e3908d73efd4bc2ca29e0075f19f1420edec9f
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
- require 'hbserver'
4
- p ARGV
5
- p Hbserver.hello
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
@@ -1,4 +1,5 @@
1
1
  require "hbserver/version"
2
+ require "hbserver/server"
2
3
 
3
4
  module Hbserver
4
5
  module_function
@@ -6,8 +7,4 @@ module Hbserver
6
7
  def hello
7
8
  "helloworld"
8
9
  end
9
-
10
- def install
11
- `cp ../bin/hbs /usr/bin/`
12
- end
13
10
  end
@@ -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
+
@@ -1,3 +1,3 @@
1
1
  module Hbserver
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
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.3
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: