rprogram 0.2.2 → 0.2.3
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/ChangeLog.md +10 -2
- data/README.md +7 -2
- data/Rakefile +2 -2
- data/gemspec.yml +5 -2
- data/lib/rprogram/compat.rb +26 -26
- data/lib/rprogram/option.rb +3 -4
- data/lib/rprogram/version.rb +1 -1
- data/spec/spec_helper.rb +1 -2
- metadata +31 -36
data/ChangeLog.md
CHANGED
@@ -1,8 +1,16 @@
|
|
1
|
+
### 0.2.3 / 2011-03-30
|
2
|
+
|
3
|
+
* Require env ~> 0.1, >= 0.1.2.
|
4
|
+
* Automatically search for programs with a `.exe` suffix, when running on
|
5
|
+
Windows.
|
6
|
+
* {RProgram::Compat.find_program} and {RProgram::Compat.find_program_by_names}
|
7
|
+
now return a `Pathname` object.
|
8
|
+
|
1
9
|
### 0.2.2 / 2011-01-22
|
2
10
|
|
3
11
|
* Deprecated {RProgram::Compat.platform}.
|
4
12
|
* Use `File::PATH_SEPARATOR` to separate the `PATH` environment variable
|
5
|
-
in
|
13
|
+
in `RProgram::Compat.paths`.
|
6
14
|
|
7
15
|
### 0.2.1 / 2010-10-27
|
8
16
|
|
@@ -38,7 +46,7 @@
|
|
38
46
|
|
39
47
|
* Use Hoe 2.2.0.
|
40
48
|
* Removed requirement for 'open3'.
|
41
|
-
* Renamed PRogram::Compat.PATHS to
|
49
|
+
* Renamed PRogram::Compat.PATHS to `RProgram::Compat.paths`.
|
42
50
|
* Refactored {RProgram::Option#arguments}.
|
43
51
|
* Removed `RProgram::Option#format`.
|
44
52
|
* Refactored {RProgram::NonOption#arguments}.
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
* [Source](http://github.com/postmodern/rprogram)
|
4
4
|
* [Issues](http://github.com/postmodern/rprogram/issues)
|
5
5
|
* [Documentation](http://rubydoc.info/gems/rprogram)
|
6
|
-
*
|
6
|
+
* [Email](mailto:postmodern.mod3 at gmail.com)
|
7
7
|
|
8
8
|
## Description
|
9
9
|
|
@@ -92,11 +92,16 @@ Finally, run your program with options or a block:
|
|
92
92
|
end
|
93
93
|
# => true
|
94
94
|
|
95
|
+
## Requirements
|
96
|
+
|
97
|
+
* [env](http://github.com/postmodern/env) ~> 0.1, >= 0.1.2
|
98
|
+
|
95
99
|
## Install
|
96
100
|
|
97
101
|
$ sudo gem install rprogram
|
98
102
|
|
99
103
|
## License
|
100
104
|
|
101
|
-
|
105
|
+
Copyright (c) 2007-2011 Hal Brodigan
|
102
106
|
|
107
|
+
See {file:LICENSE.txt} for license information.
|
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
|
4
4
|
begin
|
5
|
-
gem 'ore-tasks', '~> 0.
|
5
|
+
gem 'ore-tasks', '~> 0.4'
|
6
6
|
require 'ore/tasks'
|
7
7
|
|
8
8
|
Ore::Tasks.new
|
@@ -12,7 +12,7 @@ rescue LoadError => e
|
|
12
12
|
end
|
13
13
|
|
14
14
|
begin
|
15
|
-
gem 'rspec', '~> 2.4
|
15
|
+
gem 'rspec', '~> 2.4'
|
16
16
|
require 'rspec/core/rake_task'
|
17
17
|
|
18
18
|
RSpec::Core::RakeTask.new
|
data/gemspec.yml
CHANGED
@@ -13,7 +13,10 @@ email: postmodern.mod3@gmail.com
|
|
13
13
|
homepage: http://github.com/postmodern/rprogram
|
14
14
|
has_yard: true
|
15
15
|
|
16
|
+
dependencies:
|
17
|
+
env: ~> 0.1, >= 0.1.2
|
18
|
+
|
16
19
|
development_dependencies:
|
17
|
-
ore-tasks: ~> 0.
|
18
|
-
rspec: ~> 2.4
|
20
|
+
ore-tasks: ~> 0.4
|
21
|
+
rspec: ~> 2.4
|
19
22
|
yard: ~> 0.6.0
|
data/lib/rprogram/compat.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
require 'rprogram/exceptions/program_not_found'
|
2
|
+
require 'rprogram/rprogram'
|
3
|
+
|
4
|
+
require 'env/variables'
|
2
5
|
|
3
6
|
module RProgram
|
4
7
|
module Compat
|
8
|
+
extend Env::Variables
|
9
|
+
|
5
10
|
#
|
6
11
|
# Determines the native platform.
|
7
12
|
#
|
@@ -17,40 +22,29 @@ module RProgram
|
|
17
22
|
RUBY_PLATFORM.split('-').last
|
18
23
|
end
|
19
24
|
|
20
|
-
#
|
21
|
-
# Determines the contents of the `PATH` environment variable.
|
22
|
-
#
|
23
|
-
# @return [Array]
|
24
|
-
# The contents of the `PATH` environment variable.
|
25
|
-
#
|
26
|
-
# @example
|
27
|
-
# Compat.paths #=> ["/bin", "/usr/bin"]
|
28
|
-
#
|
29
|
-
def Compat.paths
|
30
|
-
if ENV['PATH']
|
31
|
-
ENV['PATH'].split(File::PATH_SEPARATOR)
|
32
|
-
else
|
33
|
-
[]
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
25
|
#
|
38
26
|
# Finds the full-path of the program with the matching name.
|
39
27
|
#
|
40
28
|
# @param [String] name
|
41
29
|
# The name of the program to find.
|
42
30
|
#
|
43
|
-
# @return [
|
31
|
+
# @return [Pathname, nil]
|
44
32
|
# The full-path of the desired program.
|
45
33
|
#
|
46
34
|
# @example
|
47
|
-
# Compat.find_program('as')
|
35
|
+
# Compat.find_program('as')
|
36
|
+
# #=> #<Pathname:/usr/bin/as>
|
48
37
|
#
|
49
38
|
def Compat.find_program(name)
|
50
|
-
|
51
|
-
|
39
|
+
# add the `.exe` suffix to the name, if running on Windows
|
40
|
+
if platform =~ /mswin/
|
41
|
+
name = "#{name}.exe"
|
42
|
+
end
|
43
|
+
|
44
|
+
paths.each do |dir|
|
45
|
+
full_path = dir.join(name).expand_path
|
52
46
|
|
53
|
-
return full_path if
|
47
|
+
return full_path if full_path.file?
|
54
48
|
end
|
55
49
|
|
56
50
|
return nil
|
@@ -62,14 +56,20 @@ module RProgram
|
|
62
56
|
# @param [Array] names
|
63
57
|
# The names of the program to use while searching for the program.
|
64
58
|
#
|
65
|
-
# @return [
|
59
|
+
# @return [Pathname, nil]
|
66
60
|
# The first full-path for the program.
|
67
61
|
#
|
68
62
|
# @example
|
69
63
|
# Compat.find_program_by_names("gas","as") #=> "/usr/bin/as"
|
70
64
|
#
|
71
65
|
def Compat.find_program_by_names(*names)
|
72
|
-
names.
|
66
|
+
names.each do |name|
|
67
|
+
if (path = find_program(name))
|
68
|
+
return path
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
return nil
|
73
73
|
end
|
74
74
|
|
75
75
|
#
|
@@ -112,13 +112,13 @@ module RProgram
|
|
112
112
|
# @since 0.1.8
|
113
113
|
#
|
114
114
|
def Compat.sudo(path,*args)
|
115
|
-
sudo_path =
|
115
|
+
sudo_path = find_program('sudo')
|
116
116
|
|
117
117
|
unless sudo_path
|
118
118
|
raise(ProgramNotFound,'could not find the "sudo" program',caller)
|
119
119
|
end
|
120
120
|
|
121
|
-
return
|
121
|
+
return run(sudo_path,path,*args)
|
122
122
|
end
|
123
123
|
end
|
124
124
|
end
|
data/lib/rprogram/option.rb
CHANGED
@@ -17,10 +17,9 @@ module RProgram
|
|
17
17
|
attr_reader :sub_options
|
18
18
|
|
19
19
|
#
|
20
|
-
# Creates a new Option object with. If a
|
21
|
-
#
|
22
|
-
#
|
23
|
-
# generating the arguments.
|
20
|
+
# Creates a new Option object with. If a block is given it will be
|
21
|
+
# used for the custom formatting of the option. If a block is not given,
|
22
|
+
# the option will use the default_format when generating the arguments.
|
24
23
|
#
|
25
24
|
# @param [Hash] options
|
26
25
|
# Additional options.
|
data/lib/rprogram/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rprogram
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 2
|
9
|
-
version: 0.2.2
|
4
|
+
prerelease:
|
5
|
+
version: 0.2.3
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Postmodern
|
@@ -14,56 +10,59 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
13
|
+
date: 2011-03-30 00:00:00 -04:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
17
|
+
name: env
|
22
18
|
prerelease: false
|
23
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
20
|
none: false
|
25
21
|
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.1.2
|
26
25
|
- - ~>
|
27
26
|
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
|
30
|
-
- 3
|
31
|
-
- 0
|
32
|
-
version: 0.3.0
|
33
|
-
type: :development
|
27
|
+
version: "0.1"
|
28
|
+
type: :runtime
|
34
29
|
version_requirements: *id001
|
35
30
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
31
|
+
name: ore-tasks
|
37
32
|
prerelease: false
|
38
33
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
34
|
none: false
|
40
35
|
requirements:
|
41
36
|
- - ~>
|
42
37
|
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
- 2
|
45
|
-
- 4
|
46
|
-
- 0
|
47
|
-
version: 2.4.0
|
38
|
+
version: "0.4"
|
48
39
|
type: :development
|
49
40
|
version_requirements: *id002
|
50
41
|
- !ruby/object:Gem::Dependency
|
51
|
-
name:
|
42
|
+
name: rspec
|
52
43
|
prerelease: false
|
53
44
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
45
|
none: false
|
55
46
|
requirements:
|
56
47
|
- - ~>
|
57
48
|
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
- 0
|
60
|
-
- 6
|
61
|
-
- 0
|
62
|
-
version: 0.6.0
|
49
|
+
version: "2.4"
|
63
50
|
type: :development
|
64
51
|
version_requirements: *id003
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: yard
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 0.6.0
|
61
|
+
type: :development
|
62
|
+
version_requirements: *id004
|
65
63
|
description: RProgram is a library for creating wrappers around command-line programs. RProgram provides a Rubyful interface to programs and all their options or non-options. RProgram can also search for programs installed on a system. files without having to use YAML or define classes named like the file.
|
66
|
-
email:
|
64
|
+
email:
|
65
|
+
- postmodern.mod3@gmail.com
|
67
66
|
executables: []
|
68
67
|
|
69
68
|
extensions: []
|
@@ -128,30 +127,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
127
|
requirements:
|
129
128
|
- - ">="
|
130
129
|
- !ruby/object:Gem::Version
|
131
|
-
segments:
|
132
|
-
- 0
|
133
130
|
version: "0"
|
134
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
132
|
none: false
|
136
133
|
requirements:
|
137
134
|
- - ">="
|
138
135
|
- !ruby/object:Gem::Version
|
139
|
-
segments:
|
140
|
-
- 0
|
141
136
|
version: "0"
|
142
137
|
requirements: []
|
143
138
|
|
144
139
|
rubyforge_project: rprogram
|
145
|
-
rubygems_version: 1.
|
140
|
+
rubygems_version: 1.6.2
|
146
141
|
signing_key:
|
147
142
|
specification_version: 3
|
148
143
|
summary: A library for creating wrappers around command-line programs.
|
149
144
|
test_files:
|
150
|
-
- spec/nameable_spec.rb
|
151
|
-
- spec/program_spec.rb
|
152
145
|
- spec/rprogram_spec.rb
|
146
|
+
- spec/nameable_spec.rb
|
147
|
+
- spec/option_list_spec.rb
|
153
148
|
- spec/non_option_spec.rb
|
149
|
+
- spec/task_spec.rb
|
154
150
|
- spec/compat_spec.rb
|
155
|
-
- spec/
|
151
|
+
- spec/program_spec.rb
|
156
152
|
- spec/option_spec.rb
|
157
|
-
- spec/task_spec.rb
|