wands 0.1.0 → 0.2.0

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
  SHA256:
3
- metadata.gz: ed955880d15ca35b40902f4be003d4615c049b113f7408873a64a0553a1a9e78
4
- data.tar.gz: da44bcd5f0c393bf14ff2c55d16acd1eef21ac2073ad60f3e58b5d267fbc4db7
3
+ metadata.gz: 85deebb2e0cb4dcd23e7058fbfcd35adf34f25c09ea045cd12b457352d159578
4
+ data.tar.gz: eeee5cf3b1bcf639a61c7247e13cdcfbc39b8d8549cb40f7bdbe5fff6ab37f84
5
5
  SHA512:
6
- metadata.gz: e75f52070180a29dee8a4d2a0dbfa0d7bf077cf09d917948610f6db0c06b4be21c5ad3a91adb62f5d2992746488e08580d0e9780e09d7d528dc4b111055ba35d
7
- data.tar.gz: c2dcf0cc618b07e62f79f5113c4596b848a77122cb97e60457bebf108404122898261a7610de4fc0c119c3aa629c9705a630f4fc17d2d6308be98d625de4041c
6
+ metadata.gz: bd17edc05ff18257def2f4d2b313e3d9e977de9fffd25104c28bf4b5383106e723bf971a3328f1826b72831b869294382b57db3f9cf1f607b1e7da7bcf543345
7
+ data.tar.gz: f0e091b5c18cc5a10b71be38cc3c79df8584bdc9f0e5a143c795379e8ef8ec9a630374a767a27ec5096591a7a2872f6afd53188755a0f592690fa8f2a2f27144
data/lib/wands/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Wands
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
@@ -27,7 +27,7 @@ module Wands
27
27
  include Protocol::WebSocket::Headers
28
28
  extend Forwardable
29
29
 
30
- def_delegators :@socket, :addr, :remote_address, :close, :to_io
30
+ def_delegators :@socket, :addr, :remote_address, :close, :to_io, :eof?
31
31
 
32
32
  def self.open(host, port)
33
33
  socket = TCPSocket.new(host, port)
@@ -48,13 +48,18 @@ module Wands
48
48
  @socket = socket
49
49
  end
50
50
 
51
- # @return [String]
52
51
  def gets
53
52
  framer = Protocol::WebSocket::Framer.new(@socket)
54
53
  frame = framer.read_frame
55
- raise "frame is not a text" unless frame.is_a? Protocol::WebSocket::TextFrame
56
54
 
57
- frame.unpack
55
+ case frame
56
+ when Protocol::WebSocket::TextFrame
57
+ frame.unpack
58
+ when Protocol::WebSocket::CloseFrame
59
+ nil
60
+ else
61
+ raise "frame is not a text"
62
+ end
58
63
  end
59
64
 
60
65
  def write(message)
@@ -68,6 +68,8 @@ module Wands
68
68
  end
69
69
  end
70
70
 
71
+ def to_io = @tcp_server.to_io
72
+
71
73
  private
72
74
 
73
75
  def read_headers_from(request, socket)
data/sig/wands.rbs CHANGED
@@ -5,7 +5,7 @@ module Wands
5
5
  @socket: TCPSocket
6
6
 
7
7
  def initialize: (TCPSocket) -> void
8
- def gets: () -> String
8
+ def gets: () -> String?
9
9
  def write: (String) -> void
10
10
  def self.open: (String, Integer) -> WebSocket
11
11
  def close: () -> void
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wands
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
  - shigeru.nakajima
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2024-12-31 00:00:00.000000000 Z
10
+ date: 2025-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: protocol-websocket