rbhex-core 1.1.0.alpha3 → 1.1.0.alpha4

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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +1 -1
  3. data/examples/atree.rb +1 -1
  4. data/examples/common/file.rb +2 -2
  5. data/examples/dbdemo.rb +1 -1
  6. data/examples/newtabbedwindow.rb +1 -1
  7. data/examples/newtesttabp.rb +4 -4
  8. data/examples/testbuttons.rb +3 -3
  9. data/examples/testcombo.rb +2 -2
  10. data/examples/testfields.rb +3 -3
  11. data/examples/testkeypress.rb +4 -4
  12. data/examples/testlistbox.rb +5 -5
  13. data/examples/testmessagebox.rb +4 -4
  14. data/examples/testprogress.rb +1 -1
  15. data/examples/testree.rb +3 -3
  16. data/examples/testwsshortcuts.rb +2 -2
  17. data/examples/testwsshortcuts2.rb +3 -3
  18. data/lib/rbhex/core/include/action.rb +2 -2
  19. data/lib/rbhex/core/include/actionmanager.rb +1 -1
  20. data/lib/rbhex/core/include/appmethods.rb +4 -4
  21. data/lib/rbhex/core/include/bordertitle.rb +6 -6
  22. data/lib/rbhex/core/include/chunk.rb +1 -1
  23. data/lib/rbhex/core/include/io.rb +2 -2
  24. data/lib/rbhex/core/include/listbindings.rb +2 -2
  25. data/lib/rbhex/core/include/listcellrenderer.rb +3 -3
  26. data/lib/rbhex/core/include/listscrollable.rb +1 -1
  27. data/lib/rbhex/core/include/listselectable.rb +13 -13
  28. data/lib/rbhex/core/include/multibuffer.rb +5 -5
  29. data/lib/rbhex/core/include/ractionevent.rb +4 -4
  30. data/lib/rbhex/core/include/rchangeevent.rb +3 -3
  31. data/lib/rbhex/core/include/rhistory.rb +1 -1
  32. data/lib/rbhex/core/include/rinputdataevent.rb +6 -6
  33. data/lib/rbhex/core/include/vieditable.rb +1 -1
  34. data/lib/rbhex/core/include/widgetmenu.rb +1 -1
  35. data/lib/rbhex/core/system/colormap.rb +1 -1
  36. data/lib/rbhex/core/system/ncurses.rb +1 -1
  37. data/lib/rbhex/core/system/window.rb +1 -1
  38. data/lib/rbhex/core/util/ansiparser.rb +1 -1
  39. data/lib/rbhex/core/util/app.rb +7 -7
  40. data/lib/rbhex/core/util/basestack.rb +20 -20
  41. data/lib/rbhex/core/util/bottomline.rb +2 -2
  42. data/lib/rbhex/core/util/colorparser.rb +1 -1
  43. data/lib/rbhex/core/util/focusmanager.rb +1 -1
  44. data/lib/rbhex/core/util/padreader.rb +2 -2
  45. data/lib/rbhex/core/util/rcommandwindow.rb +2 -2
  46. data/lib/rbhex/core/util/rdialogs.rb +7 -7
  47. data/lib/rbhex/core/util/viewer.rb +5 -5
  48. data/lib/rbhex/core/util/widgetshortcuts.rb +3 -3
  49. data/lib/rbhex/core/version.rb +1 -1
  50. data/lib/rbhex/core/widgets/applicationheader.rb +2 -2
  51. data/lib/rbhex/core/widgets/box.rb +3 -3
  52. data/lib/rbhex/core/widgets/divider.rb +2 -2
  53. data/lib/rbhex/core/widgets/keylabelprinter.rb +2 -2
  54. data/lib/rbhex/core/widgets/rcombo.rb +5 -5
  55. data/lib/rbhex/core/widgets/rcontainer.rb +2 -2
  56. data/lib/rbhex/core/widgets/rlink.rb +1 -1
  57. data/lib/rbhex/core/widgets/rlist.rb +1 -1
  58. data/lib/rbhex/core/widgets/rmenu.rb +15 -15
  59. data/lib/rbhex/core/widgets/rmenulink.rb +1 -1
  60. data/lib/rbhex/core/widgets/rmessagebox.rb +6 -6
  61. data/lib/rbhex/core/widgets/rprogress.rb +2 -2
  62. data/lib/rbhex/core/widgets/rtabbedpane.rb +3 -3
  63. data/lib/rbhex/core/widgets/rtabbedwindow.rb +2 -2
  64. data/lib/rbhex/core/widgets/rtextarea.rb +2 -2
  65. data/lib/rbhex/core/widgets/rtextview.rb +3 -3
  66. data/lib/rbhex/core/widgets/rtree.rb +6 -6
  67. data/lib/rbhex/core/widgets/rwidget.rb +12 -12
  68. data/lib/rbhex/core/widgets/scrollbar.rb +2 -2
  69. data/lib/rbhex/core/widgets/statusline.rb +1 -1
  70. data/lib/rbhex/core/widgets/tabular.rb +32 -32
  71. data/lib/rbhex/core/widgets/tabularwidget.rb +3 -3
  72. data/lib/rbhex/core/widgets/textpad.rb +3 -3
  73. data/lib/rbhex/core/widgets/tree/treecellrenderer.rb +3 -3
  74. data/lib/rbhex/core/widgets/tree/treemodel.rb +3 -3
  75. metadata +11 -11
