adamsanderson-open_gem 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -5,8 +5,16 @@ Simply opens the specified gem in your default editor.
5
5
 
6
6
  gem open rails
7
7
 
8
+ Installation:
9
+ ------------
10
+
11
+ Just install like any normal gem:
12
+ gem install adamsanderson-open_gem
13
+
14
+ You might need to add Github as a gem source:
15
+ gem sources -a http://gems.github.com
16
+
8
17
  For more help:
9
18
  gem open --help
10
19
 
11
-
12
20
  Adam Sanderson, netghost@gmail.com
data/Rakefile CHANGED
@@ -15,6 +15,10 @@ begin
15
15
  s.authors = ["Adam Sanderson"]
16
16
  s.has_rdoc = false
17
17
  s.files = FileList["[A-Z]*", "{bin,lib,test}/**/*"]
18
+
19
+ # Testing
20
+ s.test_files = FileList["test/**/*_test.rb"]
21
+ s.add_development_dependency 'mocha', '~> 0.9.5'
18
22
  end
19
23
 
20
24
  rescue LoadError
@@ -27,4 +31,4 @@ Rake::TestTask.new do |t|
27
31
  t.verbose = false
28
32
  end
29
33
 
30
- task :default => :install
34
+ task :default => :test
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :patch: 0
3
3
  :major: 1
4
- :minor: 0
4
+ :minor: 1
@@ -7,7 +7,7 @@ class Gem::Commands::OpenCommand < Gem::Command
7
7
  include Gem::VersionOption
8
8
 
9
9
  def initialize
10
- super 'open', "Opens the gem's source directory with $EDITOR",
10
+ super 'open', "Opens the gem's source directory with $GEM_OPEN_EDITOR or $EDITOR",
11
11
  :command => nil,
12
12
  :version=> Gem::Requirement.default,
13
13
  :latest=> false
@@ -29,31 +29,34 @@ class Gem::Commands::OpenCommand < Gem::Command
29
29
  "GEMNAME gem to open"
30
30
  end
31
31
 
32
- def execute
32
+ def execute
33
33
  name = get_one_gem_name
34
+ path = get_path(name)
34
35
 
36
+ open_gem(path) if path
37
+ end
38
+
39
+ def get_path(name)
35
40
  dep = Gem::Dependency.new name, options[:version]
36
41
  specs = Gem.source_index.search dep
37
42
 
38
43
  if specs.length == 0
39
44
  say "Could not find '#{name}'"
45
+ return nil
40
46
 
41
47
  elsif specs.length == 1 || options[:latest]
42
- path = specs.last.full_gem_path
48
+ return specs.last.full_gem_path
43
49
 
44
50
  else
45
51
  choices = specs.map{|s|"#{s.name} #{s.version}"}
46
52
  c,i = choose_from_list "Open which gem?", choices
47
- path = specs[i].full_gem_path if i
53
+ return specs[i].full_gem_path if i
48
54
 
49
55
  end
50
-
51
- open_gem(path) if path
52
56
  end
53
-
54
- private
57
+
55
58
  def open_gem(path)
56
- editor = options[:command] || ENV['EDITOR']
59
+ editor = options[:command] || ENV['GEM_OPEN_EDITOR'] || ENV['EDITOR']
57
60
  if !editor
58
61
  say "Either set $EDITOR, or use -c <command_name>"
59
62
  else
@@ -0,0 +1,42 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'mocha'
4
+
5
+ require 'rubygems/commands/open_command'
6
+ require 'rubygems/exceptions'
7
+
8
+ class Test_SomethingToTest < Test::Unit::TestCase
9
+ def setup
10
+ end
11
+
12
+ def test_opening_path
13
+ gem_name = 'neat_gem'
14
+ gem_path = 'some/path'
15
+ command = Gem::Commands::OpenCommand.new
16
+
17
+ command.expects(:get_path).with(gem_name).returns(gem_path)
18
+ command.expects(:open_gem).with(gem_path)
19
+
20
+ command.invoke(gem_name)
21
+ end
22
+
23
+ def test_opening_nonexistent_path
24
+ gem_name = 'neat_gem'
25
+ gem_path = nil
26
+ command = Gem::Commands::OpenCommand.new
27
+
28
+ command.expects(:get_path).with(gem_name).returns(gem_path)
29
+ command.expects(:open_gem).never
30
+
31
+ command.invoke(gem_name)
32
+ end
33
+
34
+ def test_opening_with_no_gem_name
35
+ command = Gem::Commands::OpenCommand.new
36
+
37
+ assert_raises Gem::CommandLineError do
38
+ command.invoke()
39
+ end
40
+ end
41
+
42
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adamsanderson-open_gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Sanderson
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-26 00:00:00 -07:00
12
+ date: 2009-04-28 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: mocha
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 0.9.5
24
+ version:
16
25
  description: Open a gem's source directory with either the default editor, or a specified command.
17
26
  email: netghost@gmail.com
18
27
  executables: []
@@ -27,6 +36,7 @@ files:
27
36
  - VERSION.yml
28
37
  - lib/rubygems/commands/open_command.rb
29
38
  - lib/rubygems_plugin.rb
39
+ - test/open_command_test.rb
30
40
  has_rdoc: false
31
41
  homepage: http://github.com/adamsanderson/open_gem
32
42
  post_install_message:
@@ -53,5 +63,5 @@ rubygems_version: 1.2.0
53
63
  signing_key:
54
64
  specification_version: 3
55
65
  summary: Gem Command to easily open a ruby gem with the editor of your choice.
56
- test_files: []
57
-
66
+ test_files:
67
+ - test/open_command_test.rb