epitools 0.4.45 → 0.4.46

Sign up to get free protection for your applications and to get access to all the features.
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: []