launchy 2.5.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +1 -0
- data/HISTORY.md +31 -20
- data/LICENSE +1 -1
- data/Manifest.txt +1 -5
- data/README.md +10 -47
- data/Rakefile +7 -5
- data/lib/launchy/application.rb +18 -3
- data/lib/launchy/applications/browser.rb +2 -2
- data/lib/launchy/cli.rb +1 -6
- data/lib/launchy/detect/host_os.rb +1 -1
- data/lib/launchy/detect/host_os_family.rb +2 -2
- data/lib/launchy/detect.rb +0 -2
- data/lib/launchy/runner.rb +46 -0
- data/lib/launchy/version.rb +1 -1
- data/lib/launchy.rb +18 -14
- data/spec/applications/browser_spec.rb +9 -14
- data/spec/cli_spec.rb +5 -6
- data/spec/launchy_spec.rb +29 -6
- data/spec/mock_application.rb +4 -0
- data/spec/spec_helper.rb +2 -5
- data/tasks/default.rake +24 -16
- data/tasks/this.rb +3 -3
- metadata +45 -23
- data/lib/launchy/deprecated.rb +0 -52
- data/lib/launchy/detect/ruby_engine.rb +0 -78
- data/lib/launchy/detect/runner.rb +0 -152
- data/spec/detect/ruby_engine_spec.rb +0 -37
- data/spec/detect/runner_spec.rb +0 -103
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Launchy::Detect::RubyEngine do
|
4
|
-
|
5
|
-
before do
|
6
|
-
Launchy.reset_global_options
|
7
|
-
end
|
8
|
-
|
9
|
-
after do
|
10
|
-
Launchy.reset_global_options
|
11
|
-
end
|
12
|
-
|
13
|
-
%w[ ruby jruby rbx macruby ].each do |ruby|
|
14
|
-
it "detects the #{ruby} RUBY_ENGINE" do
|
15
|
-
_(Launchy::Detect::RubyEngine.detect( ruby ).ancestors).must_include Launchy::Detect::RubyEngine
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
it "uses the global ruby_engine overrides" do
|
20
|
-
ENV['LAUNCHY_RUBY_ENGINE'] = "rbx"
|
21
|
-
_(Launchy::Detect::RubyEngine.detect).must_equal Launchy::Detect::RubyEngine::Rbx
|
22
|
-
ENV.delete('LAUNCHY_RUBY_ENGINE')
|
23
|
-
end
|
24
|
-
|
25
|
-
it "does not find a ruby engine of 'foo'" do
|
26
|
-
_(lambda { Launchy::Detect::RubyEngine.detect( 'foo' ) }).must_raise Launchy::Detect::RubyEngine::NotFoundError
|
27
|
-
end
|
28
|
-
|
29
|
-
{ 'rbx' => :rbx?,
|
30
|
-
'ruby' => :mri?,
|
31
|
-
'macruby' => :macruby?,
|
32
|
-
'jruby' => :jruby? }.each_pair do |engine, method|
|
33
|
-
it "#{method} returns true for #{engine} " do
|
34
|
-
_(Launchy::Detect::RubyEngine.detect( engine ).send( method )).must_equal true
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
data/spec/detect/runner_spec.rb
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe Launchy::Detect::Runner do
|
5
|
-
before do
|
6
|
-
Launchy.reset_global_options
|
7
|
-
@test_url = "http://example.com/?foo=bar&baz=wibble"
|
8
|
-
end
|
9
|
-
|
10
|
-
after do
|
11
|
-
Launchy.reset_global_options
|
12
|
-
end
|
13
|
-
|
14
|
-
it "raises an error when there is an unknown host os" do
|
15
|
-
Launchy.host_os = "foo"
|
16
|
-
_(lambda{ Launchy::Detect::Runner.detect }).must_raise Launchy::Detect::HostOsFamily::NotFoundError
|
17
|
-
end
|
18
|
-
|
19
|
-
it "raises an error when there is an unknown ruby engine" do
|
20
|
-
Launchy.ruby_engine = "wibble"
|
21
|
-
_(lambda{ Launchy::Detect::Runner.detect }).must_raise Launchy::Detect::RubyEngine::NotFoundError
|
22
|
-
end
|
23
|
-
|
24
|
-
it "raises and error when there is no command found" do
|
25
|
-
runner = Launchy::Detect::Runner.detect
|
26
|
-
_(lambda{ runner.run( nil, *%w[ arg1 arg2 arg 3] ) }).must_raise Launchy::CommandNotFoundError
|
27
|
-
end
|
28
|
-
|
29
|
-
# On anything that has fork, use Forkable
|
30
|
-
%w[ linux darwin cygwin ].each do |host_os|
|
31
|
-
%w[ ruby rbx macruby ].each do |engine_name|
|
32
|
-
it "engine '#{engine_name}' on OS '#{host_os}' uses runner Forkable" do
|
33
|
-
Launchy.host_os = host_os
|
34
|
-
Launchy.ruby_engine = engine_name
|
35
|
-
engine = Launchy::Detect::Runner.detect
|
36
|
-
_(engine).must_be_instance_of Launchy::Detect::Runner::Forkable
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
|
42
|
-
# Jruby always uses the Jruby runner except on Windows
|
43
|
-
{ 'mingw' => Launchy::Detect::Runner::Windows,
|
44
|
-
'linux' => Launchy::Detect::Runner::Jruby,
|
45
|
-
'darwin' => Launchy::Detect::Runner::Jruby,
|
46
|
-
'cygwin' => Launchy::Detect::Runner::Jruby, }.each_pair do |host_os, runner|
|
47
|
-
it "engine 'jruby' on OS '#{host_os}' uses runner #{runner.name}" do
|
48
|
-
Launchy.host_os = host_os
|
49
|
-
Launchy.ruby_engine = 'jruby'
|
50
|
-
engine = Launchy::Detect::Runner.detect
|
51
|
-
_(engine).must_be_instance_of runner
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
# If you are on windows, no matter what engine, you use the windows runner
|
56
|
-
%w[ ruby rbx jruby macruby ].each do |engine_name|
|
57
|
-
it "uses a Windows runner when the engine is '#{engine_name}'" do
|
58
|
-
Launchy.host_os = "mingw"
|
59
|
-
Launchy.ruby_engine = engine_name
|
60
|
-
e = Launchy::Detect::Runner.detect
|
61
|
-
_(e).must_be_instance_of Launchy::Detect::Runner::Windows
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
it "Windows launches use the 'cmd' command" do
|
66
|
-
win = Launchy::Detect::Runner::Windows.new
|
67
|
-
cmd = win.dry_run( "not-really", [ "http://example.com" ] )
|
68
|
-
_(cmd).must_equal 'cmd /c not-really http://example.com'
|
69
|
-
end
|
70
|
-
|
71
|
-
%w[ & | ( ) < > ^ ].each do |reserved_char|
|
72
|
-
it "Windows escapes '#{reserved_char}' in urls" do
|
73
|
-
win = Launchy::Detect::Runner::Windows.new
|
74
|
-
parts = [ 'http://example.com/?foo=bar', 'baz=wibble' ]
|
75
|
-
url = parts.join( reserved_char )
|
76
|
-
output_url = parts.join( "^#{reserved_char}" )
|
77
|
-
|
78
|
-
_(win.all_args( "not-really", [ url ] )).must_equal [ 'cmd', '/c', 'not-really', output_url ]
|
79
|
-
|
80
|
-
cmd = win.dry_run( "not-really", [ url ] )
|
81
|
-
_(cmd).must_equal "cmd /c not-really #{output_url}"
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
it "Jruby doesnot escapes '&' in urls" do
|
86
|
-
jruby = Launchy::Detect::Runner::Jruby.new
|
87
|
-
cmd = jruby.dry_run( "not-really", [ @test_url ])
|
88
|
-
_(cmd).must_equal 'not-really http://example.com/?foo=bar&baz=wibble'
|
89
|
-
end
|
90
|
-
|
91
|
-
it "does not escape %38 items in urls" do
|
92
|
-
l = Launchy::Detect::Runner::Forkable.new
|
93
|
-
cmd = l.dry_run( "not-really", [ "http://ja.wikipedia.org/wiki/%E3%81%82" ] )
|
94
|
-
_(cmd).must_equal( 'not-really http://ja.wikipedia.org/wiki/%E3%81%82' )
|
95
|
-
end
|
96
|
-
|
97
|
-
it "can launch a utf8 url" do
|
98
|
-
url = "http://ja.wikipedia.org/wiki/あ"
|
99
|
-
l = Launchy::Detect::Runner::Forkable.new
|
100
|
-
cmd = l.dry_run( "not-really", [ url ] )
|
101
|
-
_(cmd).must_equal( "not-really #{url}" )
|
102
|
-
end
|
103
|
-
end
|