class Fog::Google::Pubsub::Subscription
Represents a Pubsub
subscription resource
@see cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions
Public Instance Methods
Acknowledges a list of received messages for this subscription.
@param messages [Array<Fog::Google::Pubsub::ReceivedMessage, to_s>]
A list containing either ReceivedMessage instances to acknowledge, or a list of ackIds (@see https://cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/pull#ReceivedMessage).
@see cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/acknowledge
# File lib/fog/google/models/pubsub/subscription.rb, line 55 def acknowledge(messages) return if messages.empty? ack_ids = messages.map { |m| m.is_a?(ReceivedMessage) ? m.ack_id : m.to_s } service.acknowledge_subscription(name, ack_ids) nil end
Deletes this subscription on the remote service.
@see cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/delete
# File lib/fog/google/models/pubsub/subscription.rb, line 78 def destroy requires :name service.delete_subscription(name) end
Pulls from this subscription, returning any available messages. By default, this method returns immediately with up to 10 messages. The option ‘return_immediately’ allows the method to block until a message is received, or the remote service closes the connection.
Note that this method automatically performs a base64 decode on the ‘data’ field.
@param options [Hash] options to modify the pull request @option options [Boolean] :return_immediately If true, method returns
after checking for messages. Otherwise the method blocks until one or more messages are available, or the connection is closed.
@option options [Number] :max_messages maximum number of messages to
receive
@return [Array<Fog::Google::Pubsub::ReceivedMessage>] list of
received messages, or an empty list if no messages are available.
@see cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/pull
# File lib/fog/google/models/pubsub/subscription.rb, line 30 def pull(options = { :return_immediately => true, :max_messages => 10 }) requires :name data = service.pull_subscription(name, options).to_h return [] unless data.key?(:received_messages) # Turn into a list of ReceivedMessage, but ensure we perform a base64 decode first data[:received_messages].map do |recv_message| attrs = { :service => service, :subscription_name => name }.merge(recv_message) attrs[:message][:data] = Base64.decode64(recv_message[:message][:data]) if recv_message[:message].key?(:data) ReceivedMessage.new(attrs) end end
Save this instance on the remove service.
@return [Fog::Google::Pubsub::Subscription] this instance @see cloud.google.com/pubsub/reference/rest/v1/projects.subscriptions/create
# File lib/fog/google/models/pubsub/subscription.rb, line 68 def save requires :name, :topic data = service.create_subscription(name, topic, push_config, ack_deadline_seconds).to_h merge_attributes(data) end