- Use of
statemachine is not need as a part of channel presence since it's not mentioned in the spec and not implemented in other SDKs.
e.g. you can find
STATE = ruby_enum('STATE',
:initialized,
:entering,
:entered,
:leaving,
:left
)
- Remove use of presence
statemachine to make implementation in sync with spec and other SDKs
- There are only 3 states for presence sync as per spec but ruby presence map mentions 6 states
e.g. instead of
syncInitial
syncInProgress
syncComplete
ruby presence map has
STATE = ruby_enum('STATE',
:initialized,
:sync_starting, # Indicates the client is waiting for SYNC ProtocolMessages from Ably
:sync_none, # Indicates the ATTACHED ProtocolMessage had no presence flag and thus no members on the channel
:finalizing_sync,
:in_sync,
:failed
)
- It feels there is overuse of
statemachine in ruby sdk. Need to be refactored at a certain point to make ruby implementation in sync with spec and for better readability.
┆Issue is synchronized with this Jira Task by Unito
statemachineis not need as a part of channel presence since it's not mentioned in the spec and not implemented in other SDKs.e.g. you can find
statemachineto make implementation in sync with spec and other SDKse.g. instead of
ruby presence map has
statemachinein ruby sdk. Need to be refactored at a certain point to make ruby implementation in sync with spec and for better readability.┆Issue is synchronized with this Jira Task by Unito