Class: Magellan::Gcs::Proxy::PubsubSubscription::MessageWrapper
- Inherits:
-
Object
- Object
- Magellan::Gcs::Proxy::PubsubSubscription::MessageWrapper
show all
- Defined in:
- lib/magellan/gcs/proxy/pubsub_subscription.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(subscription, original) ⇒ MessageWrapper
Returns a new instance of MessageWrapper.
45
46
47
48
|
# File 'lib/magellan/gcs/proxy/pubsub_subscription.rb', line 45
def initialize(subscription, original)
@subscription = subscription
@original = original
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
50
51
52
53
54
55
56
57
|
# File 'lib/magellan/gcs/proxy/pubsub_subscription.rb', line 50
def method_missing(name, *args, &block)
receiver =
case name
when :message_id, :attributes, :publish_time, :data then original.message
when :ack_id then original
end
receiver ? receiver.send(name, *args, &block) : super
end
|
Instance Attribute Details
#original ⇒ Object
Returns the value of attribute original.
41
42
43
|
# File 'lib/magellan/gcs/proxy/pubsub_subscription.rb', line 41
def original
@original
end
|
#subscription ⇒ Object
Returns the value of attribute subscription.
41
42
43
|
# File 'lib/magellan/gcs/proxy/pubsub_subscription.rb', line 41
def subscription
@subscription
end
|
Instance Method Details
#ack_options ⇒ Object
67
68
69
70
|
# File 'lib/magellan/gcs/proxy/pubsub_subscription.rb', line 67
def ack_options
@ack_options ||= { authorization: GCP.auth, retries: 10 }
end
|
#acknowledge! ⇒ Object
Also known as:
ack!
72
73
74
75
|
# File 'lib/magellan/gcs/proxy/pubsub_subscription.rb', line 72
def acknowledge!
req = Google::Apis::PubsubV1::AcknowledgeRequest.new(ack_ids: [ack_id])
GCP.pubsub.acknowledge_subscription(subscription.name, req, options: ack_options)
end
|
#delay!(new_deadline) ⇒ Object
78
79
80
81
|
# File 'lib/magellan/gcs/proxy/pubsub_subscription.rb', line 78
def delay!(new_deadline)
req = Google::Apis::PubsubV1::ModifyAckDeadlineRequest.new(ack_deadline_seconds: new_deadline, ack_ids: [ack_id])
GCP.pubsub.modify_subscription_ack_deadline(subscription.name, req)
end
|
#respond_to_missing?(name) ⇒ Boolean
59
60
61
62
63
64
65
|
# File 'lib/magellan/gcs/proxy/pubsub_subscription.rb', line 59
def respond_to_missing?(name)
case name
when :message_id, :attributes, :publish_time, :data then true
when :ack_id then true
else false
end
end
|