Allow mixing input sources during generation
This commit is contained in:
parent
886bb2904f
commit
d6787424bb
|
@ -19,18 +19,16 @@ module Google
|
||||||
Discovery = Google::Apis::DiscoveryV1
|
Discovery = Google::Apis::DiscoveryV1
|
||||||
|
|
||||||
desc 'gen OUTDIR', 'Generate ruby API from an API description'
|
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
|
method_option :preferred_only, default: true
|
||||||
def gen(dir)
|
def gen(dir)
|
||||||
self.destination_root = dir
|
self.destination_root = dir
|
||||||
Google::Apis.logger.level = Logger::DEBUG if options[:verbose]
|
Google::Apis.logger.level = Logger::DEBUG if options[:verbose]
|
||||||
if options[:url]
|
generate_from_url(options[:url]) if options[:url]
|
||||||
generate_from_url(options[:url])
|
generate_from_file(options[:file]) if options[:file]
|
||||||
elsif options[:file]
|
generate_from_discovery(preferred_only: options[:preferred_only], id: options[:id] ) if options[:from_discovery]
|
||||||
generate_from_file(options[:file])
|
|
||||||
else
|
|
||||||
generate_from_discovery(preferred_only: options[:preferred_only], id: options[:id] )
|
|
||||||
end
|
|
||||||
create_file(options[:names_out]) { |*| generator.dump_api_names } if options[:names_out]
|
create_file(options[:names_out]) { |*| generator.dump_api_names } if options[:names_out]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -46,14 +44,18 @@ module Google
|
||||||
end
|
end
|
||||||
|
|
||||||
no_commands do
|
no_commands do
|
||||||
def generate_from_url(url)
|
def generate_from_url(urls)
|
||||||
json = discovery.http(:get, url)
|
Array(urls).each do |url|
|
||||||
generate_api(json)
|
json = discovery.http(:get, url)
|
||||||
|
generate_api(json)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate_from_file(file)
|
def generate_from_file(files)
|
||||||
File.open(file) do |f|
|
Array(files).each do |file|
|
||||||
generate_api(f.read)
|
File.open(file) do |f|
|
||||||
|
generate_api(f.read)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ APIS=(adexchangebuyer:v1.3 \
|
||||||
cloudtrace:v1 \
|
cloudtrace:v1 \
|
||||||
clouduseraccounts:beta \
|
clouduseraccounts:beta \
|
||||||
compute:v1 \
|
compute:v1 \
|
||||||
|
compute:beta \
|
||||||
container:v1 \
|
container:v1 \
|
||||||
content:v2 \
|
content:v2 \
|
||||||
coordinate:v1 \
|
coordinate:v1 \
|
||||||
|
@ -89,4 +90,5 @@ APIS=(adexchangebuyer:v1.3 \
|
||||||
youtubereporting:v1 \
|
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[*]}
|
||||||
|
|
Loading…
Reference in New Issue