wands 0.1.0 → 0.3.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: 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