protocolbuffers/protobuf
View on GitHubCannot assign an array to a repeated field in Ruby
Open
#7,161 opened on Jan 31, 2020
help wantedruby
Repository metrics
- Stars
- (71,223 stars)
- PR merge metrics
- (Avg merge 2d 11h) (185 merged PRs in 30d)
Description
What language does this apply to? Ruby
Describe the problem you are trying to solve. Consider trying to do this:
#!/usr/bin/ruby
require 'google/protobuf'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("google/ads/googleads/v2/services/campaign_budget_service.proto", :syntax => :proto3) do
add_message "google.ads.googleads.v2.services.MutateCampaignBudgetsRequest" do
optional :customer_id, :string, 1
repeated :operations, :message, 2, "google.ads.googleads.v2.services.CampaignBudgetOperation"
end
add_message "google.ads.googleads.v2.services.CampaignBudgetOperation" do
oneof :operation do
optional :remove, :string, 1
end
end
end
end
module Google
module Ads
module GoogleAds
module V2
module Services
MutateCampaignBudgetsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v2.services.MutateCampaignBudgetsRequest").msgclass
CampaignBudgetOperation = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.googleads.v2.services.CampaignBudgetOperation").msgclass
end
end
end
end
end
include Google::Ads::GoogleAds::V2::Services
def main
r = MutateCampaignBudgetsRequest.new
r.operations = [CampaignBudgetOperation.new]
end
if __FILE__ == $0
main
end
currently protobuf gives this error:
Traceback (most recent call last):
2: from hi.rb:40:in `<main>'
1: from hi.rb:36:in `main'
hi.rb:36:in `method_missing': Expected repeated field array (Google::Protobuf::TypeError)
Describe the solution you'd like Assigning an array to a repeated field should work if all the values are of the right type
Describe alternatives you've considered N/A Additional context my ldap pnlpn@ for on-corp discussions.