class Jeweler::Generator
def initialize(project_name, options = {})
def initialize(project_name, options = {}) if project_name.nil? || project_name.squeeze.strip == "" raise NoGitHubRepoNameGiven end self.development_dependencies = [] self.project_name = project_name self.testing_framework = (options[:testing_framework] || DEFAULT_TESTING_FRAMEWORK).to_sym self.documentation_framework = options[:documentation_framework] || DEFAULT_DOCUMENTATION_FRAMEWORK begin generator_mixin_name = "#{self.testing_framework.to_s.capitalize}Mixin" generator_mixin = self.class.const_get(generator_mixin_name) extend generator_mixin rescue NameError => e raise ArgumentError, "Unsupported testing framework (#{testing_framework})" end begin generator_mixin_name = "#{self.documentation_framework.to_s.capitalize}Mixin" generator_mixin = self.class.const_get(generator_mixin_name) extend generator_mixin rescue NameError => e raise ArgumentError, "Unsupported documentation framework (#{documentation_framework})" end self.target_dir = options[:directory] || self.project_name self.should_create_repo = options[:create_repo] self.summary = options[:summary] || 'TODO: one-line summary of your gem' self.description = options[:description] || 'TODO: longer description of your gem' self.should_use_cucumber = options[:use_cucumber] self.should_use_reek = options[:use_reek] self.should_use_roodi = options[:use_roodi] self.should_setup_gemcutter = options[:gemcutter] self.should_setup_rubyforge = options[:rubyforge] development_dependencies << "cucumber" if should_use_cucumber use_user_git_config end