rdialog-ng 0.1.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ec8b8d6b054f9ca4e548a65a2cc88ee15ee41315
4
+ data.tar.gz: 040ad212aa56544651cfd86df8fcaad71ab50740
5
+ SHA512:
6
+ metadata.gz: 94cd922d9bcdb07544529b51c0667e6f27c54695d6283810a062fb269938b770e62b6cedb91b0f3b7b9d338c7e9958fce4816cfd5b68ecc547e92478a8b6fea3
7
+ data.tar.gz: 9b8d988e621aef5263d19114167808024e4eb71687060645aab45059d95acb5fc65a6ad5a3fbe8d3fc41d7868548ed167344101773c003d363a64e8813d696c1
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) 2016 Jan-Frederik Rieckers
2
+ Copyright (c) 2009 Matt Scilipoti
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining
5
+ a copy of this software and associated documentation files (the
6
+ "Software"), to deal in the Software without restriction, including
7
+ without limitation the rights to use, copy, modify, merge, publish,
8
+ distribute, sublicense, and/or sell copies of the Software, and to
9
+ permit persons to whom the Software is furnished to do so, subject to
10
+ the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,11 @@
1
+ = rdialog-ng
2
+
3
+ A gem providing a ruby interface to the n-curses dialog generator: dialog.
4
+
5
+ == Credits
6
+
7
+ This gem was developed by Matt Scilipoti, Lucas Vieira and Aleks Clark. This fork just adds some bugfixes and extra functionality I needed for a special scenario.
8
+
9
+ == Copyright
10
+
11
+ Copyright (c) 2016 Jan-Frederik Rieckers. See LICENSE for details.
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.1
@@ -0,0 +1,624 @@
1
+
2
+ # vim:ts=4:sw=4:
3
+ # = rdialog-ng - A dialog gem for Ruby
4
+ #
5
+ # Homepage:: https://github.com/Janfred/rdialog-ng
6
+ # Author:: Jan-Frederik Rieckers
7
+ # Copyright:: (cc) 2016 Jan-Frederik Rieckers
8
+ # License:: MIT
9
+ #
10
+
11
+ require 'tempfile'
12
+ require 'date'
13
+ class RDialogNG
14
+ # All accessors are boolean unless otherwise noted.
15
+ #
16
+
17
+ #
18
+ # This gives you some control over the box dimensions when
19
+ # using auto sizing (specifying 0 for height and width).
20
+ # It represents width / height. The default is 9,
21
+ # which means 9 characters wide to every 1 line high.
22
+ #
23
+ attr_accessor :aspect
24
+
25
+ #
26
+ # Specifies a backtitle string to be displayed on the backdrop,
27
+ # at the top of the screen.
28
+ #
29
+ attr_accessor :backtitle
30
+
31
+ #
32
+ # Sound the audible alarm each time the screen is refreshed.
33
+ #
34
+ attr_accessor :beep
35
+
36
+ #
37
+ # Specify the position of the upper left corner of a dialog box
38
+ # on the screen, as an array containing two integers.
39
+ #
40
+ attr_accessor :begin
41
+
42
+ #
43
+ #Override the label used for "Cancel" buttons.
44
+ #
45
+ attr_accessor :cancellabel
46
+
47
+ #
48
+ # Interpret embedded newlines in the dialog text as a newline
49
+ # on the screen. Otherwise, dialog will only wrap lines where
50
+ # needed to fit inside the text box. Even though you can control
51
+ # line breaks with this, dialog will still wrap any lines that are
52
+ # too long for the width of the box. Without cr-wrap, the layout
53
+ # of your text may be formatted to look nice in the source code of
54
+ # your script without affecting the way it will look in the dialog.
55
+ #
56
+ attr_accessor :crwrap
57
+
58
+ #
59
+ # Interpret the tags data for checklist, radiolist and menuboxes
60
+ # adding a column which is displayed in the bottom line of the
61
+ # screen, for the currently selected item.
62
+ #
63
+ attr_accessor :itemhelp
64
+
65
+ #
66
+ # Suppress the "Cancel" button in checklist, inputbox and menubox
67
+ # modes. A script can still test if the user pressed the ESC key to
68
+ # cancel to quit.
69
+ #
70
+ attr_accessor :nocancel
71
+
72
+ #
73
+ #Override the label used for "Ok" buttons.
74
+ #
75
+ attr_accessor :oklabel
76
+
77
+ #
78
+ # Draw a shadow to the right and bottom of each dialog box.
79
+ #
80
+ attr_accessor :shadow
81
+
82
+ #
83
+ # Sleep (delay) for the given integer of seconds after processing
84
+ # a dialog box.
85
+ #
86
+ attr_accessor :sleep
87
+
88
+ #
89
+ # Convert each tab character to one or more spaces.
90
+ # Otherwise, tabs are rendered according to the curses library's
91
+ # interpretation.
92
+ #
93
+ attr_accessor :tabcorrect
94
+
95
+ #
96
+ # Specify the number(int) of spaces that a tab character occupies
97
+ # if the tabcorrect option is set true. The default is 8.
98
+ #
99
+ attr_accessor :tablen
100
+
101
+ #
102
+ # Specify the timeout in secs
103
+ # Timeout (exit with error code) if no user response within the given number of seconds.
104
+ # This is overridden if the background "--tailboxbg is used.
105
+ # A timeout of zero seconds is ignored.
106
+ #
107
+ attr_accessor :timeout
108
+
109
+ #
110
+ # Title string to be displayed at the top of the dialog box.
111
+ #
112
+ attr_accessor :title
113
+
114
+ #
115
+ # Alternate path to dialog. If this is not set, environment path
116
+ # is used.
117
+ attr_accessor :path_to_dialog
118
+
119
+ # Returns a new RDialog Object
120
+
121
+ def initialize()
122
+ end
123
+ # A calendar box displays month, day and year in separately
124
+ # adjustable windows. If the values for day, month or year are
125
+ # missing or negative, the current date's corresponding values
126
+ # are used. You can increment or decrement any of those using
127
+ # the left-, up-, right- and down-arrows. Use vi-style h, j, k
128
+ # and l for moving around the array of days in a month. Use tab
129
+ # or backtab to move between windows. If the year is given as
130
+ # zero, the current date is used as an initial value.
131
+ #
132
+ # Returns a Date object with the selected date
133
+
134
+ def calendar(text="Select a Date", height=0, width=0, day=Date.today.mday(), month=Date.today.mon(), year=Date.today.year())
135
+
136
+ tmp = Tempfile.new('tmp')
137
+
138
+ command = option_string() + "--calendar \"" + text.to_s +
139
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s + " " +
140
+ day.to_i.to_s + " " + month.to_i.to_s + " " + year.to_i.to_s +
141
+ " 2> " + tmp.path
142
+ success = system(command)
143
+ if success
144
+ date = Date::civil(*tmp.readline.split('/').collect {|i| i.to_i}.reverse)
145
+ tmp.close!
146
+ return date
147
+ else
148
+ tmp.close!
149
+ return success
150
+ end
151
+
152
+ end
153
+
154
+ # A checklist box is similar to a menu box; there are multiple
155
+ # entries presented in the form of a menu. Instead of choosing
156
+ # one entry among the entries, each entry can be turned on or off
157
+ # by the user. The initial on/off state of each entry is speci-
158
+ # fied by status.
159
+
160
+ def checklist(text, items, height=0, width=0, listheight=0)
161
+
162
+ tmp = Tempfile.new('tmp')
163
+
164
+ itemlist = String.new
165
+
166
+ for item in items
167
+ if item[2]
168
+ item[2] = "on"
169
+ else
170
+ item[2] = "off"
171
+ end
172
+ itemlist += "\"" + item[0].to_s + "\" \"" + item[1].to_s +
173
+ "\" " + item[2] + " "
174
+
175
+ if @itemhelp
176
+ itemlist += "\"" + item[3].to_s + "\" "
177
+ end
178
+ end
179
+
180
+ command = option_string() + "--checklist \"" + text.to_s +
181
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s +
182
+ " " + listheight.to_i.to_s + " " + itemlist + "2> " +
183
+ tmp.path
184
+ puts command
185
+ success = system(command)
186
+ puts success
187
+ if success
188
+ selected_string = tmp.readline
189
+ tmp.close!
190
+ selected_string.slice!(0)
191
+ selected_string.chomp!("\"")
192
+ selected_array = selected_string.split('" "')
193
+ for item in selected_array
194
+ item.delete!("\\")
195
+ end
196
+
197
+ return selected_array
198
+ else
199
+ tmp.close!
200
+ return success
201
+ end
202
+
203
+ end
204
+
205
+ # The file-selection dialog displays a text-entry window in which
206
+ # you can type a filename (or directory), and above that two win-
207
+ # dows with directory names and filenames.
208
+
209
+ # Here filepath can be a filepath in which case the file and
210
+ # directory windows will display the contents of the path and the
211
+ # text-entry window will contain the preselected filename.
212
+ #
213
+ # Use tab or arrow keys to move between the windows. Within the
214
+ # directory or filename windows, use the up/down arrow keys to
215
+ # scroll the current selection. Use the space-bar to copy the
216
+ # current selection into the text-entry window.
217
+ #
218
+ # Typing any printable characters switches focus to the text-
219
+ # entry window, entering that character as well as scrolling the
220
+ # directory and filename windows to the closest match.
221
+ #
222
+ # Use a carriage return or the "OK" button to accept the current
223
+ # value in the text-entry window and exit.
224
+
225
+ def fselect(path, height=0, width=0)
226
+ tmp = Tempfile.new('tmp')
227
+
228
+ command = option_string() + "--fselect \"" + path.to_s +
229
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s + " "
230
+
231
+ command += "2> " + tmp.path
232
+
233
+ success = system(command)
234
+
235
+ if success
236
+ begin
237
+ selected_string = tmp.readline
238
+ rescue EOFError
239
+ selected_string = ""
240
+ end
241
+ tmp.close!
242
+ return selected_string
243
+ else
244
+ tmp.close!
245
+ return success
246
+ end
247
+ end
248
+
249
+ # A gauge is basically an info box with showing of a percentage value,
250
+ # given as the second parameter in the range from 0 to 100
251
+
252
+ def gauge(text, value, height=0, width=0)
253
+ begin
254
+ intval = value.to_i
255
+ rescue
256
+ return false
257
+ end
258
+
259
+ command = option_string() + "--gauge \""+text.to_s+"\" " + height.to_i.to_s + " " + width.to_i.to_s + " 0"
260
+
261
+ success = system("echo #{intval} | "+command)
262
+
263
+ return success
264
+ end
265
+
266
+ # An info box is basically a message box. However, in this case,
267
+ # dialog will exit immediately after displaying the message to
268
+ # the user. The screen is not cleared when dialog exits, so that
269
+ # the message will remain on the screen until the calling shell
270
+ # script clears it later. This is useful when you want to inform
271
+ # the user that some operations are carrying on that may require
272
+ # some time to finish.
273
+ #
274
+ # Returns false if esc was pushed
275
+
276
+ def infobox(text, height=0, width=0)
277
+ command = option_string() + "--infobox \"" + text.to_s +
278
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s + " "
279
+ success = system(command)
280
+ return success
281
+ end
282
+
283
+ # A radiolist box is similar to a menu box. The only difference
284
+ # is that you can indicate which entry is currently selected, by
285
+ # setting its status to true.
286
+
287
+ def radiolist(text, items, height=0, width=0, listheight=0)
288
+
289
+ tmp = Tempfile.new('tmp')
290
+
291
+ itemlist = String.new
292
+
293
+ for item in items
294
+ if item[2]
295
+ item[2] = "on"
296
+ else
297
+ item[2] = "off"
298
+ end
299
+ itemlist += "\"" + item[0].to_s + "\" \"" + item[1].to_s +
300
+ "\" " + item[2] + " "
301
+
302
+ if @itemhelp
303
+ itemlist += "\"" + item[3].to_s + "\" "
304
+ end
305
+ end
306
+
307
+ command = option_string() + "--radiolist \"" + text.to_s +
308
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s +
309
+ " " + listheight.to_i.to_s + " " + itemlist + "2> " +
310
+ tmp.path
311
+ success = system(command)
312
+
313
+ if success
314
+ selected_string = tmp.readline
315
+ tmp.close!
316
+ return selected_string
317
+ else
318
+ close!
319
+ return success
320
+ end
321
+
322
+ end
323
+
324
+ # As its name suggests, a menu box is a dialog box that can be
325
+ # used to present a list of choices in the form of a menu for the
326
+ # user to choose. Choices are displayed in the order given.
327
+ # Each menu entry consists of a tag string and an item string.
328
+ # The tag gives the entry a name to distinguish it from the other
329
+ # entries in the menu. The item is a short description of the
330
+ # option that the entry represents. The user can move between
331
+ # the menu entries by pressing the cursor keys, the first letter
332
+ # of the tag as a hot-key, or the number keys 1-9. There are
333
+ # menu-height entries displayed in the menu at one time, but the
334
+ # menu will be scrolled if there are more entries than that.
335
+ #
336
+ # Returns a string containing the tag of the chosen menu entry.
337
+
338
+ def menu(text="Text Goes Here", items=nil, height=0, width=0, listheight=0)
339
+ tmp = Tempfile.new('tmp')
340
+
341
+ itemlist = String.new
342
+
343
+ for item in items
344
+ itemlist += "\"" + item[0].to_s + "\" \"" + item[1].to_s + "\" "
345
+
346
+ if @itemhelp
347
+ itemlist += "\"" + item[2].to_s + "\" "
348
+ end
349
+ end
350
+
351
+ command = option_string() + "--menu \"" + text.to_s +
352
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s +
353
+ " " + listheight.to_i.to_s + " " + itemlist + "2> " +
354
+ tmp.path
355
+ success = system(command)
356
+
357
+ if success
358
+ selected_string = tmp.readline
359
+ tmp.close!
360
+ return selected_string
361
+ else
362
+ tmp.close!
363
+ return success
364
+ end
365
+
366
+ end
367
+
368
+ # A message box is very similar to a yes/no box. The only dif-
369
+ # ference between a message box and a yes/no box is that a mes-
370
+ # sage box has only a single OK button. You can use this dialog
371
+ # box to display any message you like. After reading the mes-
372
+ # sage, the user can press the ENTER key so that dialog will exit
373
+ # and the calling shell script can continue its operation.
374
+
375
+ def msgbox(text="Text Goes Here", height=0, width=0)
376
+ command = option_string() + "--msgbox \"" + text.to_s +
377
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s + " "
378
+
379
+ success = system(command)
380
+ return success
381
+ end
382
+
383
+ # A password box is similar to an input box, except that the text
384
+ # the user enters is not displayed. This is useful when prompt-
385
+ # ing for passwords or other sensitive information. Be aware
386
+ # that if anything is passed in "init", it will be visible in the
387
+ # system's process table to casual snoopers. Also, it is very
388
+ # confusing to the user to provide them with a default password
389
+ # they cannot see. For these reasons, using "init" is highly
390
+ # discouraged.
391
+
392
+ def passwordbox(text="Please enter some text", height=0, width=0, init="")
393
+ tmp = Tempfile.new('tmp')
394
+ command = option_string() + "--passwordbox \"" + text.to_s +
395
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s + " "
396
+
397
+ unless init.empty?
398
+ command += init.to_s + " "
399
+ end
400
+
401
+ command += "2> " + tmp.path
402
+
403
+ success = system(command)
404
+
405
+ if success
406
+ begin
407
+ selected_string = tmp.readline
408
+ rescue EOFError
409
+ selected_string = ""
410
+ end
411
+ tmp.close!
412
+ return selected_string
413
+ else
414
+ tmp.close!
415
+ return success
416
+ end
417
+ end
418
+
419
+ # The textbox method handles three similar dialog functions, textbox,
420
+ # tailbox, and tailboxbg. They are activated by setting type to
421
+ # "text", "tail", and "bg" respectively
422
+ #
423
+ # Textbox mode:
424
+ # A text box lets you display the contents of a text file in a
425
+ # dialog box. It is like a simple text file viewer. The user
426
+ # can move through the file by using the cursor, PGUP/PGDN and
427
+ # HOME/END keys available on most keyboards. If the lines are
428
+ # too long to be displayed in the box, the LEFT/RIGHT keys can be
429
+ # used to scroll the text region horizontally. You may also use
430
+ # vi-style keys h, j, k, l in place of the cursor keys, and B or
431
+ # N in place of the pageup/pagedown keys. Scroll up/down using
432
+ # vi-style 'k' and 'j', or arrow-keys. Scroll left/right using
433
+ # vi-style 'h' and 'l', or arrow-keys. A '0' resets the
434
+ # left/right scrolling. For more convenience, vi-style forward
435
+ # and backward searching functions are also provided.
436
+ #
437
+ # Tailbox mode:
438
+ # Display text from a file in a dialog box, as in a "tail -f"
439
+ # command. Scroll left/right using vi-style 'h' and 'l', or
440
+ # arrow-keys. A '0' resets the scrolling.
441
+ #
442
+ # Tailboxbg mode:
443
+ # Display text from a file in a dialog box as a background task,
444
+ # as in a "tail -f &" command. Scroll left/right using vi-style
445
+ # 'h' and 'l', or arrow-keys. A '0' resets the scrolling.
446
+
447
+ def textbox(file, type="text", height=0, width=0)
448
+ case type
449
+ when "text"
450
+ opt = "--textbox"
451
+ when "tail"
452
+ opt = "--tailbox"
453
+ when "bg"
454
+ opt = "--textboxbg"
455
+ when "edit"
456
+ opt = "--editbox"
457
+ end
458
+
459
+ command = option_string() + opt +" \"" + file.to_s +
460
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s + " "
461
+
462
+ success = system(command)
463
+
464
+ return success
465
+ end
466
+
467
+ # A dialog is displayed which allows you to select hour, minute
468
+ # and second. If the values for hour, minute or second are miss-
469
+ # ing or negative, the current date's corresponding values are
470
+ # used. You can increment or decrement any of those using the
471
+ # left-, up-, right- and down-arrows. Use tab or backtab to move
472
+ # between windows.
473
+ #
474
+ # On exit, a Time object is returned.
475
+
476
+ def timebox(file, type="text", height=0, width=0, time=Time.now)
477
+ tmp = Tempfile.new('tmp')
478
+
479
+ command = option_string() + "--timebox \"" + text.to_s +
480
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s + " " +
481
+ time.hour.to_s + " " + time.min.to_s + " " +
482
+ time.sec.to_s + " 2> " + tmp.path
483
+ success = system(command)
484
+ if success
485
+ time = Time.parse(tmp.readline)
486
+ tmp.close!
487
+ return time
488
+ else
489
+ tmp.close!
490
+ return success
491
+ end
492
+
493
+ end
494
+
495
+ # An input box is useful when you want to ask questions that
496
+ # require the user to input a string as the answer. If init is
497
+ # supplied it is used to initialize the input string. When
498
+ # entering the string, the backspace, delete and cursor keys can
499
+ # be used to correct typing errors. If the input string is
500
+ # longer than can fit in the dialog box, the input field will be
501
+ # scrolled.
502
+ #
503
+ # On exit, the input string will be returned.
504
+
505
+
506
+ def inputbox(text="Please enter some text", height=0, width=0, init="")
507
+ tmp = Tempfile.new('tmp')
508
+
509
+ command = option_string() + "--inputbox \"" + text.to_s +
510
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s + " "
511
+
512
+ unless init.empty?
513
+ command += init.to_s + " "
514
+ end
515
+
516
+ command += "2> " + tmp.path
517
+
518
+ success = system(command)
519
+
520
+ if success
521
+ begin
522
+ selected_string = tmp.readline
523
+ rescue EOFError
524
+ selected_string = ""
525
+ end
526
+ tmp.close!
527
+ return selected_string
528
+ else
529
+ tmp.close!
530
+ return success
531
+ end
532
+ end
533
+
534
+ # A yes/no dialog box of size height rows by width columns will
535
+ # be displayed. The string specified by text is displayed inside
536
+ # the dialog box. If this string is too long to fit in one line,
537
+ # it will be automatically divided into multiple lines at appro-
538
+ # priate places. The text string can also contain the sub-string
539
+ # "\n" or newline characters '\n' to control line breaking
540
+ # explicitly. This dialog box is useful for asking questions
541
+ # that require the user to answer either yes or no. The dialog
542
+ # box has a Yes button and a No button, in which the user can
543
+ # switch between by pressing the TAB key.
544
+
545
+ def yesno(text="Please enter some text", height=0, width=0)
546
+ command = option_string() + "--yesno \"" + text.to_s +
547
+ "\" " + height.to_i.to_s + " " + width.to_i.to_s
548
+
549
+ success = system(command)
550
+ return success
551
+ end
552
+
553
+ private
554
+
555
+ def option_string()
556
+ unless @path_to_dialog
557
+ ostring = "dialog "
558
+ else
559
+ ostring = @path_to_dialog + " "
560
+ end
561
+ if @aspect
562
+ ostring += "--aspect " + aspect + " "
563
+ end
564
+
565
+ if @beep
566
+ ostring += "--beep "
567
+ end
568
+
569
+ if @boxbegin
570
+ ostring += "--begin " + @boxbegin[0] + @boxbegin[1] + " "
571
+ end
572
+
573
+ if @backtitle
574
+ ostring += "--backtitle \"" + @backtitle + "\" "
575
+ end
576
+
577
+ if @cancellabel
578
+ ostring += "--cancel-label \"" + @cancellabel + "\" "
579
+ end
580
+
581
+ if @oklabel
582
+ ostring += "--ok-label \"" + @oklabel + "\" "
583
+ end
584
+
585
+ if @itemhelp
586
+ ostring += "--item-help "
587
+ end
588
+
589
+ unless @shadow == nil
590
+ if @shadow == true
591
+ ostring += "--shadow "
592
+ else
593
+ ostring += "--no-shadow "
594
+ end
595
+ end
596
+
597
+ if @sleep
598
+ ostring += "--sleep " + @sleep.to_s + " "
599
+ end
600
+
601
+ if @tabcorrect
602
+ ostring += "--tab-correct "
603
+ end
604
+
605
+ if @tablen
606
+ ostring += "--tab-len " + @tablen.to_i + " "
607
+ end
608
+
609
+ if @timeout
610
+ ostring += "--timeout " + @timeout.to_s + " "
611
+ end
612
+
613
+ if @title
614
+ ostring += "--title \"" + @title.to_s + "\" "
615
+ end
616
+
617
+ if @nocancel
618
+ ostring += "--nocancel "
619
+ end
620
+
621
+ return ostring
622
+
623
+ end
624
+ end
@@ -0,0 +1,10 @@
1
+ module Rdialog #:nodoc:
2
+ def self.version
3
+ version_file = File.expand_path("../../VERSION", File.dirname(__FILE__))
4
+ File.open( version_file, "r") do |version_file|
5
+ version_file.read.strip
6
+ end
7
+ end
8
+
9
+ VERSION = Rdialog.version
10
+ end
data/lib/rdialog-ng.rb ADDED
@@ -0,0 +1,4 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+
3
+ require 'rdialog-ng/rdialog-ng'
4
+ require 'rdialog-ng/version'
metadata ADDED
@@ -0,0 +1,53 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rdialog-ng
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Aleks Clark
8
+ - Matt Scilipoti
9
+ - Lucas Vieira
10
+ - Jan-Frederik Rieckers
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2016-10-27 00:00:00.000000000 Z
15
+ dependencies: []
16
+ description: A gem providing a ruby interface to the n-curses dialog generator - 'dialog'.
17
+ email: rubygem@rieckers.it
18
+ executables: []
19
+ extensions: []
20
+ extra_rdoc_files:
21
+ - LICENSE
22
+ - README.rdoc
23
+ files:
24
+ - LICENSE
25
+ - README.rdoc
26
+ - VERSION
27
+ - lib/rdialog-ng.rb
28
+ - lib/rdialog-ng/rdialog-ng.rb
29
+ - lib/rdialog-ng/version.rb
30
+ homepage: https://github.com/rieckers/rdialog-ng
31
+ licenses: []
32
+ metadata: {}
33
+ post_install_message:
34
+ rdoc_options: []
35
+ require_paths:
36
+ - lib
37
+ required_ruby_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ required_rubygems_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ requirements: []
48
+ rubyforge_project:
49
+ rubygems_version: 2.2.2
50
+ signing_key:
51
+ specification_version: 4
52
+ summary: A gem providing a ruby interface to the n-curses dialog generator - 'dialog'.
53
+ test_files: []