exe/soaspec in soaspec-0.2.23 vs exe/soaspec in soaspec-0.2.24

- old
+ new

@@ -1,123 +1,123 @@ -#!/usr/bin/env ruby - -require 'thor' -$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib') -require 'savon' -require 'soaspec' -require 'soaspec/virtual_server' -require 'soaspec/wsdl_generator' - -module Soaspec - # Common executable for Soaspec - class Exe < Thor - include Soaspec::ExeHelpers - include Soaspec::WsdlGenerator - - long_desc <<-LONGDESC - `soaspec new` will generate the initial files and folders for starting a testing project using soaspec - \x5 - - `soaspec new soap` will create example files testing against a SOAP service - \x5 - - `soaspec new rest` will create example files testing against a REST service - LONGDESC - desc 'new [type]', 'Initialize soaspec repository' - option :ci, default: 'jenkins', banner: 'What Continuous Integration is used' - option :virtual, type: :boolean, default: true, banner: 'Whether to set things up for a virtual server' - def new(type = 'initial') - @virtual = options[:virtual] - @type = type - puts "Creating files for soaspec. options are #{options}" - create_file(filename: 'Gemfile') - create_file(filename: 'Rakefile') - create_file(filename: '.rspec') - create_file(filename: 'README.md') - create_file(filename: '.travis.yml') if options[:ci] == 'travis' - create_folder 'lib' - create_files_for type - create_file(filename: 'config/data/default.yml') # Example of data file - create_file(filename: 'spec/spec_helper.rb') - puts "Run 'bundle install' to install necessary gems" - puts "Run 'rake spec' to run the tests" - end - - long_desc <<-LONGDESC - `soaspec add rest` will generate the initial files and folders for starting a testing project using soaspec - \x5 - - `soaspec add soap` will create example files testing against a virtual SOAP service - \x5 - - LONGDESC - desc 'add [type] [name]', 'Add new ExchangeHandler' - def add(type = 'rest', name = 'TestService') - raise "Type '#{type}' is not available" unless %w[rest soap].include? type - - @name = name # Use instance variable for ERB - create_file filename: File.join('lib', "#{name.snakecase}.rb"), - content: retrieve_contents(File.join('lib', "new_#{type}_service.rb")) - end - - desc 'cucumber', 'Add cucumber generic steps template within step_definitions folder' - def cucumber - create_file filename: File.join('features', 'step_definitions', 'generic_steps.rb'), - content: retrieve_contents(File.join('../cucumber', 'generic_steps.rb'), false) - end - - desc 'generate', 'Generate initial test code from wsdl' - long_desc <<-LONGDESC - If no wsdl is given a server will be started from which code to generate Exchanges - - `soaspec generate wsdl=wsdl name=ServiceName ` will generate the initial files and folders to test each operation in a wsdl - \x5 - Additionally the auth parameter can be used to use basic authentication to retrieve the WSDL. - To do use the following `soaspec generate --auth=basic` - Note: This is still a work in progress and will only work for a very simple wsdl - LONGDESC - option :wsdl, default: nil, aliases: :w - option :name, default: 'Service', aliases: :n - option :ci, default: 'jenkins', banner: 'What Continuous Integration is used' - option :auth - option :open_browser, default: 'true' - option :string_default, default: 'test string' - def generate - if options[:wsdl] - generate_from_wsdl(options) - else - require 'launchy' - require 'soaspec/generate_server' - Soaspec::GenerateServer.run! do - Launchy.open 'http://localhost:8999' if options[:open_browser] == 'true' - end - end - end - - long_desc <<-LONGDESC - Run virtual web services on localhost. See root for documentation of web services provided. - LONGDESC - desc 'virtual_server [port]', 'Run virtual web service on localhost' - def virtual_server(port = '4999') - ENV['port'] = port - require 'soaspec/virtual_server' - Soaspec::VirtualServer.run!(Port: port) - end - - long_desc <<-LONGDESC - Run pry with Soaspec and other relevant libraries loaded. Pass either the relative path to files desired with a - '.rb' extension or the path to the folder to be loaded with 'require_all' - LONGDESC - desc 'pry [required_files]', 'Run pry with Soaspec and other relevant libraries loaded' - def pry(required_files = nil) - require 'soaspec' - - require 'require_all' - require_all required_files if required_files - - require 'pry' - Pry.start - end - end -end - -Soaspec::Exe.start(ARGV) +#!/usr/bin/env ruby + +require 'thor' +$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib') +require 'savon' +require 'soaspec' +require 'soaspec/virtual_server' +require 'soaspec/wsdl_generator' + +module Soaspec + # Common executable for Soaspec + class Exe < Thor + include Soaspec::ExeHelpers + include Soaspec::WsdlGenerator + + long_desc <<-LONGDESC + `soaspec new` will generate the initial files and folders for starting a testing project using soaspec + \x5 + + `soaspec new soap` will create example files testing against a SOAP service + \x5 + + `soaspec new rest` will create example files testing against a REST service + LONGDESC + desc 'new [type]', 'Initialize soaspec repository' + option :ci, default: 'jenkins', banner: 'What Continuous Integration is used' + option :virtual, type: :boolean, default: true, banner: 'Whether to set things up for a virtual server' + def new(type = 'initial') + @virtual = options[:virtual] + @type = type + puts "Creating files for soaspec. options are #{options}" + create_file(filename: 'Gemfile') + create_file(filename: 'Rakefile') + create_file(filename: '.rspec') + create_file(filename: 'README.md') + create_file(filename: '.travis.yml') if options[:ci] == 'travis' + create_folder 'lib' + create_files_for type + create_file(filename: 'config/data/default.yml') # Example of data file + create_file(filename: 'spec/spec_helper.rb') + puts "Run 'bundle install' to install necessary gems" + puts "Run 'rake spec' to run the tests" + end + + long_desc <<-LONGDESC + `soaspec add rest` will generate the initial files and folders for starting a testing project using soaspec + \x5 + + `soaspec add soap` will create example files testing against a virtual SOAP service + \x5 + + LONGDESC + desc 'add [type] [name]', 'Add new ExchangeHandler' + def add(type = 'rest', name = 'TestService') + raise "Type '#{type}' is not available" unless %w[rest soap].include? type + + @name = name # Use instance variable for ERB + create_file filename: File.join('lib', "#{name.snakecase}.rb"), + content: retrieve_contents(File.join('lib', "new_#{type}_service.rb")) + end + + desc 'cucumber', 'Add cucumber generic steps template within step_definitions folder' + def cucumber + create_file filename: File.join('features', 'step_definitions', 'generic_steps.rb'), + content: retrieve_contents(File.join('../cucumber', 'generic_steps.rb'), false) + end + + desc 'generate', 'Generate initial test code from wsdl' + long_desc <<-LONGDESC + If no wsdl is given a server will be started from which code to generate Exchanges + + `soaspec generate wsdl=wsdl name=ServiceName ` will generate the initial files and folders to test each operation in a wsdl + \x5 + Additionally the auth parameter can be used to use basic authentication to retrieve the WSDL. + To do use the following `soaspec generate --auth=basic` + Note: This is still a work in progress and will only work for a very simple wsdl + LONGDESC + option :wsdl, default: nil, aliases: :w + option :name, default: 'Service', aliases: :n + option :ci, default: 'jenkins', banner: 'What Continuous Integration is used' + option :auth + option :open_browser, default: 'true' + option :string_default, default: 'test string' + def generate + if options[:wsdl] + generate_from_wsdl(options) + else + require 'launchy' + require 'soaspec/generate_server' + Soaspec::GenerateServer.run! do + Launchy.open 'http://localhost:8999' if options[:open_browser] == 'true' + end + end + end + + long_desc <<-LONGDESC + Run virtual web services on localhost. See root for documentation of web services provided. + LONGDESC + desc 'virtual_server [port]', 'Run virtual web service on localhost' + def virtual_server(port = '4999') + ENV['port'] = port + require 'soaspec/virtual_server' + Soaspec::VirtualServer.run!(Port: port) + end + + long_desc <<-LONGDESC + Run pry with Soaspec and other relevant libraries loaded. Pass either the relative path to files desired with a + '.rb' extension or the path to the folder to be loaded with 'require_all' + LONGDESC + desc 'pry [required_files]', 'Run pry with Soaspec and other relevant libraries loaded' + def pry(required_files = nil) + require 'soaspec' + + require 'require_all' + require_all required_files if required_files + + require 'pry' + Pry.start + end + end +end + +Soaspec::Exe.start(ARGV)