From d6787424bb0eebd774402139d2bd46febd6909fd Mon Sep 17 00:00:00 2001 From: Steve Bazyl Date: Mon, 14 Dec 2015 17:41:50 -0800 Subject: [PATCH] Allow mixing input sources during generation --- bin/generate-api | 30 ++++++++++++++++-------------- script/generate | 4 +++- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/bin/generate-api b/bin/generate-api index 2c7b88f26..621f9329c 100755 --- a/bin/generate-api +++ b/bin/generate-api @@ -19,18 +19,16 @@ module Google Discovery = Google::Apis::DiscoveryV1 desc 'gen OUTDIR', 'Generate ruby API from an API description' - method_options url: :string, file: :string, id: :array, preferred_only: :boolean, verbose: :boolean, names: :string, names_out: :string + method_options url: :array, file: :array, from_discovery: :boolean, id: :array, + preferred_only: :boolean, verbose: :boolean, names: :string, + names_out: :string method_option :preferred_only, default: true def gen(dir) self.destination_root = dir Google::Apis.logger.level = Logger::DEBUG if options[:verbose] - if options[:url] - generate_from_url(options[:url]) - elsif options[:file] - generate_from_file(options[:file]) - else - generate_from_discovery(preferred_only: options[:preferred_only], id: options[:id] ) - end + generate_from_url(options[:url]) if options[:url] + generate_from_file(options[:file]) if options[:file] + generate_from_discovery(preferred_only: options[:preferred_only], id: options[:id] ) if options[:from_discovery] create_file(options[:names_out]) { |*| generator.dump_api_names } if options[:names_out] end @@ -46,14 +44,18 @@ module Google end no_commands do - def generate_from_url(url) - json = discovery.http(:get, url) - generate_api(json) + def generate_from_url(urls) + Array(urls).each do |url| + json = discovery.http(:get, url) + generate_api(json) + end end - def generate_from_file(file) - File.open(file) do |f| - generate_api(f.read) + def generate_from_file(files) + Array(files).each do |file| + File.open(file) do |f| + generate_api(f.read) + end end end diff --git a/script/generate b/script/generate index 2670a0709..cf9f12dd8 100755 --- a/script/generate +++ b/script/generate @@ -31,6 +31,7 @@ APIS=(adexchangebuyer:v1.3 \ cloudtrace:v1 \ clouduseraccounts:beta \ compute:v1 \ + compute:beta \ container:v1 \ content:v2 \ coordinate:v1 \ @@ -89,4 +90,5 @@ APIS=(adexchangebuyer:v1.3 \ youtubereporting:v1 \ ) -echo 'a' | bundle exec bin/generate-api gen generated --names_out=$DIR/api_names_out.yaml --id=${APIS[*]} + +echo 'a' | bundle exec bin/generate-api gen generated --from-discovery=true --names_out=$DIR/api_names_out.yaml --url='https://content.googleapis.com/discovery/v1/apis/compute/beta/rest' --id=${APIS[*]}