viewworkbook 0.1.3 → 0.2

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/lib/menu.rb CHANGED
@@ -1,41 +1,31 @@
1
1
  #encoding: UTF-8
2
-
3
2
  =begin
4
3
  /***************************************************************************
5
- * Copyright © 2014-2017, Michael Uplawski <michael.uplawski@uplawski.eu>*
4
+ * ©2014-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
5
  * *
7
6
  * This program is free software; you can redistribute it and/or modify *
8
- * it under the terms of the GNU General Public License as published by *
9
- * the Free Software Foundation; either version 3 of the License, or *
10
- * (at your option) any later version. *
7
+ * it under the terms of the WTFPL 2.0 or later, see *
8
+ * http://www.wtfpl.net/about/ *
11
9
  * *
12
10
  * This program is distributed in the hope that it will be useful, *
13
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
- * GNU General Public License for more details. *
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
16
13
  * *
17
- * You should have received a copy of the GNU General Public License *
18
- * along with this program; if not, write to the *
19
- * Free Software Foundation, Inc., *
20
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21
14
  ***************************************************************************/
22
15
  =end
23
16
 
24
17
  require 'io/wait'
25
18
  require 'io/console'
26
19
  require_relative 'action'
27
- require_relative 'logging'
20
+ require_relative 'basic_logging'
28
21
  require_relative 'user_input'
29
22
 
30
23
  # Shows options that the user can choose from.
31
24
  # Options may be associated with sub-menus.
32
25
 
33
26
  class Menu
34
- # include Logging
35
- self.extend(Logging)
36
- @@log = self.init_logger(STDOUT)
27
+ include BasicLogging
37
28
 
38
- attr_accessor :key, :name
39
29
 
40
30
  class MenuError < StandardError
41
31
  end
@@ -44,7 +34,6 @@ class Menu
44
34
  @@hidden_elements = []
45
35
 
46
36
  def initialize(options = {})
47
- @log = @@log
48
37
  @elements = []
49
38
  if(options && !options.respond_to?(:to_hash) )
50
39
  raise MenuError.new('Arguments to menu.new must be hash-pairs')
@@ -77,7 +66,6 @@ class Menu
77
66
  end
78
67
  end
79
68
 
80
-
81
69
  private
82
70
  def show()
83
71
  @elements.each do |ele|
@@ -89,11 +77,6 @@ class Menu
89
77
  ele = nil
90
78
  until ele
91
79
  key = "%c" %wait_for_user
92
- =begin
93
- if "\e" == key
94
- break
95
- end
96
- =end
97
80
  ele = @elements.detect{ |e| key == e.key }
98
81
  ele ||= @@global_elements.detect{ |e| key == e.key }
99
82
  end
@@ -101,6 +84,7 @@ class Menu
101
84
  end
102
85
 
103
86
  public
87
+ attr_accessor :key, :name
104
88
  alias :add_action :add
105
89
  alias :add_sub_menu :add
106
90
  alias :add_menu :add
data/lib/row.rb CHANGED
@@ -1,36 +1,28 @@
1
1
  #encoding: UTF-8
2
-
3
2
  =begin
4
3
  /***************************************************************************
5
- * Copyright ©2016-2016, Michael Uplawski <michael.uplawski@uplawski.eu> *
4
+ * ©2016-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
5
  * *
7
6
  * This program is free software; you can redistribute it and/or modify *
8
- * it under the terms of the GNU General Public License as published by *
9
- * the Free Software Foundation; either version 3 of the License, or *
10
- * (at your option) any later version. *
7
+ * it under the terms of the WTFPL 2.0 or later, see *
8
+ * http://www.wtfpl.net/about/ *
11
9
  * *
12
10
  * This program is distributed in the hope that it will be useful, *
13
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
- * GNU General Public License for more details. *
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
16
13
  * *
17
- * You should have received a copy of the GNU General Public License *
18
- * along with this program; if not, write to the *
19
- * Free Software Foundation, Inc., *
20
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21
14
  ***************************************************************************/
22
15
  =end
23
16
 
24
17
  require_relative 'cell'
