wands 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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