typr 1.2.0 → 1.4.0

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/typr.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "typr"
5
- s.version = "1.2.0"
5
+ s.version = "1.4.0"
6
6
  s.date = "2026-07-25"
7
7
  s.homepage = "https://codeberg.org/typr/typr"
8
8
  s.licenses = ["MIT"]
@@ -10,8 +10,9 @@ Gem::Specification.new do |s|
10
10
  s.authors = ["Kilian Reitmayr"]
11
11
  s.summary = "Terminal UI Toolkit"
12
12
  s.email = ["reitmayr@protonmail.com"]
13
- s.files = Dir["lib/*.rb"] + ["LICENSE", "README.md", "CHANGELOG.md", "typr.gemspec",
14
- "example/grid", "example/browser", "example/text", "example/top500.csv", "share/mimetypes"]
13
+ s.files = Dir["lib/*.rb"] - ["lib/curses.rb"] + ["LICENSE", "README.md", "CHANGELOG.md", "typr.gemspec",
14
+ "example/grid", "example/browser", "example/text", "example/top500.csv",
15
+ "share/mimetypes", "share/terminfo"]
15
16
  s.required_ruby_version = Gem::Requirement.new(">= 3.1")
16
17
  s.add_runtime_dependency("unicode-display_width", ["~> 3.1"])
17
18
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kilian Reitmayr
@@ -37,7 +37,6 @@ files:
37
37
  - example/text
38
38
  - example/top500.csv
39
39
  - lib/browser.rb
40
- - lib/curses.rb
41
40
  - lib/frontend.rb
42
41
  - lib/graphical.rb
43
42
  - lib/grid.rb
@@ -48,6 +47,7 @@ files:
48
47
  - lib/text.rb
49
48
  - lib/typr.rb
50
49
  - share/mimetypes
50
+ - share/terminfo
51
51
  - typr.gemspec
52
52
  homepage: https://codeberg.org/typr/typr
53
53
  licenses:
data/lib/curses.rb DELETED
@@ -1,124 +0,0 @@
1
- require 'ncursesw'
2
- require_relative 'frontend'
3
-
4
- module Visuals
5
-
6
- include Ncurses
7
- KEY_ESCAPE = 27
8
- KEY_RETURN = 10
9
- KEY_TAB = 9
10
- KEY_PAGEDOWN = KEY_NPAGE
11
- KEY_PAGEUP = KEY_PPAGE
12
-
13
- $colors = COLORS.keys
14
- $pairs = []
15
-
16
- %w[color pair].each{ |name| method = <<STR
17
- def %s_for obj;
18
- if id = $%ss.index( obj ) then return id
19
- else last = ( $%ss << obj.dup ).count - 1
20
- Ncurses.init_%s( last, *obj )
21
- return last
22
- end
23
- end
24
- STR
25
- eval( method % ([name]*4) )
26
- }
27
-
28
- def self.width; Ncurses.COLS end
29
- def self.height; Ncurses.LINES end
30
- def self.row; Ncurses.getcury $screen end
31
- def self.column; Ncurses.getcurx $screen end
32
-
33
- def self.exit
34
- Ncurses.echo
35
- Ncurses.nocbreak
36
- Ncurses.nl
37
- Ncurses.endwin
38
- end
39
-
40
- def read input
41
- case input
42
- when :key
43
- key = Ncurses.getch
44
- key = key.chr if key.between? 32, 126
45
- return key
46
- when :line
47
- str = ''
48
- until (key = Ncurses.getch) == KEY_RETURN
49
- return nil if key == KEY_ESCAPE
50
- if [KEY_BACKSPACE, 127, 8].include? key
51
- str.chop!
52
- else
53
- str << key.chr if key.between? 32, 126
54
- end
55
- end
56
- return str
57
- end
58
- end
59
-
60
- def move x=0,y=0; Ncurses.move y, x end
61
- def refresh; Ncurses.refresh end
62
- def clear type=:screen;
63
- case type
64
- when :screen; Ncurses.erase
65
- when :line; Ncurses.clrtoeol
66
- when :down; Ncurses.clrtobot
67
- end
68
- end
69
- def change; Ncurses.color_set pair_for( $color ), 0 end
70
- def draw string; Ncurses.addstr string.to_s end
71
-
72
- def get_background; $color[1] end
73
- def get_foreground; $color[0] end
74
- def background color;
75
- $color[1] = (color ? color_for( color ) : $default[1]); change
76
- end
77
- def foreground color;
78
- $color[0] = (color ? color_for( color ) : $default[0]); change
79
- end
80
-
81
- def color c
82
- c = [c] unless c.is_a? Array and c.count == 2
83
- foreground c[0] if c[0]
84
- background c[1] if c[1]
85
- end
86
-
87
- def self.init args={}
88
- $creen = Ncurses.initscr
89
- Ncurses.cbreak
90
- Ncurses.noecho
91
- Ncurses.nl
92
- Ncurses.curs_set 0
93
- Ncurses.start_color
94
- Ncurses.stdscr.intrflush(false)
95
- Ncurses.stdscr.keypad(true)
96
-
97
- $default = [
98
- color_for( args[:foreground] || :grey80 ),
99
- color_for( args[:background] || :grey10 ) ]
100
- $color = $default.dup
101
-
102
- COLORS.each_with_index{ |c,i|
103
- $pairs << [ i, $default[1] ]
104
- Ncurses.init_color i, *c[1]
105
- Ncurses.init_pair i, i, $default[1] }
106
-
107
- Ncurses.bkgd Ncurses::COLOR_PAIR( pair_for $default )
108
-
109
- end
110
-
111
- end
112
-
113
- if __FILE__ == $0
114
- include Visuals
115
- Visuals.init
116
- characters = (32..126).map(&:chr).join
117
- loop do
118
- clear
119
- $colors.each_with_index{ |c,i|
120
- foreground c; move 0,i; draw characters }
121
- refresh
122
- exit if read(:key) == KEY_ESCAPE
123
- end
124
- end