exec 0.0.0 → 0.0.1

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.
@@ -0,0 +1,22 @@
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
+ require 'exec/version'
3
+ require 'exec'
4
+
5
+ task :build do
6
+ Exec.system_v "gem build exec.gemspec"
7
+ end
8
+
9
+ task :release => :build do
10
+ Exec.system_v "gem push exec-#{Exec::VERSION}.gem"
11
+ end
12
+
13
+ task :install => :build do
14
+ Exec.system_v "gem install exec-#{Exec::VERSION}.gem"
15
+ end
16
+
17
+ task :tag do
18
+ v = Exec::VERSION.gsub(/\./, '_')
19
+ Exec.system_v "git tag REL_#{v}"
20
+ Exec.system_v "git push origin REL_#{v}"
21
+ end
22
+
@@ -0,0 +1,17 @@
1
+ lib = File.expand_path('../lib/', __FILE__)
2
+ $:.unshift lib unless $:.include?(lib)
3
+
4
+ require 'exec/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = 'exec'
8
+ s.version = Exec::VERSION
9
+ s.date = '2011-12-19'
10
+ s.summary = 'A mix between Kernel#system and FileUtils'
11
+ s.description = 'Exec#system Exec#system_v Exec#system! Exec#system_v!'
12
+ s.authors = ['Morgan Christiansson']
13
+ s.email = 'executils@mog.se'
14
+ s.files = `git ls-files`.split("\n")
15
+ s.homepage = 'http://github.com/morganchristiansson/exec'
16
+ end
17
+
@@ -1,18 +1,45 @@
1
1
  module Exec
2
- class NonZeroExitException < Exception
2
+ class NonZeroExitCodeException < Exception
3
3
  def initialize
4
4
  end
5
5
  end
6
- def self.system!(cmd)
7
- system(cmd) or raise NonZeroExitException
8
- end
9
- def self.system_v!(cmd)
10
- $stderr.puts cmd
11
- system(cmd) or raise NonZeroExitException
6
+ class CommandNotFoundException < Exception
7
+ def initialize
8
+ end
12
9
  end
13
- def self.system_v(cmd)
14
- $stderr.puts(cmd)
15
- system(cmd)
10
+ class << self
11
+ alias :_system :system
12
+ def system(*args)
13
+ _system(*args)
14
+ case _system(*args)
15
+ when true ; true
16
+ when nil ; raise CommandNotFoundException
17
+ else $?.exitstatus
18
+ end
19
+ end
20
+ def system_v(*args)
21
+ $stderr.puts(*args)
22
+ case _system(*args)
23
+ when true ; true
24
+ when nil ; raise CommandNotFoundException
25
+ else $?.exitstatus
26
+ end
27
+ end
28
+ def system!(*args)
29
+ case _system(*args)
30
+ when true ; true
31
+ when nil ; raise CommandNotFoundException
32
+ else ; raise NonZeroExitCodeException
33
+ end
34
+ end
35
+ def system_v!(*args)
36
+ $stderr.puts(*args)
37
+ case _system(*args)
38
+ when true ; true
39
+ when nil ; raise CommandNotFoundException
40
+ else ; raise NonZeroExitCodeException
41
+ end
42
+ end
16
43
  end
17
44
  end
18
45
 
@@ -0,0 +1,4 @@
1
+ module Exec
2
+ VERSION = '0.0.1'
3
+ end
4
+
@@ -0,0 +1,65 @@
1
+ require 'exec'
2
+
3
+ describe Exec do
4
+ subject { Exec }
5
+ before do
6
+ $stderr.stub! :puts
7
+ end
8
+
9
+ describe '#system' do
10
+ context "with successful completion" do
11
+ specify { Exec.system("true").should == true }
12
+ end
13
+ context "with non-zero exit code" do
14
+ specify { Exec.system("false").should == 1 }
15
+ end
16
+ context "with unknown command" do
17
+ specify { expect { Exec.system("afuiaerarhcfjk") }.should raise_error ::Exec::CommandNotFoundException }
18
+ end
19
+ end
20
+
21
+ describe '#system_v' do
22
+ it "prints the command" do
23
+ $stderr.should_receive(:puts).with("true")
24
+ Exec.system_v("true")
25
+ end
26
+ context "with successful completion" do
27
+ specify { Exec.system("true").should == true }
28
+ end
29
+ context "with non-zero exit code" do
30
+ specify { Exec.system_v("false").should == 1 }
31
+ end
32
+ context "with unknown command" do
33
+ specify { expect { Exec.system_v("afuiaerarhcfjk") }.should raise_error ::Exec::CommandNotFoundException }
34
+ end
35
+ end
36
+
37
+ describe '#system!' do
38
+ context "with successful completion" do
39
+ specify { Exec.system!("true").should == true }
40
+ end
41
+ context "with non-zero exit code" do
42
+ specify { expect { Exec.system!("false") }.should raise_error ::Exec::NonZeroExitCodeException }
43
+ end
44
+ context "with unknown command" do
45
+ specify { expect { Exec.system!("afguiauar") }.should raise_error ::Exec::CommandNotFoundException }
46
+ end
47
+ end
48
+
49
+ describe '#system_v!#' do
50
+ it "prints the command" do
51
+ $stderr.should_receive(:puts).with("true")
52
+ Exec.system_v!("true")
53
+ end
54
+ context "with successful completion" do
55
+ specify { Exec.system_v!("true").should == true }
56
+ end
57
+ context "with non-zero exit code" do
58
+ specify { expect { Exec.system_v!("false") }.should raise_error ::Exec::NonZeroExitCodeException }
59
+ end
60
+ context "with unknown command" do
61
+ specify { expect { Exec.system!("asdfasdf") }.should raise_error ::Exec::CommandNotFoundException }
62
+ end
63
+ end
64
+ end
65
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,14 +11,18 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2011-12-19 00:00:00.000000000Z
13
13
  dependencies: []
14
- description: FileUtils#system! FileUtils#system_v etc
14
+ description: Exec#system Exec#system_v Exec#system! Exec#system_v!
15
15
  email: executils@mog.se
16
16
  executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - Rakefile
21
+ - exec.gemspec
20
22
  - lib/exec.rb
21
- homepage: http://github.com/morganchristiansson/executils
23
+ - lib/exec/version.rb
24
+ - spec/lib/exec_spec.rb
25
+ homepage: http://github.com/morganchristiansson/exec
22
26
  licenses: []
23
27
  post_install_message:
24
28
  rdoc_options: []