un 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/lib/un.rb +44 -1
  4. data/un.gemspec +2 -2
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 570bbaaa3fd83fed605b117c23c1a1b6a8ca94579bdbfa716f1116186c80b8be
4
- data.tar.gz: 5a4b7ebda1ce0472dcfe36cc0901849382d1c3e9e9a39023e6413e5022cadc6f
3
+ metadata.gz: d078bdacd95fd4ec259a706d8bfb3ce83778ca8b1982f58f803c31f86143035a
4
+ data.tar.gz: 9e6bcbe036e2868c42fd7887ee8877115139f107d1d4ecf8103360176cb34cc6
5
5
  SHA512:
6
- metadata.gz: ef5c05b6d7b732d21b2892f6e962db79b028353da5631f5be8b5e4515a491a73b3f9c3aae7bd4fd73b1909eaf8ef5ad4640203a246dedf5be4904837dc61d314
7
- data.tar.gz: c31d629139e8714c81fc000d286c387d93910a8f6ee69c360703ed9ed79ddd6889583527bd51cda392c6e08841970ff82f0697f3fbd64be4e2411641da53d501
6
+ metadata.gz: dc9b3b8c54478d2e04cd18042458c4d3382b6ed263ada916239591814d73f12c341ca72fb978310693b83b9dc084211fc7a772bb5636be1f938b95de2417138b
7
+ data.tar.gz: c8f31f13962e5f0abc6804183fe331067553c8980866dac9e4a9dd651c3c8f43cf2584761b25f4092a901a380b534131b57675f6d4341ba1f055968de6d0e060
data/README.md CHANGED
@@ -33,6 +33,7 @@ ruby -run -e touch -- [OPTION] FILE
33
33
  ruby -run -e wait_writable -- [OPTION] FILE
34
34
  ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION]
35
35
  ruby -run -e httpd -- [OPTION] [DocumentRoot]
36
+ ruby -run -e colorize -- [FILE]
36
37
  ruby -run -e help [COMMAND]
37
38
  ```
38
39
 
data/lib/un.rb CHANGED
@@ -23,6 +23,7 @@
23
23
  # ruby -run -e wait_writable -- [OPTION] FILE
24
24
  # ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION]
25
25
  # ruby -run -e httpd -- [OPTION] [DocumentRoot]
26
+ # ruby -run -e colorize -- [FILE]
26
27
  # ruby -run -e help [COMMAND]
27
28
 
28
29
  require "fileutils"
@@ -326,7 +327,11 @@ def httpd
326
327
  "ServerName=NAME", "ServerSoftware=NAME",
327
328
  "SSLCertificate=CERT", "SSLPrivateKey=KEY") do
328
329
  |argv, options|
329
- require 'webrick'
330
+ begin
331
+ require 'webrick'
332
+ rescue LoadError
333
+ abort "webrick is not found. You may need to `gem install webrick` to install webrick."
334
+ end
330
335
  opt = options[:RequestTimeout] and options[:RequestTimeout] = opt.to_i
331
336
  [:Port, :MaxClients].each do |name|
332
337
  opt = options[name] and (options[name] = Integer(opt)) rescue nil
@@ -342,6 +347,21 @@ def httpd
342
347
  end
343
348
  options[:Port] ||= 8080 # HTTP Alternate
344
349
  options[:DocumentRoot] = argv.shift || '.'
350
+ s = nil
351
+ options[:StartCallback] = proc {
352
+ logger = s.logger
353
+ logger.info("To access this server, open this URL in a browser:")
354
+ s.listeners.each do |listener|
355
+ if options[:SSLEnable]
356
+ addr = listener.addr
357
+ addr[3] = "127.0.0.1" if addr[3] == "0.0.0.0"
358
+ addr[3] = "::1" if addr[3] == "::"
359
+ logger.info(" https://#{Addrinfo.new(addr).inspect_sockaddr}")
360
+ else
361
+ logger.info(" http://#{listener.connect_address.inspect_sockaddr}")
362
+ end
363
+ end
364
+ }
345
365
  s = WEBrick::HTTPServer.new(options)
346
366
  shut = proc {s.shutdown}
347
367
  siglist = %w"TERM QUIT"
@@ -354,6 +374,29 @@ def httpd
354
374
  end
355
375
  end
356
376
 
377
+ ##
378
+ # Colorize ruby code.
379
+ #
380
+ # ruby -run -e colorize -- [FILE]
381
+ #
382
+
383
+ def colorize
384
+ begin
385
+ require "irb/color"
386
+ rescue LoadError
387
+ raise "colorize requires irb 1.1.0 or later"
388
+ end
389
+ setup do |argv, |
390
+ if argv.empty?
391
+ puts IRB::Color.colorize_code STDIN.read
392
+ return
393
+ end
394
+ argv.each do |file|
395
+ puts IRB::Color.colorize_code File.read(file)
396
+ end
397
+ end
398
+ end
399
+
357
400
  ##
358
401
  # Display help message.
359
402
  #
data/un.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "un"
5
- spec.version = "0.1.0"
5
+ spec.version = "0.2.0"
6
6
  spec.authors = ["WATANABE Hirofumi"]
7
7
  spec.email = ["eban@ruby-lang.org"]
8
8
 
@@ -19,6 +19,6 @@ Gem::Specification.new do |spec|
19
19
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
20
20
  end
21
21
  spec.bindir = "exe"
22
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
22
+ spec.executables = []
23
23
  spec.require_paths = ["lib"]
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: un
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - WATANABE Hirofumi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-03 00:00:00.000000000 Z
11
+ date: 2021-09-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Utilities to replace common UNIX commands
14
14
  email:
@@ -48,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
48
  - !ruby/object:Gem::Version
49
49
  version: '0'
50
50
  requirements: []
51
- rubygems_version: 3.2.0.rc.2
51
+ rubygems_version: 3.2.22
52
52
  signing_key:
53
53
  specification_version: 4
54
54
  summary: Utilities to replace common UNIX commands