rbhex-core 1.1.0.alpha3 → 1.1.0.alpha4

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