rprogram 0.1.5 → 0.1.6
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.tar.gz.sig +0 -0
- data/History.txt +14 -0
- data/LICENSE.txt +23 -0
- data/Manifest.txt +17 -4
- data/README.txt +1 -0
- data/Rakefile +6 -5
- data/lib/rprogram/compat.rb +8 -8
- data/lib/rprogram/extensions.rb +0 -2
- data/lib/rprogram/nameable.rb +8 -1
- data/lib/rprogram/non_option.rb +37 -17
- data/lib/rprogram/option.rb +44 -44
- data/lib/rprogram/option_list.rb +4 -6
- data/lib/rprogram/options.rb +5 -5
- data/lib/rprogram/program.rb +13 -14
- data/lib/rprogram/rprogram.rb +2 -2
- data/lib/rprogram/task.rb +37 -33
- data/lib/rprogram/version.rb +1 -1
- data/spec/classes/aliased_program.rb +10 -0
- data/spec/classes/ls_program.rb +8 -0
- data/spec/classes/ls_selinux_task.rb +7 -0
- data/spec/classes/ls_task.rb +12 -0
- data/spec/classes/named_program.rb +9 -0
- data/spec/compat_spec.rb +21 -0
- data/spec/nameable_spec.rb +55 -0
- data/spec/non_option_spec.rb +48 -0
- data/spec/option_examples.rb +17 -0
- data/spec/option_list_spec.rb +25 -0
- data/spec/option_spec.rb +178 -0
- data/spec/program_spec.rb +52 -0
- data/spec/rprogram_spec.rb +18 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/task_spec.rb +85 -0
- metadata +54 -13
- metadata.gz.sig +0 -0
- data/lib/rprogram/extensions/array.rb +0 -7
- data/lib/rprogram/extensions/hash.rb +0 -15
- data/test/test_rprogram.rb +0 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'rprogram/program'
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'classes/ls_program'
|
5
|
+
|
6
|
+
describe Program do
|
7
|
+
it "should create a Program from a path" do
|
8
|
+
prog = Program.new('/usr/bin/ruby')
|
9
|
+
|
10
|
+
prog.should_not be_nil
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should derive the program name from a path" do
|
14
|
+
prog = Program.new('/usr/bin/ruby')
|
15
|
+
|
16
|
+
prog.name.should == 'ruby'
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return the program path when converted to a String" do
|
20
|
+
prog = Program.new('/usr/bin/ruby')
|
21
|
+
|
22
|
+
prog.to_s.should == '/usr/bin/ruby'
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should raise an exception for invalid paths" do
|
26
|
+
lambda {
|
27
|
+
Program.new('/totally/doesnt/exist')
|
28
|
+
}.should raise_error(ProgramNotFound)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should find a program from a path" do
|
32
|
+
prog = Program.find_with_path('/usr/bin/dir')
|
33
|
+
|
34
|
+
prog.should_not be_nil
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should find a program from given paths" do
|
38
|
+
prog = Program.find_with_paths(['/usr/bin/ls','/bin/ls'])
|
39
|
+
|
40
|
+
prog.should_not be_nil
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should be able to find a program based on the program names" do
|
44
|
+
ls = nil
|
45
|
+
|
46
|
+
lambda {
|
47
|
+
ls = LS.find
|
48
|
+
}.should_not raise_error(ProgramNotFound)
|
49
|
+
|
50
|
+
File.executable?(ls.path).should == true
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rprogram/version'
|
2
|
+
require 'rprogram/rprogram'
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
|
6
|
+
describe RProgram do
|
7
|
+
it "should have a VERSION constant" do
|
8
|
+
RProgram.const_defined?('VERSION').should == true
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should have a debug mode" do
|
12
|
+
RProgram.debug = true
|
13
|
+
RProgram.debug.should == true
|
14
|
+
|
15
|
+
RProgram.debug = false
|
16
|
+
RProgram.debug.should == false
|
17
|
+
end
|
18
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/spec/task_spec.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'rprogram/task'
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'classes/ls_task'
|
5
|
+
require 'classes/ls_selinux_task'
|
6
|
+
|
7
|
+
describe Task do
|
8
|
+
describe "flag_namify" do
|
9
|
+
it "should downcase all characters" do
|
10
|
+
Task.flag_namify('-SHORT-option').should == 'short_option'
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should replace dashes with underscores" do
|
14
|
+
Task.flag_namify('-short-option').should == 'short_option'
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should replace dots with underscores" do
|
18
|
+
Task.flag_namify('-short.option').should == 'short_option'
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should replace spaces with underscores" do
|
22
|
+
Task.flag_namify('-short option').should == 'short_option'
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should replace multiple underscores with one underscore" do
|
26
|
+
Task.flag_namify('-short__option').should == 'short_option'
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should namify short options" do
|
30
|
+
Task.flag_namify('-short-option').should == 'short_option'
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should namify long options" do
|
34
|
+
Task.flag_namify('--long-option').should == 'long_option'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
before(:each) do
|
39
|
+
@task = LSTask.new
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should have no arguments by default" do
|
43
|
+
@task.arguments.should be_empty
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should define reader and writter methods for options" do
|
47
|
+
@task.all.should be_nil
|
48
|
+
|
49
|
+
@task.all = true
|
50
|
+
@task.all.should == true
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should default the value of multi-options to an empty Array" do
|
54
|
+
@task.hide.should be_empty
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should define reader and writter methods for non-options" do
|
58
|
+
@task.files.should be_empty
|
59
|
+
|
60
|
+
@task.files << 'file.txt'
|
61
|
+
@task.files.should == ['file.txt']
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should provide access to the defined options" do
|
65
|
+
LSTask.options.should_not be_empty
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should provide access to the defined non-options" do
|
69
|
+
LSTask.non_options.should_not be_empty
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should default the name of long options to the flag" do
|
73
|
+
LSTask.options[:author].flag.should == '--author'
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should allow the name of long options to be overridden" do
|
77
|
+
LSTask.options[:group_dirs_first].flag.should == '--group-directories-first'
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should allow options to be inherited" do
|
81
|
+
LSTask.has_option?(:security_context).should == false
|
82
|
+
LSSELinuxTask.has_option?(:all).should == true
|
83
|
+
LSSELinuxTask.has_option?(:security_context).should == true
|
84
|
+
end
|
85
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rprogram
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDQDCCAiigAwIBAgIBADANBgkqhkiG9w0BAQUFADBGMRgwFgYDVQQDDA9wb3N0
|
14
|
+
bW9kZXJuLm1vZDMxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
|
15
|
+
ARkWA2NvbTAeFw0wOTA2MDMwNDU5MDNaFw0xMDA2MDMwNDU5MDNaMEYxGDAWBgNV
|
16
|
+
BAMMD3Bvc3Rtb2Rlcm4ubW9kMzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYK
|
17
|
+
CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
18
|
+
1wvANkTDHFgVih5XLjuTwTZjgBq1lBGybXJiH6Id1lY2JOMqM5FB1DDHVvvij94i
|
19
|
+
mJabN0zkzu6VKWC70y0IwOxY7CPokr0eFdK/D0y7mCq1P8QITv76i2YqAl0eYqIt
|
20
|
+
W+IhIkANQ7E6uMZIZcdnfadC6lPAtlKkqtd9crvRbFgr6e3kyflmohbRnTEJHoRd
|
21
|
+
7SHHsybE6DSn7oTDs6XBTNrNIn5VfZA0z01eeos/+zBm1zKJOK2+/7xtLLDuDU9G
|
22
|
+
+Rd+ltUBbvxUrMNZmDG29pnmN2xTRH+Q8HxD2AxlvM5SRpK6OeZaHV7PaCCAVZ4L
|
23
|
+
T9BFl1sfMvRlABeGEkSyuQIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
|
24
|
+
sDAdBgNVHQ4EFgQUKwsd+PqEYmBvyaTyoL+uRuk+PhEwDQYJKoZIhvcNAQEFBQAD
|
25
|
+
ggEBAB4TvHsrlbcXcKg6gX5BIb9tI+zGkpzo0Z7jnxMEcNO7NGGwmzafDBI/xZYv
|
26
|
+
xkRH3/HXbGGYDOi6Q6gWt5GujSx0bOImDtYTJTH8jnzN92HzEK5WdScm1QpZKF1e
|
27
|
+
cezArMbxbSPaosxTCtG6LQTkE28lFQsmFZ5xzouugS4h5+LVJiVMmiP+l3EfkjFa
|
28
|
+
GOURU+rNEMPWo8MCWivGW7jes6BMzWHcW7DQ0scNVmIcCIgdyMmpscuAEOSeghy9
|
29
|
+
/fFs57Ey2OXBL55nDOyvN/ZQ2Vab05UH4t+GCxjAPeirzL/29FBtePT6VD44c38j
|
30
|
+
pDj+ws7QjtH/Qcrr1l9jfN0ehDs=
|
31
|
+
-----END CERTIFICATE-----
|
11
32
|
|
12
|
-
date: 2009-
|
33
|
+
date: 2009-06-30 00:00:00 -07:00
|
13
34
|
default_executable:
|
14
35
|
dependencies:
|
15
36
|
- !ruby/object:Gem::Dependency
|
@@ -20,9 +41,13 @@ dependencies:
|
|
20
41
|
requirements:
|
21
42
|
- - ">="
|
22
43
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
44
|
+
version: 2.2.0
|
24
45
|
version:
|
25
|
-
description:
|
46
|
+
description: |-
|
47
|
+
RProgram is a library for creating wrappers around command-line programs.
|
48
|
+
RProgram provides a Rubyful interface to programs and all their options
|
49
|
+
or non-options. RProgram can also search for programs installed on a
|
50
|
+
system.
|
26
51
|
email:
|
27
52
|
- postmodern.mod3@gmail.com
|
28
53
|
executables: []
|
@@ -32,21 +57,20 @@ extensions: []
|
|
32
57
|
extra_rdoc_files:
|
33
58
|
- History.txt
|
34
59
|
- Manifest.txt
|
60
|
+
- LICENSE.txt
|
35
61
|
- README.txt
|
36
62
|
files:
|
37
63
|
- History.txt
|
38
64
|
- Manifest.txt
|
65
|
+
- LICENSE.txt
|
39
66
|
- README.txt
|
40
67
|
- Rakefile
|
41
68
|
- lib/rprogram.rb
|
42
|
-
- lib/rprogram/version.rb
|
43
69
|
- lib/rprogram/compat.rb
|
44
70
|
- lib/rprogram/exceptions/program_not_found.rb
|
45
71
|
- lib/rprogram/exceptions.rb
|
46
72
|
- lib/rprogram/extensions/meta/object.rb
|
47
73
|
- lib/rprogram/extensions/meta.rb
|
48
|
-
- lib/rprogram/extensions/array.rb
|
49
|
-
- lib/rprogram/extensions/hash.rb
|
50
74
|
- lib/rprogram/extensions.rb
|
51
75
|
- lib/rprogram/option_list.rb
|
52
76
|
- lib/rprogram/option.rb
|
@@ -56,9 +80,26 @@ files:
|
|
56
80
|
- lib/rprogram/nameable.rb
|
57
81
|
- lib/rprogram/program.rb
|
58
82
|
- lib/rprogram/rprogram.rb
|
59
|
-
-
|
83
|
+
- lib/rprogram/version.rb
|
84
|
+
- spec/spec_helper.rb
|
85
|
+
- spec/classes/named_program.rb
|
86
|
+
- spec/classes/aliased_program.rb
|
87
|
+
- spec/classes/ls_program.rb
|
88
|
+
- spec/classes/ls_task.rb
|
89
|
+
- spec/classes/ls_selinux_task.rb
|
90
|
+
- spec/rprogram_spec.rb
|
91
|
+
- spec/compat_spec.rb
|
92
|
+
- spec/option_examples.rb
|
93
|
+
- spec/option_spec.rb
|
94
|
+
- spec/non_option_spec.rb
|
95
|
+
- spec/option_list_spec.rb
|
96
|
+
- spec/nameable_spec.rb
|
97
|
+
- spec/program_spec.rb
|
98
|
+
- spec/task_spec.rb
|
60
99
|
has_rdoc: true
|
61
100
|
homepage: http://rprogram.rubyforge.org/
|
101
|
+
licenses: []
|
102
|
+
|
62
103
|
post_install_message:
|
63
104
|
rdoc_options:
|
64
105
|
- --main
|
@@ -80,9 +121,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
121
|
requirements: []
|
81
122
|
|
82
123
|
rubyforge_project: rprogram
|
83
|
-
rubygems_version: 1.3.
|
124
|
+
rubygems_version: 1.3.4
|
84
125
|
signing_key:
|
85
|
-
specification_version:
|
126
|
+
specification_version: 3
|
86
127
|
summary: RProgram is a library for creating wrappers around command-line programs
|
87
|
-
test_files:
|
88
|
-
|
128
|
+
test_files: []
|
129
|
+
|
metadata.gz.sig
ADDED
Binary file
|
data/test/test_rprogram.rb
DELETED
File without changes
|