class Gem2Rpm::Configuration
Constants
- CURRENT_DIR
- DEFAULT_MACROS
The defaults should mostly work
- DEFAULT_OPTIONS
- DEFAULT_RULES
Public Class Methods
new()
click to toggle source
# File lib/gem2rpm/configuration.rb, line 83 def initialize @options = nil @parser = nil end
Public Instance Methods
macro_for(category)
click to toggle source
# File lib/gem2rpm/configuration.rb, line 105 def macro_for(category) macros[category] ||= '' end
macros()
click to toggle source
Hash with macros for files categories
# File lib/gem2rpm/configuration.rb, line 96 def macros @_macros ||= DEFAULT_MACROS.dup end
options()
click to toggle source
Get options.
# File lib/gem2rpm/configuration.rb, line 114 def options handle_options unless @options @options end
reset()
click to toggle source
Set the configuration back to default values
# File lib/gem2rpm/configuration.rb, line 89 def reset @_macros = nil @_rules = nil self end
rule_for(category)
click to toggle source
# File lib/gem2rpm/configuration.rb, line 109 def rule_for(category) rules[category] ||= '' end
rules()
click to toggle source
Hash with rules for file categorization
# File lib/gem2rpm/configuration.rb, line 101 def rules @_rules ||= DEFAULT_RULES.dup end
Private Instance Methods
create_option_parser()
click to toggle source
Creates an option parser.
# File lib/gem2rpm/configuration.rb, line 133 def create_option_parser @parser = OptionParser.new setup_parser_options end
handle_options(args = ARGV)
click to toggle source
Handles list of given options. Use ARGV by default.
# File lib/gem2rpm/configuration.rb, line 122 def handle_options(args = ARGV) @options = Marshal.load Marshal.dump DEFAULT_OPTIONS # deep copy parser.parse!(args) @options[:args] = args # TODO: Refactor, this is probably not the best palce. rescue OptionParser::InvalidOption => e message = "#{e}\n\n#{parser}\n" fail(InvalidOption, message) end
parser()
click to toggle source
Get parser instance.
# File lib/gem2rpm/configuration.rb, line 139 def parser create_option_parser unless @parser @parser end
setup_parser_options()
click to toggle source
# File lib/gem2rpm/configuration.rb, line 144 def setup_parser_options parser.banner = "Usage: #{$PROGRAM_NAME} [OPTIONS] GEM" parser.separator(' Convert Ruby gems to source RPMs and specfiles.') parser.separator(' Uses a template to generate the RPM specfile') parser.separator(' from the gem specification.') parser.separator('') parser.separator(' Options:') parser.on('-T', '--current-template', 'Print the current template') do options[:print_template_file] = true end parser.on('-t', '--template TEMPLATE', 'Use TEMPLATE for the specfile') do |val| options[:template_file] = val end parser.on('--templates', 'List all available templates') do options[:templates] = true end parser.on('-v', '--version', 'Print gem2rpm\'s version and exit') do options[:version] = true end parser.on('-o', '--output FILE', 'Send the specfile to FILE') do |val| options[:output_file] = val end parser.on('-s', '--srpm', 'Create a source RPM') do options[:srpm] = true end parser.on('-l', '--local', "Do not retrieve Gem information over #{' ' * 22} the network. Use on disconnected machines") do options[:local] = true end parser.on('-d', '--dependencies', 'Print the dependencies of the gem') do options[:deps] = true end parser.on('-n', '--nongem', 'Generate a subpackage for non-gem use') do options[:nongem] = true end parser.on('--no-doc', 'Disable document subpackage') do options[:doc_subpackage] = false end parser.on('--fetch', 'Fetch the gem from rubygems.org') do options[:fetch] = true end parser.on('-C', '--directory DIR', 'Change to directory DIR') do |val| options[:directory] = val end parser.separator('') parser.separator(' Arguments:') parser.separator(' GEM The path to the locally stored gem package file or the name') parser.separator(' of the gem when using --fetch.') parser.separator('') end