matthewtodd-rubygems_commands 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.rdoc ADDED
@@ -0,0 +1,31 @@
1
+ = Rubygems Commands
2
+
3
+ Since version 1.3.2, rubygems has allowed 3rd-party libraries to provide additional sub-commands for `gem`.
4
+
5
+ This gem provides for `gem mate`, `gem doc`, and `gem export`.
6
+
7
+ == Behold
8
+
9
+ gem mate activerecord
10
+ # => mate /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2
11
+
12
+ gem doc activerecord
13
+ # => open /opt/local/lib/ruby/gems/1.8/doc/activerecord-2.3.2/rdoc/index.html
14
+
15
+ gem export activerecord
16
+ # => Creates these files in the current directory:
17
+ # activerecord-2.3.2.gem
18
+ # activesupport-2.3.2.gem
19
+
20
+ == Install
21
+
22
+ gem sources --add http://gems.github.com
23
+ gem install matthewtodd-rubygems_commands
24
+
25
+ == Tab Completion
26
+
27
+ Provided by Dr. Nic's tabtab[http://tabtab.rubyforge.org] gem.
28
+
29
+ After installing, you'll want to update your tabtab completions with
30
+
31
+ install_tabtab
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ this_rakefile_uses_shoe = <<END
2
+ ----------------------------------------
3
+ Please install Shoe:
4
+ gem sources --add http://gems.github.com
5
+ gem install matthewtodd-shoe
6
+ ----------------------------------------
7
+ END
8
+
9
+ begin
10
+ gem 'matthewtodd-shoe'
11
+ rescue Gem::LoadError
12
+ abort this_rakefile_uses_shoe
13
+ else
14
+ require 'shoe'
15
+ end
16
+
17
+ Shoe.tie('rubygems_commands', '0.1.0', 'Random useful rubygems plugins, with tab completion.') do |spec|
18
+ spec.add_dependency 'tabtab'
19
+ end
@@ -0,0 +1,22 @@
1
+ require 'rubygems/command'
2
+
3
+ class Gem::Commands::DocCommand < Gem::Command
4
+ def initialize
5
+ super 'doc', 'Open gem rdoc'
6
+ end
7
+
8
+ def execute
9
+ index = Gem::SourceIndex.from_installed_gems
10
+ spec = index.find_name(get_one_gem_name, Gem::Requirement.default).last
11
+
12
+ if spec.has_rdoc?
13
+ exec 'open', File.join(spec.installation_path, 'doc', spec.full_name, 'rdoc', 'index.html')
14
+ else
15
+ $stderr.puts "#{spec.full_name} does not have rdoc."
16
+ end
17
+
18
+ def usage
19
+ "#{program_name} GEMNAME"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,24 @@
1
+ require 'rubygems/command'
2
+
3
+ class Gem::Commands::ExportCommand < Gem::Command
4
+ def initialize
5
+ super 'export', 'Copy a gem and its dependencies into the current directory'
6
+ end
7
+
8
+ def execute
9
+ export(get_one_gem_name)
10
+ end
11
+
12
+ def usage
13
+ "#{program_name} GEMNAME"
14
+ end
15
+
16
+ private
17
+
18
+ def export(name)
19
+ index = Gem::SourceIndex.from_installed_gems
20
+ spec = index.find_name(name, Gem::Requirement.default).last
21
+ FileUtils.copy(File.join(spec.installation_path, 'cache', spec.file_name), '.')
22
+ spec.runtime_dependencies.each { |d| export(d.name) }
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ require 'rubygems/command'
2
+
3
+ class Gem::Commands::MateCommand < Gem::Command
4
+ def initialize
5
+ super 'mate', 'Open gem source in TextMate'
6
+ end
7
+
8
+ def execute
9
+ index = Gem::SourceIndex.from_installed_gems
10
+ spec = index.find_name(get_one_gem_name, Gem::Requirement.default).last
11
+ exec 'mate', spec.full_gem_path
12
+ end
13
+
14
+ def usage
15
+ "#{program_name} GEMNAME"
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ # While not strictly necessary, having this file around means shoe will give
2
+ # me a `rake shell` task so I can poke around in irb.
3
+ require 'rubygems/commands/doc_command'
4
+ require 'rubygems/commands/export_command'
5
+ require 'rubygems/commands/mate_command'
@@ -0,0 +1,5 @@
1
+ require 'rubygems/command_manager'
2
+
3
+ [:doc, :export, :mate].each do |command|
4
+ Gem::CommandManager.instance.register_command(command)
5
+ end
@@ -0,0 +1,11 @@
1
+ require 'rubygems'
2
+
3
+ def locally_installed_gems
4
+ Gem::SourceIndex.from_installed_gems.latest_specs.map { |spec| spec.name }
5
+ end
6
+
7
+ TabTab::Definition.register('gem') do |c|
8
+ c.command(:doc) { locally_installed_gems }
9
+ c.command(:export) { locally_installed_gems }
10
+ c.command(:mate) { locally_installed_gems }
11
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: matthewtodd-rubygems_commands
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Matthew Todd
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-07-29 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: matthewtodd-shoe
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: tabtab
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description:
36
+ email: matthew.todd@gmail.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - README.rdoc
43
+ files:
44
+ - Rakefile
45
+ - README.rdoc
46
+ - lib/rubygems
47
+ - lib/rubygems/commands
48
+ - lib/rubygems/commands/doc_command.rb
49
+ - lib/rubygems/commands/export_command.rb
50
+ - lib/rubygems/commands/mate_command.rb
51
+ - lib/rubygems_commands.rb
52
+ - lib/rubygems_plugin.rb
53
+ - lib/tabtab_definitions
54
+ - lib/tabtab_definitions/gem.rb
55
+ has_rdoc: false
56
+ homepage:
57
+ licenses:
58
+ post_install_message:
59
+ rdoc_options:
60
+ - --main
61
+ - README.rdoc
62
+ - --title
63
+ - rubygems_commands-0.1.0
64
+ - --inline-source
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: "0"
72
+ version:
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ version:
79
+ requirements: []
80
+
81
+ rubyforge_project:
82
+ rubygems_version: 1.3.5
83
+ signing_key:
84
+ specification_version: 3
85
+ summary: Random useful rubygems plugins, with tab completion.
86
+ test_files: []
87
+