lib/zuora/calls/subscribe.rb in zuora-ruby-0.6.0 vs lib/zuora/calls/subscribe.rb in zuora-ruby-0.7.0

- old
+ new

@@ -1,5 +1,7 @@ +# frozen_string_literal: true + module Zuora module Calls class Subscribe < Hashie::Dash property :account, required: true property :payment_method @@ -8,11 +10,11 @@ property :subscribe_options property :subscription property :rate_plan property :rate_plan_charge - SIMPLE_OBJECTS = [:account, :payment_method, :bill_to_contact].freeze + SIMPLE_OBJECTS = %i[account payment_method bill_to_contact].freeze # Generates a function that adds login fields to a buidler # @return [Callable] function of builder def xml_builder lambda do |builder| @@ -41,13 +43,15 @@ end # Builds the complex, nested part of the subscribe request # @param [Nokogiri::XML::Builder] builder def build_complex_objects(builder) - builder[:api].SubscribeOptions do - Zuora::Utils::Envelope.build_fields(builder, :api, subscribe_options) - end if subscribe_options + if subscribe_options + builder[:api].SubscribeOptions do + Zuora::Utils::Envelope.build_fields(builder, :api, subscribe_options) + end + end builder[:api].SubscriptionData do build_object(builder, :Subscription, subscription) builder[:api].RatePlanData do build_object(builder, :RatePlan, rate_plan) @@ -61,12 +65,14 @@ # Helper for building one object # [Nokogiri::XML::Builder] builder # [Symbol] type # [Hash] data def build_object(builder, type, data) - builder[:api].send(type) do - build_fields builder, data - end if data + if data + builder[:api].send(type) do + build_fields builder, data + end + end end # [Nokogiri::XML::Builder] builder # [Nokogiri::XML::Builder] builder # [Hash] data