X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Faviator%2Ffeature%2Faviator%2Fcore%2Fcli%2Fdescriber.rb;fp=3rdparty%2Fmodules%2Faviator%2Ffeature%2Faviator%2Fcore%2Fcli%2Fdescriber.rb;h=0000000000000000000000000000000000000000;hb=6e1426dc77fb4e5d51f07c187c6f2219431dc31e;hp=b7426c310f6c44caf0d1bfdf542083fd476761de;hpb=87423ba664cd5f2bb462ebadd08b1a90d0fe1c8d;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/aviator/feature/aviator/core/cli/describer.rb b/3rdparty/modules/aviator/feature/aviator/core/cli/describer.rb deleted file mode 100644 index b7426c310..000000000 --- a/3rdparty/modules/aviator/feature/aviator/core/cli/describer.rb +++ /dev/null @@ -1,146 +0,0 @@ -module Aviator - - class Describer - - def self.describe_aviator - str = "Available providers:\n" - - provider_names.each do |provider_name| - str << " #{ provider_name }\n" - end - - str - end - - - def self.describe_provider(provider_name) - str = "Available services for #{ provider_name }:\n" - - service_names(provider_name).each do |service_name| - str << " #{ service_name }\n" - end - - str - end - - - def self.describe_request(provider_name, service_name, api_version, endpoint_type, request_name) - service = Aviator::Service.new :provider => provider_name, :service => service_name - request_class = "Aviator::#{ provider_name.camelize }::#{ service_name.camelize }::"\ - "#{ api_version.camelize }::#{ endpoint_type.camelize }::#{ request_name.camelize }".constantize - - display = ":Request => #{ request_name }\n" - - - # Build the parameters - params = request_class.optional_params.map{|p| [p, false]} + - request_class.required_params.map{|p| [p, true]} - - aliases = request_class.param_aliases - - if params.length > 0 - display << "\n" - - headings = ['NAME', 'REQUIRED?'] - - headings << 'ALIAS' if aliases.length > 0 - - rows = [] - params.sort{|a,b| a[0].to_s <=> b[0].to_s }.each do |param| - row = [ param[0], param[1] ? 'Y' : 'N' ] - - if aliases.length > 0 - row << (aliases.find{|a,p| p == param[0] } || [''])[0] - end - - rows << row - end - - widths = [ - rows.map{|row| row[0].to_s.length }.max, - rows.map{|row| row[1].to_s.length }.max - ] - - widths << rows.map{|row| row[2].to_s.length }.max if aliases.length > 0 - - table = Terminal::Table.new(:headings => headings, :rows => rows) - - table.align_column(1, :center) - - display << "Parameters:\n" - display << " " + table.to_s.split("\n").join("\n ") - display << "\n" - end - - - # Build the sample code - display << "\nSample Code:\n" - - display << " session.#{ service_name }_service.request(:#{ request_name })" - - if params && params.length > 0 - display << " do |params|\n" - params.each do |pair| - display << " params.#{ (aliases.find{|a,p| p == pair[0] } || pair)[0] } = value\n" - end - display << " end" - end - - display << "\n" - - - # Build the links - if request_class.links && request_class.links.length > 0 - display << "\nLinks:\n" - - request_class.links.each do |link| - display << " #{ link[:rel] }:\n" - display << " #{ link[:href] }\n" - end - end - - display - end - - - def self.describe_service(provider_name, service_name) - str = "Available requests for #{ provider_name } #{ service_name }_service:\n" - - request_classes(provider_name, service_name).each do |klass| - str << " #{ klass.api_version } #{ klass.endpoint_type } #{ klass.name.split('::').last.underscore }\n" - end - - str - end - - - class < provider_name, :service => service_name) - service.request_classes - end - - - def service_names(provider_name) - Pathname.new(__FILE__) \ - .join('..', '..', '..', provider_name) \ - .children \ - .select{|c| c.directory? } \ - .map{|c| c.basename.to_s } - end - end - - end - -end