25
- require_relative 'logging'
18
+ require_relative 'basic_logging'
26
19
 
27
20
  # Objects of this class represent rows in a spreadsheet table
28
21
  class Row
29
22
  @@DEF_HEIGHT=2
30
- self.extend(Logging)
31
- @@log = self.init_logger(STDOUT)
23
+ include BasicLogging
24
+
32
25
  def initialize(number = nil)
33
- @log = @@log
34
26
  @number = number
35
27
  @cells = Array.new
36
28
  @height = 1
@@ -44,7 +36,7 @@ class Row
44
36
  n_cell = Cell.new(@number, cell)
45
37
  else
46
38
  msg = 'For a new cell, a colum-number must be specified'
47
- @log.error(red(msg))
39
+ error(red(msg))
48
40
  raise StandardError(msg)
49
41
  end
50
42
  @cells.insert(n_cell.col, n_cell)
data/lib/scrollable.rb CHANGED
@@ -1,30 +1,23 @@
1
1
  #encoding: UTF-8
2
-
3
2
  =begin
4
3
  /***************************************************************************
5
- * Copyright ©2017-2017, Michael Uplawski <michael.uplawski@uplawski.eu> *
4
+ * ©2017-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
5
  * *
7
6
  * This program is free software; you can redistribute it and/or modify *
8
- * it under the terms of the GNU General Public License as published by *
9
- * the Free Software Foundation; either version 3 of the License, or *
10
- * (at your option) any later version. *
7
+ * it under the terms of the WTFPL 2.0 or later, see *
8
+ * http://www.wtfpl.net/about/ *
11
9
  * *
12
10
  * This program is distributed in the hope that it will be useful, *
13
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
- * GNU General Public License for more details. *
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
16
13
  * *
17
- * You should have received a copy of the GNU General Public License *
18
- * along with this program; if not, write to the *
19
- * Free Software Foundation, Inc., *
20
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21
14
  ***************************************************************************/
22
15
  =end
23
16
  if __FILE__ == $0
24
17
  require_relative 'user_input'
25
18
  end
26
19
 
27
- require_relative 'logging'
20
+ require_relative 'basic_logging'
28
21
  require_relative 'color_output'
29
22
 
30
23
  class ScrollException < StandardError
@@ -38,13 +31,12 @@ end
38
31
  # You can have a box around the scrollable "window" by setting the attribute
39
32
  # 'box' to true and, -as I do not care to be asked for my opinion-, you should.
40
33
  module Scrollable
41
- self.extend(Logging)
34
+ include BasicLogging
42
35
  # may not be needed at all, but when it is..,
43
36
  # you want it on class level.
44
37
  @@box = %w~┌ ┐ └ ┘ ─ │~
45
38
 
46
39
  # dto. and how so!
47
- @@log = self.init_logger(STDOUT)
48
40
 
49
41
  # pfffft. As you please.
50
42
  @@def_step_x = 1
@@ -227,7 +219,6 @@ module Scrollable
227
219
 
228
220
  # sets a few values, needed for the rest of the module to function.
229
221
  def defaults()
230
- @log = @@log
231
222
  if(self.respond_to?(:to_s) )
232
223
  # @view = self
