rtt 0.0.0.21 → 0.0.0.22
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/Manifest +1 -31
- data/Rakefile +2 -2
- data/db/rtt.sqlite3 +0 -0
- data/db/test.sqlite3 +0 -0
- data/lib/rtt.rb +3 -1
- data/lib/rtt/cmd_line_parser.rb +13 -1
- data/lib/rtt/storage.rb +12 -0
- data/rtt.gemspec +6 -6
- metadata +14 -36
- data/todo.txt +0 -1
- data/vendor/highline-1.5.2/CHANGELOG +0 -227
- data/vendor/highline-1.5.2/INSTALL +0 -41
- data/vendor/highline-1.5.2/LICENSE +0 -7
- data/vendor/highline-1.5.2/README +0 -63
- data/vendor/highline-1.5.2/Rakefile +0 -82
- data/vendor/highline-1.5.2/TODO +0 -6
- data/vendor/highline-1.5.2/examples/ansi_colors.rb +0 -38
- data/vendor/highline-1.5.2/examples/asking_for_arrays.rb +0 -18
- data/vendor/highline-1.5.2/examples/basic_usage.rb +0 -75
- data/vendor/highline-1.5.2/examples/color_scheme.rb +0 -32
- data/vendor/highline-1.5.2/examples/limit.rb +0 -12
- data/vendor/highline-1.5.2/examples/menus.rb +0 -65
- data/vendor/highline-1.5.2/examples/overwrite.rb +0 -19
- data/vendor/highline-1.5.2/examples/page_and_wrap.rb +0 -322
- data/vendor/highline-1.5.2/examples/password.rb +0 -7
- data/vendor/highline-1.5.2/examples/trapping_eof.rb +0 -22
- data/vendor/highline-1.5.2/examples/using_readline.rb +0 -17
- data/vendor/highline-1.5.2/lib/highline.rb +0 -758
- data/vendor/highline-1.5.2/lib/highline/color_scheme.rb +0 -120
- data/vendor/highline-1.5.2/lib/highline/compatibility.rb +0 -17
- data/vendor/highline-1.5.2/lib/highline/import.rb +0 -43
- data/vendor/highline-1.5.2/lib/highline/menu.rb +0 -395
- data/vendor/highline-1.5.2/lib/highline/question.rb +0 -463
- data/vendor/highline-1.5.2/lib/highline/system_extensions.rb +0 -240
- data/vendor/highline-1.5.2/setup.rb +0 -1360
- data/vendor/highline-1.5.2/test/tc_color_scheme.rb +0 -56
- data/vendor/highline-1.5.2/test/tc_highline.rb +0 -823
- data/vendor/highline-1.5.2/test/tc_import.rb +0 -54
- data/vendor/highline-1.5.2/test/tc_menu.rb +0 -429
- data/vendor/highline-1.5.2/test/ts_all.rb +0 -15
@@ -1,41 +0,0 @@
|
|
1
|
-
= Installing HighLine
|
2
|
-
|
3
|
-
RubyGems is the preferred easy install method for HighLine. However, you can
|
4
|
-
install HighLine manually as described below.
|
5
|
-
|
6
|
-
== Installing the Gem
|
7
|
-
|
8
|
-
HighLine is intended to be installed via the
|
9
|
-
RubyGems[http://rubyforge.org/projects/rubygems/] system. To get the latest
|
10
|
-
version, simply enter the following into your command prompt:
|
11
|
-
|
12
|
-
$ sudo gem install highline
|
13
|
-
|
14
|
-
You must have RubyGems[http://rubyforge.org/projects/rubygems/] installed for
|
15
|
-
the above to work.
|
16
|
-
|
17
|
-
If you want to build the gem locally, make sure you have
|
18
|
-
Rake[http://rubyforge.org/projects/rake/] installed then run the following
|
19
|
-
command:
|
20
|
-
|
21
|
-
$ rake package
|
22
|
-
|
23
|
-
== Installing Manually
|
24
|
-
|
25
|
-
Download the latest version of HighLine from the
|
26
|
-
{RubyForge project page}[http://rubyforge.org/frs/?group_id=683]. Navigate to
|
27
|
-
the root project directory and enter:
|
28
|
-
|
29
|
-
$ sudo ruby setup.rb
|
30
|
-
|
31
|
-
== Using termios
|
32
|
-
|
33
|
-
While not a requirement, HighLine will take advantage of the termios library if
|
34
|
-
installed (on Unix). This slightly improves HighLine's character reading
|
35
|
-
capabilities and thus is recommended for all Unix users.
|
36
|
-
|
37
|
-
If using the HighLine gem, you should be able to add termios as easily as:
|
38
|
-
|
39
|
-
$ sudo gem install termios
|
40
|
-
|
41
|
-
For manual installs, consult the termios documentation.
|
@@ -1,7 +0,0 @@
|
|
1
|
-
= License Terms
|
2
|
-
|
3
|
-
Distributed under the user's choice of the {GPL Version 2}[http://www.gnu.org/licenses/old-licenses/gpl-2.0.html] (see COPYING for details) or the
|
4
|
-
{Ruby software license}[http://www.ruby-lang.org/en/LICENSE.txt] by
|
5
|
-
James Edward Gray II and Greg Brown.
|
6
|
-
|
7
|
-
Please email James[mailto:james@grayproductions.net] with any questions.
|
@@ -1,63 +0,0 @@
|
|
1
|
-
= Read Me
|
2
|
-
|
3
|
-
by James Edward Gray II
|
4
|
-
|
5
|
-
== Description
|
6
|
-
|
7
|
-
Welcome to HighLine.
|
8
|
-
|
9
|
-
HighLine was designed to ease the tedious tasks of doing console input and
|
10
|
-
output with low-level methods like gets() and puts(). HighLine provides a
|
11
|
-
robust system for requesting data from a user, without needing to code all the
|
12
|
-
error checking and validation rules and without needing to convert the typed
|
13
|
-
Strings into what your program really needs. Just tell HighLine what you're
|
14
|
-
after, and let it do all the work.
|
15
|
-
|
16
|
-
== Documentation
|
17
|
-
|
18
|
-
See HighLine and HighLine::Question for documentation.
|
19
|
-
|
20
|
-
== Examples
|
21
|
-
|
22
|
-
Basic usage:
|
23
|
-
|
24
|
-
ask("Company? ") { |q| q.default = "none" }
|
25
|
-
|
26
|
-
Validation:
|
27
|
-
|
28
|
-
ask("Age? ", Integer) { |q| q.in = 0..105 }
|
29
|
-
ask("Name? (last, first) ") { |q| q.validate = /\A\w+, ?\w+\Z/ }
|
30
|
-
|
31
|
-
Type conversion for answers:
|
32
|
-
|
33
|
-
ask("Birthday? ", Date)
|
34
|
-
ask("Interests? (comma sep list) ", lambda { |str| str.split(/,\s*/) })
|
35
|
-
|
36
|
-
Reading passwords:
|
37
|
-
|
38
|
-
ask("Enter your password: ") { |q| q.echo = false }
|
39
|
-
ask("Enter your password: ") { |q| q.echo = "x" }
|
40
|
-
|
41
|
-
ERb based output (with HighLine's ANSI color tools):
|
42
|
-
|
43
|
-
say("This should be <%= color('bold', BOLD) %>!")
|
44
|
-
|
45
|
-
Menus:
|
46
|
-
|
47
|
-
choose do |menu|
|
48
|
-
menu.prompt = "Please choose your favorite programming language? "
|
49
|
-
|
50
|
-
menu.choice(:ruby) { say("Good choice!") }
|
51
|
-
menu.choices(:python, :perl) { say("Not from around here, are you?") }
|
52
|
-
end
|
53
|
-
|
54
|
-
For more examples see the examples/ directory of this project.
|
55
|
-
|
56
|
-
== Installing
|
57
|
-
|
58
|
-
See the INSTALL file for instructions.
|
59
|
-
|
60
|
-
== Questions and/or Comments
|
61
|
-
|
62
|
-
Feel free to email {James Edward Gray II}[mailto:james@grayproductions.net] or
|
63
|
-
{Gregory Brown}[mailto:gregory.t.brown@gmail.com] with any questions.
|
@@ -1,82 +0,0 @@
|
|
1
|
-
require "rake/rdoctask"
|
2
|
-
require "rake/testtask"
|
3
|
-
require "rake/gempackagetask"
|
4
|
-
|
5
|
-
require "rubygems"
|
6
|
-
|
7
|
-
dir = File.dirname(__FILE__)
|
8
|
-
lib = File.join(dir, "lib", "highline.rb")
|
9
|
-
version = File.read(lib)[/^\s*VERSION\s*=\s*(['"])(\d\.\d\.\d)\1/, 2]
|
10
|
-
|
11
|
-
task :default => [:test]
|
12
|
-
|
13
|
-
Rake::TestTask.new do |test|
|
14
|
-
test.libs << "test"
|
15
|
-
test.test_files = [ "test/ts_all.rb" ]
|
16
|
-
test.verbose = true
|
17
|
-
end
|
18
|
-
|
19
|
-
Rake::RDocTask.new do |rdoc|
|
20
|
-
rdoc.rdoc_files.include( "README", "INSTALL",
|
21
|
-
"TODO", "CHANGELOG",
|
22
|
-
"AUTHORS", "COPYING",
|
23
|
-
"LICENSE", "lib/" )
|
24
|
-
rdoc.main = "README"
|
25
|
-
rdoc.rdoc_dir = "doc/html"
|
26
|
-
rdoc.title = "HighLine Documentation"
|
27
|
-
end
|
28
|
-
|
29
|
-
desc "Upload current documentation to Rubyforge"
|
30
|
-
task :upload_docs => [:rdoc] do
|
31
|
-
sh "scp -r doc/html/* " +
|
32
|
-
"bbazzarrakk@rubyforge.org:/var/www/gforge-projects/highline/doc/"
|
33
|
-
sh "scp -r site/* " +
|
34
|
-
"bbazzarrakk@rubyforge.org:/var/www/gforge-projects/highline/"
|
35
|
-
end
|
36
|
-
|
37
|
-
spec = Gem::Specification.new do |spec|
|
38
|
-
spec.name = "highline"
|
39
|
-
spec.version = version
|
40
|
-
spec.platform = Gem::Platform::RUBY
|
41
|
-
spec.summary = "HighLine is a high-level command-line IO library."
|
42
|
-
spec.files = Dir.glob("{examples,lib,test}/**/*.rb").
|
43
|
-
delete_if { |item| item.include?("CVS") } +
|
44
|
-
["Rakefile", "setup.rb"]
|
45
|
-
|
46
|
-
spec.test_files = "test/ts_all.rb"
|
47
|
-
spec.has_rdoc = true
|
48
|
-
spec.extra_rdoc_files = %w{README INSTALL TODO CHANGELOG LICENSE}
|
49
|
-
spec.rdoc_options << '--title' << 'HighLine Documentation' <<
|
50
|
-
'--main' << 'README'
|
51
|
-
|
52
|
-
spec.require_path = 'lib'
|
53
|
-
|
54
|
-
spec.author = "James Edward Gray II"
|
55
|
-
spec.email = "james@grayproductions.net"
|
56
|
-
spec.rubyforge_project = "highline"
|
57
|
-
spec.homepage = "http://highline.rubyforge.org"
|
58
|
-
spec.description = <<END_DESC
|
59
|
-
A high-level IO library that provides validation, type conversion, and more for
|
60
|
-
command-line interfaces. HighLine also includes a complete menu system that can
|
61
|
-
crank out anything from simple list selection to complete shells with just
|
62
|
-
minutes of work.
|
63
|
-
END_DESC
|
64
|
-
end
|
65
|
-
|
66
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
67
|
-
pkg.need_zip = true
|
68
|
-
pkg.need_tar = true
|
69
|
-
end
|
70
|
-
|
71
|
-
desc "Show library's code statistics"
|
72
|
-
task :stats do
|
73
|
-
require 'code_statistics'
|
74
|
-
CodeStatistics.new( ["HighLine", "lib"],
|
75
|
-
["Functionals", "examples"],
|
76
|
-
["Units", "test"] ).to_s
|
77
|
-
end
|
78
|
-
|
79
|
-
desc "Add new files to Subversion"
|
80
|
-
task :add_to_svn do
|
81
|
-
sh %Q{svn status | ruby -nae 'system "svn add \#{$F[1]}" if $F[0] == "?"' }
|
82
|
-
end
|
data/vendor/highline-1.5.2/TODO
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
#!/usr/local/bin/ruby -w
|
2
|
-
|
3
|
-
# ansi_colors.rb
|
4
|
-
#
|
5
|
-
# Created by James Edward Gray II on 2005-05-03.
|
6
|
-
# Copyright 2005 Gray Productions. All rights reserved.
|
7
|
-
|
8
|
-
require "rubygems"
|
9
|
-
require "highline/import"
|
10
|
-
|
11
|
-
# Supported color sequences.
|
12
|
-
colors = %w{black red green yellow blue magenta cyan white}
|
13
|
-
|
14
|
-
# Using color() with symbols.
|
15
|
-
colors.each_with_index do |c, i|
|
16
|
-
say("This should be <%= color('#{c}', :#{c}) %>!")
|
17
|
-
if i == 0
|
18
|
-
say( "This should be " +
|
19
|
-
"<%= color('white on #{c}', :white, :on_#{c}) %>!")
|
20
|
-
else
|
21
|
-
say( "This should be " +
|
22
|
-
"<%= color( '#{colors[i - 1]} on #{c}',
|
23
|
-
:#{colors[i - 1]}, :on_#{c} ) %>!")
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Using color with constants.
|
28
|
-
say("This should be <%= color('bold', BOLD) %>!")
|
29
|
-
say("This should be <%= color('underlined', UNDERLINE) %>!")
|
30
|
-
|
31
|
-
# Using constants only.
|
32
|
-
say("This might even <%= BLINK %>blink<%= CLEAR %>!")
|
33
|
-
|
34
|
-
# It even works with list wrapping.
|
35
|
-
erb_digits = %w{Zero One Two Three Four} +
|
36
|
-
["<%= color('Five', :blue) %%>"] +
|
37
|
-
%w{Six Seven Eight Nine}
|
38
|
-
say("<%= list(#{erb_digits.inspect}, :columns_down, 3) %>")
|
@@ -1,18 +0,0 @@
|
|
1
|
-
#!/usr/local/bin/ruby -w
|
2
|
-
|
3
|
-
# asking_for_arrays.rb
|
4
|
-
#
|
5
|
-
# Created by James Edward Gray II on 2005-07-05.
|
6
|
-
# Copyright 2005 Gray Productions. All rights reserved.
|
7
|
-
|
8
|
-
require "rubygems"
|
9
|
-
require "highline/import"
|
10
|
-
require "pp"
|
11
|
-
|
12
|
-
grades = ask( "Enter test scores (or a blank line to quit):",
|
13
|
-
lambda { |ans| ans =~ /^-?\d+$/ ? Integer(ans) : ans} ) do |q|
|
14
|
-
q.gather = ""
|
15
|
-
end
|
16
|
-
|
17
|
-
say("Grades:")
|
18
|
-
pp grades
|
@@ -1,75 +0,0 @@
|
|
1
|
-
#!/usr/local/bin/ruby -w
|
2
|
-
|
3
|
-
# basic_usage.rb
|
4
|
-
#
|
5
|
-
# Created by James Edward Gray II on 2005-04-28.
|
6
|
-
# Copyright 2005 Gray Productions. All rights reserved.
|
7
|
-
|
8
|
-
require "rubygems"
|
9
|
-
require "highline/import"
|
10
|
-
require "yaml"
|
11
|
-
|
12
|
-
contacts = [ ]
|
13
|
-
|
14
|
-
class NameClass
|
15
|
-
def self.parse( string )
|
16
|
-
if string =~ /^\s*(\w+),\s*(\w+)\s*$/
|
17
|
-
self.new($2, $1)
|
18
|
-
else
|
19
|
-
raise ArgumentError, "Invalid name format."
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def initialize(first, last)
|
24
|
-
@first, @last = first, last
|
25
|
-
end
|
26
|
-
|
27
|
-
attr_reader :first, :last
|
28
|
-
end
|
29
|
-
|
30
|
-
begin
|
31
|
-
entry = Hash.new
|
32
|
-
|
33
|
-
# basic output
|
34
|
-
say("Enter a contact:")
|
35
|
-
|
36
|
-
# basic input
|
37
|
-
entry[:name] = ask("Name? (last, first) ", NameClass) do |q|
|
38
|
-
q.validate = /\A\w+, ?\w+\Z/
|
39
|
-
end
|
40
|
-
entry[:company] = ask("Company? ") { |q| q.default = "none" }
|
41
|
-
entry[:address] = ask("Address? ")
|
42
|
-
entry[:city] = ask("City? ")
|
43
|
-
entry[:state] = ask("State? ") do |q|
|
44
|
-
q.case = :up
|
45
|
-
q.validate = /\A[A-Z]{2}\Z/
|
46
|
-
end
|
47
|
-
entry[:zip] = ask("Zip? ") do |q|
|
48
|
-
q.validate = /\A\d{5}(?:-?\d{4})?\Z/
|
49
|
-
end
|
50
|
-
entry[:phone] = ask( "Phone? ",
|
51
|
-
lambda { |p| p.delete("^0-9").
|
52
|
-
sub(/\A(\d{3})/, '(\1) ').
|
53
|
-
sub(/(\d{4})\Z/, '-\1') } ) do |q|
|
54
|
-
q.validate = lambda { |p| p.delete("^0-9").length == 10 }
|
55
|
-
q.responses[:not_valid] = "Enter a phone numer with area code."
|
56
|
-
end
|
57
|
-
entry[:age] = ask("Age? ", Integer) { |q| q.in = 0..105 }
|
58
|
-
entry[:birthday] = ask("Birthday? ", Date)
|
59
|
-
entry[:interests] = ask( "Interests? (comma separated list) ",
|
60
|
-
lambda { |str| str.split(/,\s*/) } )
|
61
|
-
entry[:description] = ask("Enter a description for this contact.") do |q|
|
62
|
-
q.whitespace = :strip_and_collapse
|
63
|
-
end
|
64
|
-
|
65
|
-
contacts << entry
|
66
|
-
# shortcut for yes and no questions
|
67
|
-
end while agree("Enter another contact? ", true)
|
68
|
-
|
69
|
-
if agree("Save these contacts? ", true)
|
70
|
-
file_name = ask("Enter a file name: ") do |q|
|
71
|
-
q.validate = /\A\w+\Z/
|
72
|
-
q.confirm = true
|
73
|
-
end
|
74
|
-
File.open("#{file_name}.yaml", "w") { |file| YAML.dump(contacts, file) }
|
75
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
# color_scheme.rb
|
4
|
-
#
|
5
|
-
# Created by Jeremy Hinegardner on 2007-01-24
|
6
|
-
# Copyright 2007 Jeremy Hinegardner. All rights reserved
|
7
|
-
|
8
|
-
require 'rubygems'
|
9
|
-
require 'highline/import'
|
10
|
-
|
11
|
-
# Create a color scheme, naming color patterns with symbol names.
|
12
|
-
ft = HighLine::ColorScheme.new do |cs|
|
13
|
-
cs[:headline] = [ :bold, :yellow, :on_black ]
|
14
|
-
cs[:horizontal_line] = [ :bold, :white, :on_blue]
|
15
|
-
cs[:even_row] = [ :green ]
|
16
|
-
cs[:odd_row] = [ :magenta ]
|
17
|
-
end
|
18
|
-
|
19
|
-
# Assign that color scheme to HighLine...
|
20
|
-
HighLine.color_scheme = ft
|
21
|
-
|
22
|
-
# ...and use it.
|
23
|
-
say("<%= color('Headline', :headline) %>")
|
24
|
-
say("<%= color('-'*20, :horizontal_line) %>")
|
25
|
-
|
26
|
-
# Setup a toggle for rows.
|
27
|
-
i = true
|
28
|
-
("A".."D").each do |row|
|
29
|
-
row_color = i ? :even_row : :odd_row
|
30
|
-
say("<%= color('#{row}', '#{row_color}') %>")
|
31
|
-
i = !i
|
32
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
# limit.rb
|
4
|
-
#
|
5
|
-
# Created by James Edward Gray II on 2008-11-12.
|
6
|
-
# Copyright 2008 Gray Productions. All rights reserved.
|
7
|
-
|
8
|
-
require "rubygems"
|
9
|
-
require "highline/import"
|
10
|
-
|
11
|
-
text = ask("Enter text (max 10 chars): ") { |q| q.limit = 10 }
|
12
|
-
puts "You entered: #{text}!"
|
@@ -1,65 +0,0 @@
|
|
1
|
-
#!/usr/local/bin/ruby -w
|
2
|
-
|
3
|
-
require "rubygems"
|
4
|
-
require "highline/import"
|
5
|
-
|
6
|
-
# The old way, using ask() and say()...
|
7
|
-
choices = %w{ruby python perl}
|
8
|
-
say("This is the old way using ask() and say()...")
|
9
|
-
say("Please choose your favorite programming language:")
|
10
|
-
say(choices.map { |c| " #{c}\n" }.join)
|
11
|
-
|
12
|
-
case ask("? ", choices)
|
13
|
-
when "ruby"
|
14
|
-
say("Good choice!")
|
15
|
-
else
|
16
|
-
say("Not from around here, are you?")
|
17
|
-
end
|
18
|
-
|
19
|
-
# The new and improved choose()...
|
20
|
-
say("\nThis is the new mode (default)...")
|
21
|
-
choose do |menu|
|
22
|
-
menu.prompt = "Please choose your favorite programming language? "
|
23
|
-
|
24
|
-
menu.choice :ruby do say("Good choice!") end
|
25
|
-
menu.choices(:python, :perl) do say("Not from around here, are you?") end
|
26
|
-
end
|
27
|
-
|
28
|
-
say("\nThis is letter indexing...")
|
29
|
-
choose do |menu|
|
30
|
-
menu.index = :letter
|
31
|
-
menu.index_suffix = ") "
|
32
|
-
|
33
|
-
menu.prompt = "Please choose your favorite programming language? "
|
34
|
-
|
35
|
-
menu.choice :ruby do say("Good choice!") end
|
36
|
-
menu.choices(:python, :perl) do say("Not from around here, are you?") end
|
37
|
-
end
|
38
|
-
|
39
|
-
say("\nThis is with a different layout...")
|
40
|
-
choose do |menu|
|
41
|
-
menu.layout = :one_line
|
42
|
-
|
43
|
-
menu.header = "Languages"
|
44
|
-
menu.prompt = "Favorite? "
|
45
|
-
|
46
|
-
menu.choice :ruby do say("Good choice!") end
|
47
|
-
menu.choices(:python, :perl) do say("Not from around here, are you?") end
|
48
|
-
end
|
49
|
-
|
50
|
-
say("\nYou can even build shells...")
|
51
|
-
loop do
|
52
|
-
choose do |menu|
|
53
|
-
menu.layout = :menu_only
|
54
|
-
|
55
|
-
menu.shell = true
|
56
|
-
|
57
|
-
menu.choice(:load, "Load a file.") do |command, details|
|
58
|
-
say("Loading file with options: #{details}...")
|
59
|
-
end
|
60
|
-
menu.choice(:save, "Save a file.") do |command, details|
|
61
|
-
say("Saving file with options: #{details}...")
|
62
|
-
end
|
63
|
-
menu.choice(:quit, "Exit program.") { exit }
|
64
|
-
end
|
65
|
-
end
|