lib/ably/models/token_request.rb in ably-0.8.8 vs lib/ably/models/token_request.rb in ably-0.8.9
- old
+ new
@@ -14,94 +14,96 @@
end
# 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
+ # Ruby {http://ruby-doc.org/core/Time.html 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.
#
class TokenRequest
include Ably::Modules::ModelCommon
# @param attributes
# @option attributes [Integer] :ttl requested time to live for the token in milliseconds
- # @option attributes [Time,Integer] :timestamp the timestamp of this request in milliseconds or as a {Time}
+ # @option attributes [Time,Integer] :timestamp the timestamp of this request in milliseconds or as a {http://ruby-doc.org/core/Time.html Time}
# @option attributes [String] :key_name API key name of the key against which this request is made
# @option attributes [String] :capability JSON stringified capability of the token
# @option attributes [String] :client_id client ID to associate with this token
# @option attributes [String] :nonce an opaque nonce string of at least 16 characters
# @option attributes [String] :mac the Message Authentication Code for this request
#
def initialize(attributes = {})
@hash_object = IdiomaticRubyWrapper(attributes.clone)
- hash[:timestamp] = (hash[:timestamp].to_f * 1000).round if hash[:timestamp].kind_of?(Time)
- hash.freeze
+ if self.attributes[:timestamp].kind_of?(Time)
+ self.attributes[:timestamp] = (self.attributes[:timestamp].to_f * 1000).round
+ end
+ self.attributes.freeze
end
# @!attribute [r] key_name
# @return [String] API key name of the key against which this request is made. An API key is made up of an API key name and secret delimited by a +:+
def key_name
- hash.fetch(:key_name)
+ attributes.fetch(:key_name)
end
# @!attribute [r] ttl
# @return [Integer] requested time to live for the token in seconds. If the token request is successful,
# the TTL of the returned token will be less than or equal to this value depending on application
# settings and the attributes of the issuing key.
# TTL when sent to Ably is in milliseconds.
def ttl
- hash.fetch(:ttl) / 1000
+ attributes.fetch(:ttl) / 1000
end
# @!attribute [r] capability
# @return [Hash] capability of the token. If the token request is successful,
# the capability of the returned token will be the intersection of
# this capability with the capability of the issuing key.
def capability
- JSON.parse(hash.fetch(:capability))
+ JSON.parse(attributes.fetch(:capability))
end
# @!attribute [r] client_id
# @return [String] the client ID to associate with this token. The generated token
# may be used to authenticate as this clientId.
def client_id
- hash[:client_id]
+ attributes[:client_id]
end
# @!attribute [r] timestamp
# @return [Time] the timestamp of this request.
# Timestamps, in conjunction with the nonce, are used to prevent
# token requests from being replayed.
# Timestamp when sent to Ably is in milliseconds.
def timestamp
- as_time_from_epoch(hash.fetch(:timestamp), granularity: :ms)
+ as_time_from_epoch(attributes.fetch(:timestamp), granularity: :ms)
end
# @!attribute [r] nonce
# @return [String] an opaque nonce string of at least 16 characters to ensure
# uniqueness of this request. Any subsequent request using the
# same nonce will be rejected.
def nonce
- hash.fetch(:nonce)
+ attributes.fetch(:nonce)
end
# @!attribute [r] mac
# @return [String] the Message Authentication Code for this request. See the
# {https://www.ably.io/documentation Ably Authentication documentation} for more details.
def mac
- hash.fetch(:mac)
+ attributes.fetch(:mac)
end
# Requests that the token is always persisted
# @api private
#
def persisted
- hash.fetch(:persisted)
+ attributes.fetch(:persisted)
end
- # @!attribute [r] hash
+ # @!attribute [r] attributes
# @return [Hash] the token request Hash object ruby'fied to use symbolized keys
- def hash
+ def attributes
@hash_object
end
end
end