233
224
  @view = self.gsub(/\e\[\d+m/, '')
@@ -251,11 +242,11 @@ module Scrollable
251
242
  @have_defaults = true
252
243
  elsif !view
253
244
  msg = 'Need to know, what to scroll! (argument "view" missing)'
254
- @log.error(yellow(msg))
245
+ error(yellow(msg))
255
246
  raise ScrollException.new(msg)
256
247
  else
257
248
  msg = 'The "view" to scroll must have a method "to_s()"'
258
- @log.error(yellow(msg))
249
+ error(yellow(msg))
259
250
  raise ScrollException.new(msg)
260
251
  end
261
252
  end
data/lib/sheetdata.rb CHANGED
@@ -1,46 +1,44 @@
1
1
  #encoding: UTF-8
2
2
 
3
3
  =begin
4
- /*****************************************************************************
5
- * Copyright © 2016-2016, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
- * *
7
- * This program is free software; you can redistribute it and/or modify *
8
- * it under the terms of the GNU General Public License as published by *
9
- * the Free Software Foundation; either version 3 of the License, or *
10
- * (at your option) any later version. *
11
- * *
12
- * This program is distributed in the hope that it will be useful, *
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
- * GNU General Public License for more details. *
16
- * *
17
- * You should have received a copy of the GNU General Public License *
18
- * along with this program; if not, write to the *
19
- * Free Software Foundation, Inc., *
20
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21
- *****************************************************************************/
4
+ /***************************************************************************
5
+ * ©2016-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
+ * *
7
+ * This program is free software; you can redistribute it and/or modify *
8
+ * it under the terms of the WTFPL 2.0 or later, see *
9
+ * http://www.wtfpl.net/about/ *
10
+ * *
11
+ * This program is distributed in the hope that it will be useful, *
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
14
+ * *
15
+ ***************************************************************************/
22
16
  =end
23
17
 
18
+ require 'filemagic'
24
19
  require 'roo'
25
20
  require 'roo-xls'
26
- require 'filemagic'
27
21
 
28
- require_relative 'logging'
22
+ require_relative 'basic_logging'
29
23
 
30
24
  # Transforms a file into a Roo spreadsheet instance.
31
25
 
32
- ODS_Magic = "OpenDocument Spreadsheet"
33
- XLS_Magic = "Composite Document File V2 Document"
26
+ ODS_Magic = "OpenDocument Spreadsheet"
27
+ XLS_Magic = "Composite Document File V2 Document"
34
28
  XLSX_Magic = "Microsoft OOXML"
29
+ # SoftMaker Office
30
+ PMDX_Magic = "Microsoft Excel 2007+"
35
31
 
36
- ODS_MIME = "application/vnd.oasis.opendocument.spreadsheet"
37
- XLS_MIME = "application/vnd.ms-excel"
38
- XLSX_MIME = "application/octet-stream"
39
- CSV_MIME = "text/plain"
32
+ ODS_MIME = "application/vnd.oasis.opendocument.spreadsheet"
33
+ XLS_MIME = "application/vnd.ms-excel"
34
+ XLSX_MIME = "application/zip"
35
+ CSV_MIME = "text/plain"
36
+ # SoftMaker Office
37
+ PMDX_MIME = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
40
38
 
41
39
  class SheetData
42
- self::extend(Logging)
43
- @@log = init_logger(STDOUT, Logger::INFO)
40
+ # logs on class level
41
+ self.extend BasicLogging
44
42
 
45
43
  @@file = nil
46
44
  @@workbook = nil
@@ -49,48 +47,34 @@ class SheetData
49
47
  @@file = file
50
48
  if !@@workbook
51
49
  begin
52
- magic, mime = file_type
53
- @@workbook = case mime
50
+ fm = FileMagic.mime
51
+ mtype = fm.fd(File.new(file) ).split(';')[0]
52
+ fm = FileMagic.fm
53
+ magic = fm.fd(File.new(file) ).split(';')[0]
54
+ @@workbook = case mtype
54
55
  when ODS_MIME
55
- if magic.match ODS_Magic
56
- @@log.debug('ODS')
57
- Roo::Spreadsheet::open(@@file, extension: :ods )
58
- end
59
- when XLS_MIME
60
- if magic.match XLS_Magic
61
- @@log.debug('XLS')
62
- Roo::Spreadsheet::open(@@file, extension: :xls )
63
- end
64
- when XLSX_MIME
65
- if magic.match XLSX_Magic
66
- @@log.debug('XLSX')
67
- Roo::Spreadsheet::open(@@file, extension: :xlsx )
68
- end
56
+ debug('ODS')
57
+ Roo::Spreadsheet::open(@@file, extension: :ods )
58
+ when (XLS_MIME)
59
+ debug('XLS')
60
+ Roo::Spreadsheet::open(@@file, extension: :xls )
61
+ when XLSX_MIME, PMDX_MIME
62
+ debug('XLSX')
63
+ Roo::Spreadsheet::open(@@file, extension: :xlsx )
69
64
  when CSV_MIME
70
65
  raise IOError.new('CSV is not yet supported, sorry')
71
66
  else
72
- raise IOError.new('Mime-Type is ' << mime << ' and Magic sais: ' << magic << ". Is this supposed to be a spreadsheet?")
67
+ raise IOError.new('Mime-Type is ' << mtype << ' and Magic sais: ' << magic << ". Is this supposed to be a spreadsheet?")
73
68
  end
74
69
  rescue Exception => ex
75
70
  msg = 'ERROR! File %s is not supported: %s' %[@@file, ex.message]
76
71
  puts msg
77
- @log.error yellow(msg)
72
+ error yellow(msg)
78
73
  exit false
79
74
  end
80
75
 
81
76
  return @@workbook
82
77
  end
83
78
  end
84
-
85
- private
86
- # derive the mime-type from the file
87
- def self::file_type
88
- fm = FileMagic.fm
89
- file_magic = fm.file(@@file)
90
- fm.flags = [:mime_type]
91
- file_mime = fm.file(@@file)
92
- @log.debug('File type is ' << file_magic << ', Mime-type is ' << file_mime)
93
- return file_magic, file_mime
94
- end
95
79
  end
96
80
 
@@ -2,22 +2,16 @@
2
2
 
3
3
  =begin
4
4
  /***************************************************************************
5
- * Copyright © 2014 - 2017, Michael Uplawski <michael.uplawski@uplawski.eu> *
5
+ * ©2014-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
6
  * *
7
7
  * This program is free software; you can redistribute it and/or modify *
8
- * it under the terms of the GNU General Public License as published by *
9
- * the Free Software Foundation; either version 3 of the License, or *
10
- * (at your option) any later version. *
8
+ * it under the terms of the WTFPL 2.0 or later, see *
9
+ * http://www.wtfpl.net/about/ *
11
10
  * *
12
11
  * This program is distributed in the hope that it will be useful, *
13
12
  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
- * GNU General Public License for more details. *
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
16
14
  * *
17
- * You should have received a copy of the GNU General Public License *
18
- * along with this program; if not, write to the *
19
- * Free Software Foundation, Inc., *
20
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21
15
  ***************************************************************************/
22
16
  =end
23
17
 
@@ -25,7 +19,7 @@ require 'roo'
25
19
  require 'io/wait'
26
20
  require 'io/console'
27
21
 
28
- require_relative 'logging'
22
+ require_relative 'basic_logging'
29
23
  require_relative 'scrollable'
30
24
  require_relative 'row'
31
25
  require_relative 'cell'
@@ -45,7 +39,7 @@ require_relative 'translating'
45
39
  #TODO: provide conversion for column designators to int vv, also for AA to ZZ !
46
40
 
47
41
  class SheetInterface
48
- include Logging
42
+ include BasicLogging
49
43
  include Translating
50
44
 
51
45
  class Status
@@ -59,7 +53,6 @@ class SheetInterface
59
53
  end
60
54
 
61
55
  def initialize(wb, num)
62
- init_logger(STDOUT, Logger::INFO)
63
56
  @workbook = wb.sheet(num)
64
57
  @menu = nil
65
58
  @status = Status.new
@@ -197,8 +190,8 @@ class SheetInterface
197
190
  end
198
191
 
199
192
  if sn && !sn.to_s.empty?
200
- @log.debug('calling workbook.sheet with ' << sn.to_s)
201
- @log.debug('@workbook is of type ' << @workbook.class.name)
193
+ debug('calling workbook.sheet with ' << sn.to_s)
194
+ debug('@workbook is of type ' << @workbook.class.name)
202
195
  set_sheet(sn)
203
196
  end
204
197
  construct
@@ -230,7 +223,7 @@ class SheetInterface
230
223
  begin
231
224
  File::open(file, 'w+') do |out|
232
225
  @workbook.sheets.each do |s|
233
- @log.debug('writing sheet ' << s)
226
+ debug('writing sheet ' << s)
234
227
  set_sheet(s)
235
228
  construct(false)
236
229
  draw(out)
@@ -385,13 +378,7 @@ class SheetInterface
385
378
  end
386
379
 
387
380
  end
388
- =begin
389
- table_width = hline.length
390
- tw = terminal_size[0]
391
- if(on_screen && table_width > tw)
392
- @status.message = red("ATTN! Terminal is to narrow to display the whole table (#{tw} characters for #{table_width}). Diminish column-width!")
393
- end
394
- =end
381
+
395
382
  return table_view
396
383
  else
397
384
  return nil
@@ -436,7 +423,6 @@ class SheetInterface
436
423
  end
437
424
  end
438
425
  end
439
-
440
426
  bi.stop("\n")
441
427
  if(on_screen)
442
428
  @table_view = draw()
data/lib/translating.rb CHANGED
@@ -1,23 +1,17 @@
1
1
  #encoding: UTF-8
2
+
2
3
  =begin
3
4
  /***************************************************************************
4
- * ©2011-2014, Michael Uplawski *
5
- * <michael.uplawski@uplawski.eu> *
5
+ * ©2011-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
6
  * *
7
7
  * This program is free software; you can redistribute it and/or modify *
8
- * it under the terms of the GNU General Public License as published by *
9
- * the Free Software Foundation; either version 3 of the License, or *
10
- * (at your option) any later version. *
11
- * *
8
+ * it under the terms of the WTFPL 2.0 or later, see *
9
+ * http://www.wtfpl.net/about/ *
10
+ * *
12
11
  * This program is distributed in the hope that it will be useful, *
13
12
  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
- * GNU General Public License for more details. *
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
16
14
  * *
17
- * You should have received a copy of the GNU General Public License *
18
- * along with this program; if not, write to the *
19
- * Free Software Foundation, Inc., *
20
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21
15
  ***************************************************************************/
22
16
  =end
23
17
 
data/lib/user_input.rb CHANGED
@@ -1,23 +1,16 @@
1
1
  #encoding: UTF-8
2
-
3
2
  =begin
4
3
  /***************************************************************************
5
- * Copyright © 2014-2017, Michael Uplawski <michael.uplawski@uplawski.eu>*
4
+ * ©2014-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
5
  * *
7
6
  * This program is free software; you can redistribute it and/or modify *
8
- * it under the terms of the GNU General Public License as published by *
9
- * the Free Software Foundation; either version 3 of the License, or *
10
- * (at your option) any later version. *
7
+ * it under the terms of the WTFPL 2.0 or later, see *
8
+ * http://www.wtfpl.net/about/ *
11
9
  * *
12
10
  * This program is distributed in the hope that it will be useful, *
13
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
- * GNU General Public License for more details. *
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
16
13
  * *
17
- * You should have received a copy of the GNU General Public License *
18
- * along with this program; if not, write to the *
19
- * Free Software Foundation, Inc., *
20
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21
14
  ***************************************************************************/
22
15
  =end
23
16
 
data/lib/viewworkbook.rb CHANGED
@@ -1,49 +1,38 @@
1
1
  #!/usr/bin/env ruby
2
2
  #encoding: UTF-8
3
-
4
3
  =begin
5
- /******************************************************************************
6
- * Copyright © 2014-2016, Michael Uplawski <michael.uplawski@uplawski.eu> *
7
- * *
8
- * This program is free software; you can redistribute it and/or modify *
9
- * it under the terms of the GNU General Public License as published by *
10
- * the Free Software Foundation; either version 3 of the License, or *
11
- * (at your option) any later version. *
12
- * *
13
- * This program is distributed in the hope that it will be useful, *
14
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16
- * GNU General Public License for more details. *
17
- * *
18
- * You should have received a copy of the GNU General Public License *
19
- * along with this program; if not, write to the *
20
- * Free Software Foundation, Inc., *
21
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
22
- ******************************************************************************/
4
+ /***************************************************************************
5
+ * ©2016-2024, Michael Uplawski <michael.uplawski@uplawski.eu> *
6
+ * *
7
+ * This program is free software; you can redistribute it and/or modify *
8
+ * it under the terms of the WTFPL 2.0 or later, see *
9
+ * http://www.wtfpl.net/about/ *
10
+ * *
11
+ * This program is distributed in the hope that it will be useful, *
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
14
+ * *
15
+ ***************************************************************************/
23
16
  =end
24
17
 
25
- require_relative 'logging'
18
+ require 'tempfile'
19
+ require_relative 'basic_logging'
26
20
  require_relative 'file_checking'
27
21
  require_relative 'sheetinterface'
28
22
  require_relative 'sheetdata'
29
23
  require_relative 'color_output'
30
24
 
31
- require 'roo'
32
- require 'roo-xls'
33
- require 'tempfile'
34
-
35
25
  class ViewWorkBook
36
- include Logging
26
+ include BasicLogging
37
27
  include File_Checking
38
28
 
39
29
  attr_reader :workbook
40
30
 
41
31
  def initialize(*args)
42
- init_logger(STDOUT, Logger::INFO)
43
- @log.debug('args is ' << args.to_s)
32
+ debug('args is ' << args.to_s)
44
33
  wb = args[0]
45
34
  path = File.path(wb) if wb
46
- @log.debug('workbook file will be ' << (path ? path : 'N I L'))
35
+ debug('workbook file will be ' << (path ? path : 'N I L'))
47
36
 
48
37
  if(wb)
49
38
  msg = file_check(path, :exist?, :file?, :readable?)
@@ -53,14 +42,14 @@ class ViewWorkBook
53
42
  view_sheet if @workbook
54
43
  end
55
44
  else
56
- @log.error(yellow("Cannot open " << path << ": " << msg))
45
+ error(yellow("Cannot open " << path << ": " << msg))
57
46
  # raise IOError.new(msg)
58
47
  puts red("\n\tPlease name a valid spreadsheet file! Aborting.")
59
48
  puts
60
49
  exit false
61
50
  end
62
51
  end
63
- @log.debug('initialized')
52
+ debug('initialized')
64
53
  end
65
54
 
66
55
  def method_missing(method, *args)
@@ -73,7 +62,7 @@ class ViewWorkBook
73
62
 
74
63
  private
75
64
  def view_sheet(number = 0)
76
- @log.debug('default_sheet is ' << sheets[number])
65
+ debug('default_sheet is ' << sheets[number])
77
66
  SheetInterface.new(@workbook, number)
78
67
  end
79
68
  end
@@ -0,0 +1,20 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'viewworkbook'
3
+ s.version = '0.2'
4
+ s.date = '2024-01-03'
5
+ s.summary = "New logging module, new License, runtime-dependencies corrected."
6
+ s.summary << "Better support for SoftMaker's PMDX format"
7
+ s.description = "View spreadsheet files in a text-console."
8
+ s.authors = ["Michael Uplawski"]
9
+ s.email = 'michael.uplawski@uplawski.eu'
10
+ s.files = %w~action.rb scrollable.rb cell.rb column.rb row.rb color_output.rb menu.rb sheetdata.rb translating.rb user_input.rb file_checking.rb basic_logging.rb sheetinterface.rb translations viewworkbook.rb~.collect{|f| 'lib/' << f} +
11
+ %w~license.txt rst/viewworkbook.rst man/viewworkbook.1.gz html/viewworkbook.html~.collect{|f| 'doc/' << f} +
12
+ %w~busy_function_test.rb busy_indicator.rb~.collect{|f| 'lib/busy_indicator/' << f} + ["README.md", "viewworkbook.gemspec"]
13
+ s.homepage = 'http://rubygems.org/gems/viewworkbook'
14
+ s.requirements = 'roo, roo-xls, ruby-filemagic'
15
+ s.add_runtime_dependency 'roo', '~> 2.4', '>= 2.4.0'
16
+ s.add_runtime_dependency 'ruby-filemagic', '~> 0.3', '>= 0.3.2'
17
+ s.executables = 'viewworkbook'
18
+ s.license = 'Nonstandard'
19
+ s.required_ruby_version = '>= 3.0'
20
+ end