#!/usr/bin/env ruby require 'i18n' require 'json' require 'tempfile' require 'thor' require 'thor/group' require 'yaml' require File.join(File.dirname(__FILE__), '../lib/GeneSaudeId/GeneSaudeId_helper') require_relative '../lib/GeneSaudeId/version.rb' module GeneCapybara class Generate < Thor include Thor::Actions desc 'feature [RESOURCE_NAME]', 'Generates a feature' option :lang, banner: 'any of the gherkin support languages', default: :en def feature(name) I18n.config.default_locale = options[:lang] in_root_project_folder? create_feature_file(name) end desc 'step [RESOURCE_NAME]', 'Generates a step' option :lang, banner: 'any of the gherkin supported languages', default: :en def step(name) I18n.config.default_locale = options[:lang] in_root_project_folder? create_steps_file name end desc 'page [RESOURCE_NAME]', 'Generates pages' option :lang, banner: 'any of the gherkin supported languages', default: :en def page(name) I18n.config.default_locale = options[:lang] in_root_project_folder? create_page_file name end desc 'services [RESOURCE_NAME]', 'Generates services' option :lang, banner: 'any of the gherkin supported languages', default: :en def service(name) I18n.config.default_locale = options[:lang] in_root_project_folder? create_service_file name end desc 'all_web [RESOURCE_NAME]', 'Generates features, steps and pages' option :lang, banner: 'any of the gherkin supported languages', default: :en def all_web(name) I18n.config.default_locale = options[:lang] in_root_project_folder? create_feature_file name create_steps_file name create_page_file name end desc 'all_api [RESOURCE_NAME]', 'Generates feature and steps' option :lang, banner: 'any of the gherkin supported languages', default: :en def all_api(name) I18n.config.default_locale = options[:lang] in_root_project_folder? create_feature_file name create_steps_file name create_service_file name end def self.source_root File.join(File.dirname(__FILE__), '../lib/templates') end end end module GeneCapybara class GeneCapybaraRunner < Thor include Thor::Actions map %w[-v --version] => :version default_task :help register GeneCapybara::Generate, 'generate', 'generate [GENERATOR] [RESOURCE_NAME]', 'Generates various resources' register GeneCapybara::Generate, 'g', 'g [GENERATOR] [RESOURCE_NAME]', 'Generates various resources' desc 'new web PROJECT_NAME', 'Generates the structure of a new project that uses '\ 'Capybara, Selenium and Cucumber' option :lang, banner: 'any of the gherkin supported languages', default: :en def new_web(name) I18n.config.default_locale = options[:lang] directory File.join(File.dirname(__FILE__), '../lib/SkeletonWeb'), name end desc 'new api PROJECT_NAME', 'Generates the structure of api' option :lang, banner: 'any of the gherkin supported languages', default: :en def new_api(name) I18n.config.default_locale = options[:lang] directory File.join(File.dirname(__FILE__), '../lib/SkeletonApi'), name end desc 'version', 'Shows the gem version' def version puts "GeneCapybara Version #{GeneSaudeId::VERSION}" end def self.source_root File.join(File.dirname(__FILE__), '../lib/templates') end def initialize(*args) super locales_folder_path = File.join(File.dirname(__FILE__), '../lib/locales') I18n.load_path = Dir[File.join(locales_folder_path, '*.yml')] I18n.backend.load_translations I18n.config.enforce_available_locales = true end end end GeneCapybara::GeneCapybaraRunner.start