rant 0.5.0 → 0.5.2

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.
@@ -1,184 +0,0 @@
1
-
2
- # rantenv.rb - Environment interface.
3
- #
4
- # Copyright (C) 2005 Stefan Lang <langstefan@gmx.at>
5
-
6
- require 'rbconfig'
7
-
8
- module Rant end
9
-
10
- # This module interfaces with the environment to provide
11
- # information/conversion methods in a portable manner.
12
- module Rant::Env
13
- OS = ::Config::CONFIG['target']
14
- RUBY = ::Config::CONFIG['ruby_install_name']
15
- RUBY_BINDIR = ::Config::CONFIG['bindir']
16
- RUBY_EXE = File.join(RUBY_BINDIR, RUBY + ::Config::CONFIG["EXEEXT"])
17
-
18
- @@zip_bin = false
19
- @@tar_bin = false
20
-
21
- if OS =~ /mswin/i
22
- def on_windows?; true; end
23
- else
24
- def on_windows?; false; end
25
- end
26
-
27
- def have_zip?
28
- if @@zip_bin == false
29
- @@zip_bin = find_bin "zip"
30
- end
31
- !@@zip_bin.nil?
32
- end
33
-
34
- def have_tar?
35
- if @@tar_bin == false
36
- @@tar_bin = find_bin "tar"
37
- end
38
- !@@tar_bin.nil?
39
- end
40
-
41
- # Get an array with all pathes in the PATH
42
- # environment variable.
43
- def pathes
44
- # Windows doesn't care about case in environment variables,
45
- # but the ENV hash does!
46
- path = on_windows? ? ENV["Path"] : ENV["PATH"]
47
- return [] unless path
48
- if on_windows?
49
- path.split(";")
50
- else
51
- path.split(":")
52
- end
53
- end
54
-
55
- # Searches for bin_name on path and returns
56
- # an absolute path if successfull or nil
57
- # if an executable called bin_name couldn't be found.
58
- def find_bin bin_name
59
- if on_windows?
60
- bin_name_exe = nil
61
- if bin_name !~ /\.[^\.]{1,3}$/i
62
- bin_name_exe = bin_name + ".exe"
63
- end
64
- pathes.each { |dir|
65
- file = File.join(dir, bin_name)
66
- return file if test(?f, file)
67
- if bin_name_exe
68
- file = File.join(dir, bin_name_exe)
69
- return file if test(?f, file)
70
- end
71
- }
72
- else
73
- pathes.each { |dir|
74
- file = File.join(dir, bin_name)
75
- return file if test(?x, file)
76
- }
77
- end
78
- nil
79
- end
80
-
81
- # Add quotes to a path and replace File::Separators if necessary.
82
- def shell_path path
83
- # TODO: check for more characters when deciding wheter to use
84
- # quotes.
85
- if on_windows?
86
- path = path.tr("/", "\\")
87
- if path.include? ' '
88
- '"' + path + '"'
89
- else
90
- path
91
- end
92
- else
93
- if path.include? ' '
94
- "'" + path + "'"
95
- else
96
- path
97
- end
98
- end
99
- end
100
-
101
- extend self
102
- end # module Rant::Env
103
-
104
- module Rant::Console
105
- RANT_PREFIX = "rant: "
106
- ERROR_PREFIX = "[ERROR] "
107
- WARN_PREFIX = "[WARNING] "
108
- def msg_prefix
109
- if defined? @msg_prefix and @msg_prefix
110
- @msg_prefix
111
- else
112
- RANT_PREFIX
113
- end
114
- end
115
- def msg(*text)
116
- pre = msg_prefix
117
- $stderr.puts "#{pre}#{text.join("\n" + ' ' * pre.length)}"
118
- end
119
- def vmsg(importance, *text)
120
- msg(*text) if verbose >= importance
121
- end
122
- def err_msg(*text)
123
- pre = msg_prefix + ERROR_PREFIX
124
- $stderr.puts "#{pre}#{text.join("\n" + ' ' * pre.length)}"
125
- end
126
- def warn_msg(*text)
127
- pre = msg_prefix + WARN_PREFIX
128
- $stderr.puts "#{pre}#{text.join("\n" + ' ' * pre.length)}"
129
- end
130
- def ask_yes_no text
131
- $stderr.print msg_prefix + text + " [y|n] "
132
- case $stdin.readline
133
- when /y|yes/i: true
134
- when /n|no/i: false
135
- else
136
- $stderr.puts(' ' * msg_prefix.length +
137
- "Please answer with `yes' or `no'")
138
- ask_yes_no text
139
- end
140
- end
141
- def prompt text
142
- $stderr.print msg_prefix + text
143
- input = $stdin.readline
144
- input ? input.chomp : input
145
- end
146
- def option_listing opts
147
- rs = ""
148
- opts.each { |lopt, *opt_a|
149
- if opt_a.size == 2
150
- # no short option
151
- mode, desc = opt_a
152
- else
153
- sopt, mode, desc = opt_a
154
- end
155
- next unless desc # "private" option
156
- optstr = ""
157
- arg = nil
158
- if mode != GetoptLong::NO_ARGUMENT
159
- if desc =~ /(\b[A-Z_]{2,}\b)/
160
- arg = $1
161
- end
162
- end
163
- if lopt
164
- optstr << lopt
165
- if arg
166
- optstr << " " << arg
167
- end
168
- optstr = optstr.ljust(30)
169
- end
170
- if sopt
171
- optstr << " " unless optstr.empty?
172
- optstr << sopt
173
- if arg
174
- optstr << " " << arg
175
- end
176
- end
177
- rs << " #{optstr}\n"
178
- rs << " #{desc.split("\n").join("\n ")}\n"
179
- }
180
- rs
181
- end
182
-
183
- extend self
184
- end
@@ -1,61 +0,0 @@
1
-
2
- require 'test/unit'
3
- require 'tutil'
4
-
5
- $test_deprecated_dir ||= File.expand_path(File.dirname(__FILE__))
6
-
7
- class TestDeprecated_0_5_2 < Test::Unit::TestCase
8
- include Rant::TestUtil
9
-
10
- def setup
11
- Dir.chdir $test_deprecated_dir
12
- end
13
- def test_method_rac
14
- in_local_temp_dir do
15
- write_to_file "root.rant", <<-EOF
16
- import "sys/more"
17
- file "f" do |t|
18
- sys.write_to_file t.name, "nix"
19
- end
20
- task :a do
21
- rac.build "f"
22
- end
23
- EOF
24
- out, err = assert_rant("a")
25
- assert test(?f, "f")
26
- assert_equal "nix", File.read("f")
27
- assert_match(/\bWARNING\b/, err)
28
- assert_match(/\brac\b/, err)
29
- assert_match(/\brant\b/, err)
30
- assert_match(/\bdeprecated\b/, err)
31
- end
32
- end
33
- def test_ary_arglist
34
- in_local_temp_dir do
35
- write_to_file "Rantfile", <<-EOF
36
- task :default do
37
- sys(sys.sp(Env::RUBY_EXE) + " -e \\"puts ARGV\\" " +
38
- ["a b", "c/d"].arglist + " > a.out")
39
- end
40
- EOF
41
- out, err = assert_rant
42
- content = Rant::Env.on_windows? ? "a b\nc\\d\n" : "a b\nc/d\n"
43
- assert_file_content "a.out", content
44
- assert_match(/\bWARNING\b/, err)
45
- assert_match(/\barglist\b/, err)
46
- assert_match(/\bsp\b/, err)
47
- assert_match(/\bdeprecated\b/, err)
48
- end
49
- end
50
- def test_ary_shell_pathes
51
- out, err = capture_std do
52
- sp = ["a b", "a/b"].shell_pathes
53
- assert sp.respond_to?(:to_ary)
54
- assert_equal 2, sp.size
55
- end
56
- assert_match(/\bWARNING\b/, err)
57
- assert_match(/\bshell_pathes\b/, err)
58
- assert_match(/\bsp\b/, err)
59
- assert_match(/\bdeprecated\b/, err)
60
- end
61
- end