Class: Fog::Google::Pubsub::Real
- Inherits:
-
Object
- Object
- Fog::Google::Pubsub::Real
- Includes:
- Shared
- Defined in:
- lib/fog/google/pubsub/real.rb,
lib/fog/google/requests/pubsub/get_topic.rb,
lib/fog/google/requests/pubsub/list_topics.rb,
lib/fog/google/requests/pubsub/create_topic.rb,
lib/fog/google/requests/pubsub/delete_topic.rb,
lib/fog/google/requests/pubsub/publish_topic.rb,
lib/fog/google/requests/pubsub/get_subscription.rb,
lib/fog/google/requests/pubsub/pull_subscription.rb,
lib/fog/google/requests/pubsub/list_subscriptions.rb,
lib/fog/google/requests/pubsub/create_subscription.rb,
lib/fog/google/requests/pubsub/delete_subscription.rb,
lib/fog/google/requests/pubsub/acknowledge_subscription.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
Returns the value of attribute client.
-
#pubsub ⇒ Object
readonly
Returns the value of attribute pubsub.
Attributes included from Shared
#api_url, #api_version, #project
Instance Method Summary collapse
-
#acknowledge_subscription(subscription, ack_ids) ⇒ Object
Acknowledges a message received from a subscription.
-
#create_subscription(subscription_name, topic, push_config = {}, ack_deadline_seconds = nil) ⇒ Object
Create a subscription resource on a topic.
-
#create_topic(topic_name) ⇒ Object
Create a topic on the remote service.
-
#delete_subscription(subscription_name) ⇒ Object
Delete a subscription on the remote service.
-
#delete_topic(topic_name) ⇒ Object
Delete a topic on the remote service.
-
#get_subscription(subscription_name) ⇒ Object
Retrieves a subscription by name from the remote service.
-
#get_topic(topic_name) ⇒ Object
Retrieves a resource describing a topic.
-
#initialize(options) ⇒ Real
constructor
A new instance of Real.
-
#list_subscriptions(project = nil) ⇒ Object
Gets a list of all subscriptions for a given project.
-
#list_topics(project = nil) ⇒ Object
Gets a list of all topics for a given project.
-
#publish_topic(topic, messages) ⇒ Object
Publish a list of messages to a topic.
-
#pull_subscription(subscription, options = {}) ⇒ Object
Pulls from a subscription.
Methods included from Shared
#apply_client_options, #build_excon_response, #initialize_auth, #initialize_google_client, #request, #shared_initialize
Constructor Details
#initialize(options) ⇒ Real
Returns a new instance of Real.
10 11 12 13 14 15 16 17 |
# File 'lib/fog/google/pubsub/real.rb', line 10 def initialize() shared_initialize([:google_project], GOOGLE_PUBSUB_API_VERSION, GOOGLE_PUBSUB_BASE_URL) [:google_api_scope_url] = GOOGLE_PUBSUB_API_SCOPE_URLS.join(" ") @client = initialize_google_client() @pubsub = ::Google::Apis::PubsubV1::PubsubService.new (@pubsub, ) end |
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
7 8 9 |
# File 'lib/fog/google/pubsub/real.rb', line 7 def client @client end |
#pubsub ⇒ Object (readonly)
Returns the value of attribute pubsub.
8 9 10 |
# File 'lib/fog/google/pubsub/real.rb', line 8 def pubsub @pubsub end |
Instance Method Details
#acknowledge_subscription(subscription, ack_ids) ⇒ Object
Acknowledges a message received from a subscription.
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/google/requests/pubsub/acknowledge_subscription.rb', line 8 def acknowledge_subscription(subscription, ack_ids) # Previous behavior allowed passing a single ack_id without being wrapped in an Array, # this is for backwards compatibility. unless ack_ids.is_a?(Array) ack_ids = [ack_ids] end ack_request = ::Google::Apis::PubsubV1::AcknowledgeRequest.new( ack_ids: ack_ids ) @pubsub.acknowledge_subscription(subscription, ack_request) end |
#create_subscription(subscription_name, topic, push_config = {}, ack_deadline_seconds = nil) ⇒ Object
Create a subscription resource on a topic.
19 20 21 22 23 24 25 26 27 |
# File 'lib/fog/google/requests/pubsub/create_subscription.rb', line 19 def create_subscription(subscription_name, topic, push_config = {}, ack_deadline_seconds = nil) subscription = ::Google::Apis::PubsubV1::Subscription.new( topic: topic, ack_deadline_seconds: ack_deadline_seconds, push_config: push_config ) @pubsub.create_subscription(subscription_name, subscription) end |
#create_topic(topic_name) ⇒ Object
Create a topic on the remote service.
11 12 13 |
# File 'lib/fog/google/requests/pubsub/create_topic.rb', line 11 def create_topic(topic_name) @pubsub.create_topic(topic_name) end |
#delete_subscription(subscription_name) ⇒ Object
Delete a subscription on the remote service.
9 10 11 |
# File 'lib/fog/google/requests/pubsub/delete_subscription.rb', line 9 def delete_subscription(subscription_name) @pubsub.delete_subscription(subscription_name) end |
#delete_topic(topic_name) ⇒ Object
Delete a topic on the remote service.
9 10 11 |
# File 'lib/fog/google/requests/pubsub/delete_topic.rb', line 9 def delete_topic(topic_name) @pubsub.delete_topic(topic_name) end |
#get_subscription(subscription_name) ⇒ Object
Retrieves a subscription by name from the remote service.
9 10 11 |
# File 'lib/fog/google/requests/pubsub/get_subscription.rb', line 9 def get_subscription(subscription_name) @pubsub.get_subscription(subscription_name) end |
#get_topic(topic_name) ⇒ Object
Retrieves a resource describing a topic.
9 10 11 |
# File 'lib/fog/google/requests/pubsub/get_topic.rb', line 9 def get_topic(topic_name) @pubsub.get_topic(topic_name) end |
#list_subscriptions(project = nil) ⇒ Object
Gets a list of all subscriptions for a given project.
11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/google/requests/pubsub/list_subscriptions.rb', line 11 def list_subscriptions(project = nil) if project.nil? project = "projects/#{@project}" else project = project.to_s end @pubsub.list_subscriptions(project) end |
#list_topics(project = nil) ⇒ Object
Gets a list of all topics for a given project.
11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/google/requests/pubsub/list_topics.rb', line 11 def list_topics(project = nil) if project.nil? project = "projects/#{@project}" else project = project.to_s end @pubsub.list_topics(project) end |
#publish_topic(topic, messages) ⇒ Object
Publish a list of messages to a topic.
12 13 14 15 16 17 18 |
# File 'lib/fog/google/requests/pubsub/publish_topic.rb', line 12 def publish_topic(topic, ) publish_request = ::Google::Apis::PubsubV1::PublishRequest.new( :messages => ) @pubsub.publish_topic(topic, publish_request) end |
#pull_subscription(subscription, options = {}) ⇒ Object
Pulls from a subscription. If option ‘return_immediately’ is false, then this method blocks until one or more messages is available or the remote server closes the connection.
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/google/requests/pubsub/pull_subscription.rb', line 19 def pull_subscription(subscription, = {}) defaults = { :return_immediately => true, :max_messages => 10 } = defaults.merge() pull_request = ::Google::Apis::PubsubV1::PullRequest.new( :return_immediately => [:return_immediately], :max_messages => [:max_messages] ) @pubsub.pull_subscription(subscription, pull_request) end |