epitools 0.4.45 → 0.4.46

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.45
1
+ 0.4.46
data/epitools.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{epitools}
8
- s.version = "0.4.45"
8
+ s.version = "0.4.46"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["epitron"]
12
- s.date = %q{2011-06-23}
12
+ s.date = %q{2011-06-24}
13
13
  s.description = %q{Miscellaneous utility libraries to make my life easier.}
14
14
  s.email = %q{chris@ill-logic.com}
15
15
  s.extra_rdoc_files = [
@@ -9,6 +9,7 @@ autoload :FileUtils, 'fileutils'
9
9
  autoload :Tempfile, 'tempfile'
10
10
  autoload :BigDecimal, 'bigdecimal'
11
11
  autoload :StringIO, 'stringio'
12
+ autoload :Curses, 'curses'
12
13
 
13
14
  module Digest
14
15
  autoload :SHA1, 'digest/sha1'
@@ -124,6 +124,50 @@ def cmd(*args)
124
124
  system(*cmd_args)
125
125
  end
126
126
 
127
+
128
+ #
129
+ # Prompt the user for confirmation.
130
+ #
131
+ # Usage:
132
+ # prompt("Do you want a cookie?", "Ynqa") #=> returns the letter that the user pressed, in lowercase (and returns the default, 'y', if the user hits ENTER)
133
+ #
134
+ def prompt(message="Are you sure?", options="Yn")
135
+ opts = options.scan(/./)
136
+ optstring = opts.join("/") # case maintained
137
+ defaults = opts.select{|o| o.upcase == o }
138
+ opts = opts.map{|o| o.downcase}
139
+
140
+ raise "Error: Too many default values for the prompt: #{default.inspect}" if defaults.size > 1
141
+
142
+ default = defaults.first
143
+
144
+ loop do
145
+
146
+ print "#{message} (#{optstring}) "
147
+
148
+ response = STDIN.gets.strip.downcase
149
+
150
+ case response
151
+ when *opts
152
+ return response
153
+ when ""
154
+ return default.downcase
155
+ else
156
+ puts " |_ Invalid option: #{response.inspect}. Try again."
157
+ end
158
+
159
+ end
160
+ end
161
+
162
+
163
+ #
164
+ # Automatically install a required commandline tool using the platform's package manager (incomplete -- only supports debian :)
165
+ #
166
+ # * apt-get on debian/ubuntu
167
+ # * yum on fedora
168
+ # * fink/ports on OSX
169
+ # * cygwin on windows
170
+ #
127
171
  def autoinstall(*packages)
128
172
  all_packages_installed = packages.all? { |pkg| Path.which pkg }
129
173
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epitools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.45
4
+ version: 0.4.46
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-06-23 00:00:00.000000000 -04:00
12
+ date: 2011-06-24 00:00:00.000000000 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &85952530 !ruby/object:Gem::Requirement
17
+ requirement: &83781350 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 2.2.0
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *85952530
25
+ version_requirements: *83781350
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: mechanize
28
- requirement: &85952230 !ruby/object:Gem::Requirement
28
+ requirement: &83780450 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.0.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *85952230
36
+ version_requirements: *83780450
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: sqlite3-ruby
39
- requirement: &85951950 !ruby/object:Gem::Requirement
39
+ requirement: &83780200 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *85951950
47
+ version_requirements: *83780200
48
48
  description: Miscellaneous utility libraries to make my life easier.
49
49
  email: chris@ill-logic.com
50
50
  executables: []