Class: Jeweler::Generator
- Inherits:
-
Object
- Object
- Jeweler::Generator
- Defined in:
- lib/jeweler/generator.rb,
lib/jeweler/generator/options.rb,
lib/jeweler/generator/application.rb,
lib/jeweler/generator/bacon_mixin.rb,
lib/jeweler/generator/rspec_mixin.rb,
lib/jeweler/generator/shoulda_mixin.rb,
lib/jeweler/generator/minitest_mixin.rb,
lib/jeweler/generator/testunit_mixin.rb,
lib/jeweler/generator/micronaut_mixin.rb
Defined Under Namespace
Modules: BaconMixin, MicronautMixin, MinitestMixin, RspecMixin, ShouldaMixin, TestunitMixin Classes: Application, Options
Constant Summary collapse
- DEFAULT_TESTING_FRAMEWORK =
:shoulda
Instance Attribute Summary collapse
-
#github_token ⇒ Object
Returns the value of attribute github_token.
-
#github_username ⇒ Object
Returns the value of attribute github_username.
-
#project_name ⇒ Object
Returns the value of attribute project_name.
-
#repo ⇒ Object
Returns the value of attribute repo.
-
#should_create_repo ⇒ Object
Returns the value of attribute should_create_repo.
-
#should_setup_rubyforge ⇒ Object
Returns the value of attribute should_setup_rubyforge.
-
#should_use_cucumber ⇒ Object
Returns the value of attribute should_use_cucumber.
-
#summary ⇒ Object
Returns the value of attribute summary.
-
#target_dir ⇒ Object
Returns the value of attribute target_dir.
-
#testing_framework ⇒ Object
Returns the value of attribute testing_framework.
-
#user_email ⇒ Object
Returns the value of attribute user_email.
-
#user_name ⇒ Object
Returns the value of attribute user_name.
Instance Method Summary collapse
- #constant_name ⇒ Object
- #feature_filename ⇒ Object
- #features_dir ⇒ Object
- #features_steps_dir ⇒ Object
- #features_support_dir ⇒ Object
- #file_name_prefix ⇒ Object
- #git_remote ⇒ Object
-
#initialize(project_name, options = {}) ⇒ Generator
constructor
A new instance of Generator.
- #lib_dir ⇒ Object
- #lib_filename ⇒ Object
- #project_homepage ⇒ Object
- #require_name ⇒ Object
- #run ⇒ Object
- #steps_filename ⇒ Object
Constructor Details
#initialize(project_name, options = {}) ⇒ Generator
Returns a new instance of Generator.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/jeweler/generator.rb', line 37 def initialize(project_name, = {}) if project_name.nil? || project_name.squeeze.strip == "" raise NoGitHubRepoNameGiven end self.project_name = project_name self.testing_framework = ([:testing_framework] || DEFAULT_TESTING_FRAMEWORK).to_sym 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 self.target_dir = [:directory] || self.project_name self.should_create_repo = [:create_repo] self.summary = [:summary] || 'TODO' self.should_use_cucumber = [:use_cucumber] self.should_setup_rubyforge = [:rubyforge] use_user_git_config end |
Instance Attribute Details
#github_token ⇒ Object
Returns the value of attribute github_token.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def github_token @github_token end |
#github_username ⇒ Object
Returns the value of attribute github_username.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def github_username @github_username end |
#project_name ⇒ Object
Returns the value of attribute project_name.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def project_name @project_name end |
#repo ⇒ Object
Returns the value of attribute repo.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def repo @repo end |
#should_create_repo ⇒ Object
Returns the value of attribute should_create_repo.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def should_create_repo @should_create_repo end |
#should_setup_rubyforge ⇒ Object
Returns the value of attribute should_setup_rubyforge.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def should_setup_rubyforge @should_setup_rubyforge end |
#should_use_cucumber ⇒ Object
Returns the value of attribute should_use_cucumber.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def should_use_cucumber @should_use_cucumber end |
#summary ⇒ Object
Returns the value of attribute summary.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def summary @summary end |
#target_dir ⇒ Object
Returns the value of attribute target_dir.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def target_dir @target_dir end |
#testing_framework ⇒ Object
Returns the value of attribute testing_framework.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def testing_framework @testing_framework end |
#user_email ⇒ Object
Returns the value of attribute user_email.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def user_email @user_email end |
#user_name ⇒ Object
Returns the value of attribute user_name.
31 32 33 |
# File 'lib/jeweler/generator.rb', line 31 def user_name @user_name end |
Instance Method Details
#constant_name ⇒ Object
85 86 87 |
# File 'lib/jeweler/generator.rb', line 85 def constant_name self.project_name.split(/[-_]/).collect{|each| each.capitalize }.join end |
#feature_filename ⇒ Object
105 106 107 |
# File 'lib/jeweler/generator.rb', line 105 def feature_filename "#{project_name}.feature" end |
#features_dir ⇒ Object
113 114 115 |
# File 'lib/jeweler/generator.rb', line 113 def features_dir 'features' end |
#features_steps_dir ⇒ Object
121 122 123 |
# File 'lib/jeweler/generator.rb', line 121 def features_steps_dir File.join(features_dir, 'step_definitions') end |
#features_support_dir ⇒ Object
117 118 119 |
# File 'lib/jeweler/generator.rb', line 117 def features_support_dir File.join(features_dir, 'support') end |
#file_name_prefix ⇒ Object
97 98 99 |
# File 'lib/jeweler/generator.rb', line 97 def file_name_prefix self.project_name.gsub('-', '_') end |
#git_remote ⇒ Object
77 78 79 |
# File 'lib/jeweler/generator.rb', line 77 def git_remote "[email protected]:#{github_username}/#{project_name}.git" end |
#lib_dir ⇒ Object
101 102 103 |
# File 'lib/jeweler/generator.rb', line 101 def lib_dir 'lib' end |
#lib_filename ⇒ Object
89 90 91 |
# File 'lib/jeweler/generator.rb', line 89 def lib_filename "#{project_name}.rb" end |
#project_homepage ⇒ Object
81 82 83 |
# File 'lib/jeweler/generator.rb', line 81 def project_homepage "http://github.com/#{github_username}/#{project_name}" end |
#require_name ⇒ Object
93 94 95 |
# File 'lib/jeweler/generator.rb', line 93 def require_name self.project_name end |
#run ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/jeweler/generator.rb', line 65 def run create_files gitify $stdout.puts "Jeweler has prepared your gem in #{target_dir}" if should_create_repo create_and_push_repo $stdout.puts "Jeweler has pushed your repo to #{project_homepage}" enable_gem_for_repo $stdout.puts "Jeweler has enabled gem building for your repo" end end |
#steps_filename ⇒ Object
109 110 111 |
# File 'lib/jeweler/generator.rb', line 109 def steps_filename "#{project_name}_steps.rb" end |