Class: Jeweler::Generator::Options
- Inherits:
-
Hash
- Object
- Hash
- Jeweler::Generator::Options
- Defined in:
- lib/jeweler/generator/options.rb
Instance Attribute Summary collapse
-
#opts ⇒ Object
readonly
Returns the value of attribute opts.
-
#orig_args ⇒ Object
readonly
Returns the value of attribute orig_args.
Instance Method Summary collapse
-
#initialize(args) ⇒ Options
constructor
A new instance of Options.
- #merge(other) ⇒ Object
Constructor Details
#initialize(args) ⇒ Options
Returns a new instance of Options.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/jeweler/generator/options.rb', line 6 def initialize(args) super() @orig_args = args.clone self[:testing_framework] = :shoulda self[:documentation_framework] = :rdoc self[:use_bundler] = true git_config = if Pathname.new("~/.gitconfig")..exist? Git.global_config else {} end self[:user_name] = ENV['GIT_AUTHOR_NAME'] || ENV['GIT_COMMITTER_NAME'] || git_config['user.name'] self[:user_email] = ENV['GIT_AUTHOR_EMAIL'] || ENV['GIT_COMMITTER_EMAIL'] || git_config['user.email'] self[:github_username] = git_config['github.user'] self[:github_token] = git_config['github.token'] require 'optparse' @opts = OptionParser.new do |o| o. = "Usage: #{File.basename($0)} [options] reponame\ne.g. #{File.basename($0)} the-perfect-gem" o.on('--directory [DIRECTORY]', 'specify the directory to generate into (deprecated)') do |directory| warn "--directory is deprecated and will be removed in 2.0.0. Please specify an absolute path to a directoy as the last argument instead" # DEPRECATE self[:directory] = directory end o.separator "" o.on('--rspec', 'generate rspec code examples') do self[:testing_framework] = :rspec end o.on('--shoulda', 'generate shoulda tests') do self[:testing_framework] = :shoulda end o.on('--testunit', 'generate test/unit tests') do self[:testing_framework] = :testunit end o.on('--bacon', 'generate bacon specifications') do self[:testing_framework] = :bacon end o.on('--testspec', 'generate test/spec tests') do self[:testing_framework] = :testspec end o.on('--minitest', 'generate minitest tests') do self[:testing_framework] = :minitest end o.on('--micronaut', 'generate micronaut examples') do self[:testing_framework] = :micronaut end o.on('--riot', 'generate riot tests') do self[:testing_framework] = :riot end o.on('--shindo', 'generate shindo tests') do self[:testing_framework] = :shindo end o.separator "" o.on('--[no-]bundler', 'use bundler for managing dependencies') do |v| self[:use_bundler] = v end o.on('--cucumber', 'generate cucumber stories in addition to the other tests') do self[:use_cucumber] = true end o.separator "" o.on('--reek', 'generate rake task for reek') do self[:use_reek] = true end o.on('--roodi', 'generate rake task for roodi') do self[:use_roodi] = true end o.separator "" o.on('--summary [SUMMARY]', 'specify the summary of the project') do |summary| self[:summary] = summary end o.on('--description [DESCRIPTION]', 'specify a description of the project') do |description| self[:description] = description end o.separator "" o.on('--user-name [USER_NAME]', "the user's name, ie that is credited in the LICENSE") do |user_name| self[:user_name] = user_name end o.on('--user-email [USER_EMAIL]', "the user's email, ie that is credited in the Gem specification") do |user_email| self[:user_email] = user_email end o.separator "" o.on('--github-username [GITHUB_USERNAME]', "name of the user on GitHub to set the project up under") do |github_username| self[:github_username] = github_username end o.on('--github-token [GITHUB_TOKEN]', "GitHub token to use for interacting with the GitHub API") do |github_token| self[:github_token] = github_token end o.on('--git-remote [GIT_REMOTE]', 'URI to set the git origin remote to') do |git_remote| self[:git_remote] = git_remote end o.on('--homepage [HOMEPAGE]', "the homepage for your project (defaults to the GitHub repo)") do |homepage| self[:homepage] = homepage end o.on('--create-repo', 'create the repository on GitHub') do self[:create_repo] = true end o.separator "" o.on('--yard', 'use yard for documentation') do self[:documentation_framework] = :yard end o.on('--rdoc', 'use rdoc for documentation') do self[:documentation_framework] = :rdoc end o.on_tail('-h', '--help', 'display this help and exit') do self[:show_help] = true end end begin @opts.parse!(args) self[:project_name] = args.shift rescue OptionParser::InvalidOption => e self[:invalid_argument] = e. end end |
Instance Attribute Details
#opts ⇒ Object (readonly)
Returns the value of attribute opts.
4 5 6 |
# File 'lib/jeweler/generator/options.rb', line 4 def opts @opts end |
#orig_args ⇒ Object (readonly)
Returns the value of attribute orig_args.
4 5 6 |
# File 'lib/jeweler/generator/options.rb', line 4 def orig_args @orig_args end |
Instance Method Details
#merge(other) ⇒ Object
157 158 159 |
# File 'lib/jeweler/generator/options.rb', line 157 def merge(other) self.class.new(@orig_args + other.orig_args) end |