Class: Gem::Commands::ExefyCommand
- Inherits:
-
Gem::Command
- Object
- Gem::Command
- Gem::Commands::ExefyCommand
- Defined in:
- lib/rubygems/commands/exefy_command.rb
Instance Method Summary collapse
- #arguments ⇒ Object
-
#description ⇒ Object
:nodoc:.
- #execute ⇒ Object
-
#initialize ⇒ ExefyCommand
constructor
A new instance of ExefyCommand.
-
#usage ⇒ Object
:nodoc:.
Constructor Details
#initialize ⇒ ExefyCommand
Returns a new instance of ExefyCommand.
6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/rubygems/commands/exefy_command.rb', line 6 def initialize super 'exefy', "Replaces a Gem's batch script with a Windows executable" add_option('--all', 'Replaces batch files with executable file', 'for all installed gems') do |value, | [:process_all_gems] = value end add_option('--revert', 'Restores batch files for given gem', 'or all gems if --all option is used') do |value, | [:revert] = value end end |
Instance Method Details
#arguments ⇒ Object
20 21 22 |
# File 'lib/rubygems/commands/exefy_command.rb', line 20 def arguments "GEMNAME name of gem to exefy (unless --all)" end |
#description ⇒ Object
:nodoc:
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/rubygems/commands/exefy_command.rb', line 28 def description # :nodoc: <<-EOS The exefy command replaces the default gem batch(.bat) script runner with a Windows executable(.exe) stub. Exefy also includes hooks that will automatically do this for all new Gem installs and will remove the executable with a Gem uninstall. Requires a RubyInstaller Ruby installation and the RubyInstaller DevKit. EOS end |
#execute ⇒ Object
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 |
# File 'lib/rubygems/commands/exefy_command.rb', line 39 def execute unless RUBY_PLATFORM =~ /mingw/ say "This command can be executed only on RubyInstaller Windows OS installation" return end begin require "exefy" require "devkit" if ![:revert] && Exefy.devkit_needed? rescue ::LoadError => load_error say "You must have DevKit installed in order to exefy gems" return end gem_specs = if [:process_all_gems] then Gem::Specification else begin gem_name = get_one_gem_name Gem::Specification.find_all_by_name(gem_name) rescue Gem::LoadError => e say "Cannot exefy. Gem #{name} not found" end end gem_specs.each do |gem_spec| Exefy.process_existing_gem(gem_spec, [:revert]) end end |
#usage ⇒ Object
:nodoc:
24 25 26 |
# File 'lib/rubygems/commands/exefy_command.rb', line 24 def usage # :nodoc: "#{program_name} [GEMNAME]" end |