Class: Ably::Models::TokenRequest
- Inherits:
-
Object
- Object
- Ably::Models::TokenRequest
- Includes:
- Ably::Modules::ModelCommon
- Defined in:
- lib/ably/models/token_request.rb
Overview
TokenRequest is a class that stores the attributes of a token request
Ruby Time objects are supported in place of Ably ms since epoch time fields. However, if a numeric is provided it must always be expressed in milliseconds as the Ably API always uses milliseconds for time fields.
Instance Attribute Summary collapse
-
#attributes ⇒ Hash
readonly
The token request Hash object ruby’fied to use symbolized keys.
-
#capability ⇒ Hash
readonly
Capability of the token.
-
#client_id ⇒ String
readonly
The client ID to associate with this token.
-
#key_name ⇒ String
readonly
API key name of the key against which this request is made.
-
#mac ⇒ String
readonly
The Message Authentication Code for this request.
-
#nonce ⇒ String
readonly
An opaque nonce string of at least 16 characters to ensure uniqueness of this request.
-
#timestamp ⇒ Time
readonly
The timestamp of this request.
-
#ttl ⇒ Integer
readonly
Requested time to live for the token in seconds.
Attributes included from Ably::Modules::ModelCommon
Instance Method Summary collapse
-
#initialize(attributes = {}) ⇒ TokenRequest
constructor
A new instance of TokenRequest.
-
#persisted ⇒ Object
private
Requests that the token is always persisted.
Methods included from Ably::Modules::ModelCommon
#==, #[], #as_json, included, #to_json, #to_s
Methods included from Ably::Modules::MessagePack
Constructor Details
#initialize(attributes = {}) ⇒ TokenRequest
Returns a new instance of TokenRequest.
34 35 36 37 38 39 40 |
# File 'lib/ably/models/token_request.rb', line 34 def initialize(attributes = {}) @hash_object = IdiomaticRubyWrapper(attributes.clone) if self.attributes[:timestamp].kind_of?(Time) self.attributes[:timestamp] = (self.attributes[:timestamp].to_f * 1000).round end self.attributes.freeze end |
Instance Attribute Details
#attributes ⇒ Hash (readonly)
115 116 117 |
# File 'lib/ably/models/token_request.rb', line 115 def attributes @hash_object end |
#capability ⇒ Hash (readonly)
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/ably/models/token_request.rb', line 61 def capability capability_val = attributes.fetch(:capability) { raise Ably::Exceptions::InvalidTokenRequest, 'Capability is missing' } case capability_val when Hash capability_val when Ably::Models::IdiomaticRubyWrapper capability_val.as_json else JSON.parse(attributes.fetch(:capability)) end end |
#client_id ⇒ String (readonly)
77 78 79 |
# File 'lib/ably/models/token_request.rb', line 77 def client_id attributes[:client_id] end |
#key_name ⇒ String (readonly)
44 45 46 |
# File 'lib/ably/models/token_request.rb', line 44 def key_name attributes.fetch(:key_name) { raise Ably::Exceptions::InvalidTokenRequest, 'Key name is missing' } end |
#mac ⇒ String (readonly)
102 103 104 |
# File 'lib/ably/models/token_request.rb', line 102 def mac attributes.fetch(:mac) { raise Ably::Exceptions::InvalidTokenRequest, 'MAC is missing' } end |
#nonce ⇒ String (readonly)
95 96 97 |
# File 'lib/ably/models/token_request.rb', line 95 def nonce attributes.fetch(:nonce) { raise Ably::Exceptions::InvalidTokenRequest, 'Nonce is missing' } end |
#timestamp ⇒ Time (readonly)
86 87 88 89 |
# File 'lib/ably/models/token_request.rb', line 86 def = attributes.fetch(:timestamp) { raise Ably::Exceptions::InvalidTokenRequest, 'Timestamp is missing' } as_time_from_epoch(, granularity: :ms) end |
#ttl ⇒ Integer (readonly)
53 54 55 |
# File 'lib/ably/models/token_request.rb', line 53 def ttl attributes.fetch(:ttl) / 1000 end |
Instance Method Details
#persisted ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Requests that the token is always persisted
109 110 111 |
# File 'lib/ably/models/token_request.rb', line 109 def persisted attributes[:persisted] end |