Class: Solana::Ruby::Kit::RpcSubscriptions::Subscription
- Inherits:
-
Object
- Object
- Solana::Ruby::Kit::RpcSubscriptions::Subscription
- Extended by:
- T::Generic, T::Sig
- Includes:
- Enumerable
- Defined in:
- lib/solana/ruby/kit/rpc_subscriptions/subscription.rb
Overview
A live subscription to a Solana WebSocket notification channel. Wraps a DataPublisher channel and exposes an Enumerator interface.
Typical usage:
sub = client.slot_subscribe
sub.take(10).each { |notification| puts notification }
sub.unsubscribe # or break from the enumerator loop
Constant Summary collapse
- Elem =
type_member { { fixed: T.untyped } }
Instance Attribute Summary collapse
-
#enumerator ⇒ Object
readonly
Returns the value of attribute enumerator.
Instance Method Summary collapse
- #each(&block) ⇒ Object
-
#initialize(enumerator:, unsubscribe:, timeout: nil) ⇒ Subscription
constructor
A new instance of Subscription.
- #next ⇒ Object
- #take(n) ⇒ Object
- #unsubscribe ⇒ Object
Constructor Details
#initialize(enumerator:, unsubscribe:, timeout: nil) ⇒ Subscription
Returns a new instance of Subscription.
29 30 31 32 33 |
# File 'lib/solana/ruby/kit/rpc_subscriptions/subscription.rb', line 29 def initialize(enumerator:, unsubscribe:, timeout: nil) @enumerator = enumerator @unsubscribe = unsubscribe @timeout = timeout end |
Instance Attribute Details
#enumerator ⇒ Object (readonly)
Returns the value of attribute enumerator.
20 21 22 |
# File 'lib/solana/ruby/kit/rpc_subscriptions/subscription.rb', line 20 def enumerator @enumerator end |
Instance Method Details
#each(&block) ⇒ Object
43 44 45 46 47 |
# File 'lib/solana/ruby/kit/rpc_subscriptions/subscription.rb', line 43 def each(&block) @enumerator.each(&block) ensure unsubscribe end |
#next ⇒ Object
53 |
# File 'lib/solana/ruby/kit/rpc_subscriptions/subscription.rb', line 53 def next = @enumerator.next |
#take(n) ⇒ Object
50 |
# File 'lib/solana/ruby/kit/rpc_subscriptions/subscription.rb', line 50 def take(n) = @enumerator.take(n) |
#unsubscribe ⇒ Object
37 38 39 |
# File 'lib/solana/ruby/kit/rpc_subscriptions/subscription.rb', line 37 def unsubscribe @unsubscribe.call end |