wands 0.1.0 → 0.3.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: cb307f3ff7008655232874614663ded7d00d8a097d6d64c061a83c7fff0a7d81
4
+ data.tar.gz: cd501bc27c5ac3d7c070763e896f54b46cb26a2b4cf75cdeb02cd430d33b0217
5
5
  SHA512:
6
- metadata.gz: e75f52070180a29dee8a4d2a0dbfa0d7bf077cf09d917948610f6db0c06b4be21c5ad3a91adb62f5d2992746488e08580d0e9780e09d7d528dc4b111055ba35d
7
- data.tar.gz: c2dcf0cc618b07e62f79f5113c4596b848a77122cb97e60457bebf108404122898261a7610de4fc0c119c3aa629c9705a630f4fc17d2d6308be98d625de4041c
6
+ metadata.gz: 5f8f9c8e39f084412c7a23cf9e335b7df378edbfc702b5c3f568a7a6c8257f10bcf104813bddd074cb6a5d045da33987a7f2f9563915f33c9dfbed651582fad8
7
+ data.tar.gz: 22e85691957f9b8d1f8601951d5c0863cc0fff5d74168ae21161f97f0a76d8648d9e52eb9eb6a9e8594301e33d5a81d54ddf010aa5b5def049313e9cc3ad53eb
data/.rubocop.yml CHANGED
@@ -2,8 +2,16 @@ AllCops:
2
2
  TargetRubyVersion: 3.1
3
3
  NewCops: enable
4
4
 
5
+ Bundler/GemFilename:
6
+ Exclude:
7
+ - examples/**/*.rb
8
+
9
+ Metrics/BlockLength:
10
+ Exclude:
11
+ - examples/**/*.rb
12
+
5
13
  Metrics/MethodLength:
6
- Max: 15
14
+ Max: 17
7
15
 
8
16
  Style/StringLiterals:
9
17
  EnforcedStyle: double_quotes
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.3.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)
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "socket"
4
+ require "forwardable"
4
5
  require "protocol/websocket/headers"
5
6
  require "webrick/httprequest"
6
7
  require "webrick/httpresponse"
@@ -36,6 +37,9 @@ module Wands
36
37
  #
37
38
  class WebSocketServer
38
39
  include Protocol::WebSocket::Headers
40
+ extend Forwardable
41
+
42
+ def_delegators :@tcp_server, :addr, :to_io
39
43
 
40
44
  def self.open(hostname, port)
41
45
  new(hostname, port)
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.3.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-06 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: protocol-websocket