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