@@ -1,6 +1,6 @@
1
1
  require 'rbhex/core/widgets/rlink'
2
2
  ##
3
- module RubyCurses
3
+ module Rbhex
4
4
  class MenuLink < Link
5
5
  dsl_property :description
6
6
 
@@ -23,12 +23,12 @@
23
23
  require 'rbhex/core'
24
24
  require 'rbhex/core/include/bordertitle'
25
25
 
26
- include RubyCurses
27
- module RubyCurses
26
+ include Rbhex
27
+ module Rbhex
28
28
  extend self
29
29
  class MessageBox
30
30
  include BorderTitle
31
- include RubyCurses::Utils
31
+ include Rbhex::Utils
32
32
 
33
33
  attr_reader :form
34
34
  attr_reader :window
@@ -153,11 +153,11 @@ module RubyCurses
153
153
  # trying this out. sometimes very long labels get truncated, so i give a field in wchich user
154
154
  # can use arrow key or C-a and C-e
155
155
  if message.size > display_length
156
- message_label = RubyCurses::Field.new @form, {:text => message, :name=>"message_label",
156
+ message_label = Rbhex::Field.new @form, {:text => message, :name=>"message_label",
157
157
  :row => r, :col => message_col, :display_length => display_length,
158
158
  :bgcolor => bgclr , :color => clr, :editable => false}
159
159
  else
160
- message_label = RubyCurses::Label.new @form, {:text => message, :name=>"message_label",
160
+ message_label = Rbhex::Label.new @form, {:text => message, :name=>"message_label",
161
161
  :row => r, :col => message_col, :display_length => display_length,
162
162
  :height => message_height, :bgcolor => bgclr , :color => clr}
163
163
  end
@@ -209,7 +209,7 @@ module RubyCurses
209
209
  available_ht = brow - r + 1
210
210
  message_height = [message_height, available_ht].min
211
211
  require 'rbhex/core/widgets/rtextview'
212
- message_label = RubyCurses::TextView.new @form, {:name=>"message_label", :text => message,
212
+ message_label = Rbhex::TextView.new @form, {:name=>"message_label", :text => message,
213
213
  :row => r, :col => message_col, :width => display_length, :suppress_borders => true,
214
214
  :height => message_height, :bgcolor => bgclr , :color => clr}
215
215
  #message_label.set_content message
@@ -3,8 +3,8 @@ require 'logger'
3
3
  require 'rbhex/core'
4
4
 
5
5
  #include Ncurses # FFI 2011-09-8
6
- include RubyCurses
7
- module RubyCurses
6
+ include Rbhex
7
+ module Rbhex
8
8
  extend self
9
9
  ##
10
10
  # TODO user may want to print a label on progress: like not started or complete.
@@ -20,7 +20,7 @@
20
20
  =end
21
21
  require 'rbhex/core'
22
22
  ##
23
- module RubyCurses
23
+ module Rbhex
24
24
  class TabbedPane < Widget
25
25
  dsl_property :title, :title_attrib
26
26
  # what kind of buttons, if this is a window, :ok :ok_camcel :ok_apply_cancel
@@ -566,11 +566,11 @@ module RubyCurses
566
566
  widget.row ||= 0
567
567
  widget.col ||= 0
568
568
  # If we knew it was only widget we could expand it
569
- if widget.kind_of?(RubyCurses::Container) #|| widget.respond_to?(:width)
569
+ if widget.kind_of?(Rbhex::Container) #|| widget.respond_to?(:width)
570
570
  widget.width ||= @parent_component.width-3
571
571
  end
572
572
  # Darn ! this was setting Label to fully height
573
- if widget.kind_of?(RubyCurses::Container) #|| widget.respond_to?(:height)
573
+ if widget.kind_of?(Rbhex::Container) #|| widget.respond_to?(:height)
574
574
  widget.height ||= @parent_component.height-3
575
575
  end
576
576
  # i don't know button_offset as yet
@@ -18,8 +18,8 @@ require 'rbhex/core'
18
18
  require 'rbhex/core/widgets/rtabbedpane'
19
19
  require 'rbhex/core/widgets/rcontainer'
20
20
 
21
- include RubyCurses
22
- module RubyCurses
21
+ include Rbhex
22
+ module Rbhex
23
23
  class TabbedWindow
24
24
  attr_reader :tabbed_pane
25
25
  # The given block is passed to the TabbedPane
@@ -23,8 +23,8 @@ require 'rbhex/core/include/listeditable'
23
23
  require 'rbhex/core/include/bordertitle'
24
24
 
25
25
  #include Ncurses # FFI 2011-09-8
26
- include RubyCurses
27
- module RubyCurses
26
+ include Rbhex
27
+ module Rbhex
28
28
  extend self
29
29
 
30
30
  ## a multiline text editing widget
@@ -17,8 +17,8 @@ require 'rbhex/core/include/listscrollable'
17
17
  require 'rbhex/core/include/bordertitle'
18
18
  require 'forwardable'
19
19
 
20
- include RubyCurses
21
- module RubyCurses
20
+ include Rbhex
21
+ module Rbhex
22
22
  extend self
23
23
 
24
24
  ##
@@ -476,7 +476,7 @@ module RubyCurses
476
476
 
477
477
  # I don't want to do this in 20 places and then have to change
478
478
  # it and retest. Let me push it to util.
479
- l = RubyCurses::Utils.parse_formatted_text(@color_parser,
479
+ l = Rbhex::Utils.parse_formatted_text(@color_parser,
480
480
  @formatted_text)
481
481
 
482
482
  #cp = Chunks::ColorParser.new @color_parser
@@ -21,7 +21,7 @@ require 'rbhex/core/include/bordertitle'
21
21
  TreeSelectionEvent = Struct.new(:node, :tree, :state, :previous_node, :row_first)
22
22
 
23
23
  #include Ncurses # FFI 2011-09-8
24
- module RubyCurses
24
+ module Rbhex
25
25
  extend self
26
26
  # a representation of heirarchical data in outline form
27
27
  # Currently supports only single selection, and does not allow editing.
@@ -163,7 +163,7 @@ module RubyCurses
163
163
  end
164
164
 
165
165
  raise ArgumentError, "root: node cannot be nil" unless node
166
- @treemodel = RubyCurses::DefaultTreeModel.new(node, asks_allow_children, &block)
166
+ @treemodel = Rbhex::DefaultTreeModel.new(node, asks_allow_children, &block)
167
167
  end
168
168
 
169
169
  # pass data to create this tree model
@@ -175,14 +175,14 @@ module RubyCurses
175
175
  @data = alist # data given by user
176
176
  case alist
177
177
  when Array
178
- @treemodel = RubyCurses::DefaultTreeModel.new("/")
178
+ @treemodel = Rbhex::DefaultTreeModel.new("/")
179
179
  @treemodel.root.add alist
180
180
  when Hash
181
- @treemodel = RubyCurses::DefaultTreeModel.new("/")
181
+ @treemodel = Rbhex::DefaultTreeModel.new("/")
182
182
  @treemodel.root.add alist
183
183
  when TreeNode
184
184
  # this is a root node
185
- @treemodel = RubyCurses::DefaultTreeModel.new(alist)
185
+ @treemodel = Rbhex::DefaultTreeModel.new(alist)
186
186
  when DefaultTreeModel
187
187
  @treemodel = alist
188
188
  else
@@ -414,7 +414,7 @@ module RubyCurses
414
414
  end
415
415
  end
416
416
  def create_default_cell_renderer
417
- return RubyCurses::TreeCellRenderer.new "", {"color"=>@color, "bgcolor"=>@bgcolor, "parent" => self, "display_length"=> @width-@internal_width-@left_margin}
417
+ return Rbhex::TreeCellRenderer.new "", {"color"=>@color, "bgcolor"=>@bgcolor, "parent" => self, "display_length"=> @width-@internal_width-@left_margin}
418
418
  end
419
419
  ##
420
420
  # this method chops the data to length before giving it to the
@@ -136,7 +136,7 @@ unless "a"[0] == "a"
136
136
  end
137
137
  end
138
138
 
139
- module RubyCurses
139
+ module Rbhex
140
140
  extend self
141
141
  include ColorMap
142
142
  class FieldValidationException < RuntimeError
@@ -596,7 +596,7 @@ module RubyCurses
596
596
  # view a file or array of strings
597
597
  def view what, config={}, &block # :yields: textview for further configuration
598
598
  require 'rbhex/core/util/viewer'
599
- RubyCurses::Viewer.view what, config, &block
599
+ Rbhex::Viewer.view what, config, &block
600
600
  end
601
601
  end # module
602
602
 
@@ -750,7 +750,7 @@ module RubyCurses
750
750
  # prints a status line at bottom where mode's statuses et can be reflected
751
751
  def status_line config={}, &block
752
752
  require 'rbhex/core/widgets/statusline'
753
- sl = RubyCurses::StatusLine.new @form, config, &block
753
+ sl = Rbhex::StatusLine.new @form, config, &block
754
754
  end
755
755
 
756
756
  # add a standard application header
@@ -765,7 +765,7 @@ module RubyCurses
765
765
  # prints pine-like key labels
766
766
  def dock labels, config={}, &block
767
767
  require 'rbhex/core/widgets/keylabelprinter'
768
- klp = RubyCurses::KeyLabelPrinter.new @form, labels, config, &block
768
+ klp = Rbhex::KeyLabelPrinter.new @form, labels, config, &block
769
769
  end
770
770
 
771
771
  ##
@@ -778,7 +778,7 @@ module RubyCurses
778
778
  require 'rbhex/core/include/action' # added 2012-01-3 for add_action
779
779
  include EventHandler
780
780
  include ConfigSetup
781
- include RubyCurses::Utils
781
+ include Rbhex::Utils
782
782
  include Io # added 2010-03-06 13:05
783
783
  # common interface for text related to a field, label, textview, button etc
784
784
  dsl_property :text
@@ -1253,7 +1253,7 @@ module RubyCurses
1253
1253
  # in one place.
1254
1254
  class Form
1255
1255
  include EventHandler
1256
- include RubyCurses::Utils
1256
+ include Rbhex::Utils
1257
1257
  attr_reader :value # ???
1258
1258
 
1259
1259
  # array of widgets
@@ -1909,9 +1909,9 @@ module RubyCurses
1909
1909
  $log.debug "DEPRECATED DUMPING DATA "
1910
1910
  @widgets.each do |w|
1911
1911
  # we need checkbox and radio button values
1912
- #next if w.is_a? RubyCurses::Button or w.is_a? RubyCurses::Label
1913
- next if w.is_a? RubyCurses::Label
1914
- next if !w.is_a? RubyCurses::Widget
1912
+ #next if w.is_a? Rbhex::Button or w.is_a? Rbhex::Label
1913
+ next if w.is_a? Rbhex::Label
1914
+ next if !w.is_a? Rbhex::Widget
1915
1915
  if w.respond_to? :getvalue
1916
1916
  $log.debug " #{w.name} #{w.getvalue}"
1917
1917
  else
@@ -2021,7 +2021,7 @@ module RubyCurses
2021
2021
  w = FFI::NCurses.COLS - 10
2022
2022
 
2023
2023
  require 'rbhex/core/util/viewer'
2024
- RubyCurses::Viewer.view(arr, :layout => [2, 4, h, w],:close_key => KEY_F10, :title => "[ Help ]", :print_footer => true) do |t|
2024
+ Rbhex::Viewer.view(arr, :layout => [2, 4, h, w],:close_key => KEY_F10, :title => "[ Help ]", :print_footer => true) do |t|
2025
2025
  # you may configure textview further here.
2026
2026
  #t.suppress_borders true
2027
2027
  #t.color = :black
@@ -2737,7 +2737,7 @@ module RubyCurses
2737
2737
  ch = @mnemonic.downcase()[0].ord ## 1.9 DONE
2738
2738
  # meta key
2739
2739
  mch = ?\M-a.getbyte(0) + (ch - ?a.getbyte(0)) ## 1.9
2740
- if (@label_for.is_a? RubyCurses::Button ) && (@label_for.respond_to? :fire)
2740
+ if (@label_for.is_a? Rbhex::Button ) && (@label_for.respond_to? :fire)
2741
2741
  @form.bind_key(mch, "hotkey for button #{@label_for.text} ") { |_form, _butt| @label_for.fire }
2742
2742
  else
2743
2743
  $log.debug " bind_hotkey label for: #{@label_for}"
@@ -3274,4 +3274,4 @@ module RubyCurses
3274
3274
  end
3275
3275
 
3276
3276
  end # module
3277
- include RubyCurses::Utils
3277
+ include Rbhex::Utils
@@ -1,6 +1,6 @@
1
1
  require 'rbhex/core/util/app'
2
2
  #include Ncurses # FFI 2011-09-8
3
- include RubyCurses
3
+ include Rbhex
4
4
 
5
5
  # This paints a vertical white bar given row and col, and length. It also calculates and prints
6
6
  # a small bar over this based on relaetd objects list.length and current_index.
@@ -16,7 +16,7 @@ include RubyCurses
16
16
  # At a later stage, we will integrate this with lists and tables, so it will happen automatically.
17
17
  #
18
18
  # @since 1.2.0 UNTESTED
19
- module RubyCurses
19
+ module Rbhex
20
20
  class Scrollbar < Widget
21
21
  # row to start, same as listbox, required.
22
22
  dsl_property :row
@@ -1,6 +1,6 @@
1
1
  require 'rbhex/core'
2
2
 
3
- module RubyCurses
3
+ module Rbhex
4
4
 
5
5
  #
6
6
  # A vim-like application status bar that can display time and various other statuses
@@ -9,21 +9,21 @@
9
9
  not where i want the user to select columns, move them, expand etc.
10
10
  * :
11
11
  * Author : rkumar
12
- * Date :
12
+ * Date :
13
13
  * License :
14
14
  Same as Ruby's License (http://www.ruby-lang.org/LICENSE.txt)
15
15
 
16
16
  =end
17
17
 
18
18
  #
19
- # A simple tabular data generator. Given table data in arrays and a column heading row in arrays, it
19
+ # A simple tabular data generator. Given table data in arrays and a column heading row in arrays, it
20
20
  # quickely generates tabular data. It only takes left and right alignment of columns into account.
21
- # You may specify individual column widths. Else it will take the widths of the column names you supply
21
+ # You may specify individual column widths. Else it will take the widths of the column names you supply
22
22
  # in the startup array. You are encouraged to supply column widths.
23
- # If no columns are specified, and no widths are given, it take the widths of the first row
24
- # as a model to determine column widths.
23
+ # If no columns are specified, and no widths are given, it take the widths of the first row
24
+ # as a model to determine column widths.
25
25
  #
26
- module RubyCurses
26
+ module Rbhex
27
27
 
28
28
  class Tabular
29
29
  GUESSCOLUMNS = 20
@@ -68,13 +68,13 @@ module RubyCurses
68
68
  yield_or_eval(&block) if block_given?
69
69
  end
70
70
  #
71
- # set columns names
71
+ # set columns names
72
72
  # @param [Array<String>] column names, preferably padded out to width for column
73
73
  def columns=(array)
74
74
  $log.debug "tabular got columns #{array.count} #{array.inspect} " if $log
75
75
  @columns = array
76
- @columns.each_with_index { |c,i|
77
- @chash[i] = ColumnInfo.new(c, c.to_s.length)
76
+ @columns.each_with_index { |c,i|
77
+ @chash[i] = ColumnInfo.new(c, c.to_s.length)
78
78
  @cw[i] ||= c.to_s.length
79
79
  #@calign[i] ||= :left # 2011-09-27 prevent setting later on
80
80
  }
@@ -89,7 +89,7 @@ module RubyCurses
89
89
  @list = list
90
90
  end
91
91
 
92
- # add a row of data
92
+ # add a row of data
93
93
  # @param [Array] an array containing entries for each column
94
94
  def add array
95
95
  $log.debug "tabular got add #{array.count} #{array.inspect} " if $log
@@ -105,7 +105,7 @@ module RubyCurses
105
105
  def column_width colindex, width
106
106
  @cw[colindex] ||= width
107
107
  if @chash[colindex].nil?
108
- @chash[colindex] = ColumnInfo.new("", width)
108
+ @chash[colindex] = ColumnInfo.new("", width)
109
109
  else
110
110
  @chash[colindex].w = width
111
111
  end
@@ -126,7 +126,7 @@ module RubyCurses
126
126
  @chash
127
127
  end
128
128
 
129
- #
129
+ #
130
130
  # Now returns an array with formatted data
131
131
  # @return [Array<String>] array of formatted data
132
132
  def render
@@ -135,7 +135,7 @@ module RubyCurses
135
135
  rows = @list.size.to_s.length
136
136
  @rows = rows
137
137
  _prepare_format
138
-
138
+
139
139
  str = ""
140
140
  if @numbering
141
141
  str = " "*(rows+1)+@y
@@ -150,7 +150,7 @@ module RubyCurses
150
150
  end
151
151
  #@list.each { |e| puts e.join(@y) }
152
152
  count = 0
153
- @list.each_with_index { |r,i|
153
+ @list.each_with_index { |r,i|
154
154
  value = convert_value_to_text r, count
155
155
  buffer << value
156
156
  count += 1
@@ -165,7 +165,7 @@ module RubyCurses
165
165
  if @numbering
166
166
  r.insert 0, count+1
167
167
  end
168
- return @fmstr % r;
168
+ return @fmstr % r;
169
169
  end
170
170
  # use this for printing out on terminal
171
171
  # @example
@@ -187,7 +187,7 @@ module RubyCurses
187
187
  end
188
188
  private
189
189
  def _guess_col_widths #:nodoc:
190
- @list.each_with_index { |r, i|
190
+ @list.each_with_index { |r, i|
191
191
  break if i > GUESSCOLUMNS
192
192
  next if r == :separator
193
193
  r.each_with_index { |c, j|
@@ -203,7 +203,7 @@ module RubyCurses
203
203
  def _prepare_format #:nodoc:
204
204
  @fmtstr = nil
205
205
  fmt = []
206
- @cw.each_with_index { |c, i|
206
+ @cw.each_with_index { |c, i|
207
207
  w = @cw[i]
208
208
  case @calign[i]
209
209
  when :right
@@ -219,11 +219,11 @@ module RubyCurses
219
219
  end
220
220
 
221
221
  if __FILE__ == $PROGRAM_NAME
222
- include RubyCurses
222
+ include Rbhex
223
223
  $log = nil
224
224
  t = Tabular.new(['a', 'b'], [1, 2], [3, 4])
225
225
  puts t.to_s
226
- puts
226
+ puts
227
227
  t = Tabular.new([" Name ", " Number ", " Email "])
228
228
  t.add %w{ rahul 32 r@ruby.org }
229
229
  t << %w{ _why 133 j@gnu.org }
@@ -235,9 +235,9 @@ if __FILE__ == $PROGRAM_NAME
235
235
 
236
236
  s = Tabular.new do |b|
237
237
  b.columns = %w{ country continent text }
238
- b << ["india","asia","a warm country" ]
239
- b << ["japan","asia","a cool country" ]
240
- b << ["russia","europe","a hot country" ]
238
+ b << ["india","asia","a warm country" ]
239
+ b << ["japan","asia","a cool country" ]
240
+ b << ["russia","europe","a hot country" ]
241
241
  b.column_width 2, 30
242
242
  end
243
243
  puts s.to_s
@@ -246,16 +246,16 @@ if __FILE__ == $PROGRAM_NAME
246
246
  puts
247
247
  s = Tabular.new do |b|
248
248
  b.columns = %w{ place continent text }
249
- b << ["india","asia","a warm country" ]
250
- b << ["japan","asia","a cool country" ]
251
- b << ["russia","europe","a hot country" ]
252
- b << ["sydney","australia","a dry country" ]
253
- b << ["canberra","australia","a dry country" ]
254
- b << ["ross island","antarctica","a dry country" ]
255
- b << ["mount terror","antarctica","a windy country" ]
256
- b << ["mt erebus","antarctica","a cold place" ]
257
- b << ["siberia","russia","an icy city" ]
258
- b << ["new york","USA","a fun place" ]
249
+ b << ["india","asia","a warm country" ]
250
+ b << ["japan","asia","a cool country" ]
251
+ b << ["russia","europe","a hot country" ]
252
+ b << ["sydney","australia","a dry country" ]
253
+ b << ["canberra","australia","a dry country" ]
254
+ b << ["ross island","antarctica","a dry country" ]
255
+ b << ["mount terror","antarctica","a windy country" ]
256
+ b << ["mt erebus","antarctica","a cold place" ]
257
+ b << ["siberia","russia","an icy city" ]
258
+ b << ["new york","USA","a fun place" ]
259
259
  b.column_width 0, 12
260
260
  b.column_width 1, 12
261
261
  b.numbering = true