whirled_peas 0.2.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +38 -0
- data/Gemfile +1 -0
- data/README.md +275 -81
- data/Rakefile +38 -3
- data/examples/intro.rb +52 -0
- data/examples/scrolling.rb +53 -0
- data/exe/whirled_peas +7 -0
- data/lib/whirled_peas.rb +12 -42
- data/lib/whirled_peas/command_line.rb +255 -0
- data/lib/whirled_peas/config.rb +21 -0
- data/lib/whirled_peas/errors.rb +7 -0
- data/lib/whirled_peas/frame.rb +0 -8
- data/lib/whirled_peas/frame/consumer.rb +14 -50
- data/lib/whirled_peas/frame/debug_consumer.rb +30 -0
- data/lib/whirled_peas/frame/event_loop.rb +68 -38
- data/lib/whirled_peas/frame/producer.rb +36 -32
- data/lib/whirled_peas/graphics.rb +5 -0
- data/lib/whirled_peas/graphics/box_painter.rb +108 -0
- data/lib/whirled_peas/graphics/canvas.rb +107 -0
- data/lib/whirled_peas/graphics/composer.rb +80 -0
- data/lib/whirled_peas/graphics/container_coords.rb +71 -0
- data/lib/whirled_peas/graphics/container_dimensions.rb +75 -0
- data/lib/whirled_peas/graphics/container_painter.rb +234 -0
- data/lib/whirled_peas/graphics/debugger.rb +52 -0
- data/lib/whirled_peas/graphics/grid_painter.rb +68 -0
- data/lib/whirled_peas/graphics/mock_screen.rb +26 -0
- data/lib/whirled_peas/graphics/painter.rb +19 -0
- data/lib/whirled_peas/graphics/renderer.rb +21 -0
- data/lib/whirled_peas/graphics/screen.rb +70 -0
- data/lib/whirled_peas/graphics/text_dimensions.rb +15 -0
- data/lib/whirled_peas/graphics/text_painter.rb +40 -0
- data/lib/whirled_peas/settings.rb +5 -0
- data/lib/whirled_peas/settings/bg_color.rb +22 -0
- data/lib/whirled_peas/settings/border.rb +101 -0
- data/lib/whirled_peas/settings/box_settings.rb +8 -0
- data/lib/whirled_peas/settings/color.rb +69 -0
- data/lib/whirled_peas/settings/container_settings.rb +139 -0
- data/lib/whirled_peas/settings/debugger.rb +96 -0
- data/lib/whirled_peas/settings/display_flow.rb +25 -0
- data/lib/whirled_peas/settings/element_settings.rb +61 -0
- data/lib/whirled_peas/settings/grid_settings.rb +15 -0
- data/lib/whirled_peas/settings/margin.rb +8 -0
- data/lib/whirled_peas/settings/padding.rb +8 -0
- data/lib/whirled_peas/settings/position.rb +15 -0
- data/lib/whirled_peas/settings/scrollbar.rb +15 -0
- data/lib/whirled_peas/settings/spacing.rb +24 -0
- data/lib/whirled_peas/settings/text_align.rb +19 -0
- data/lib/whirled_peas/settings/text_color.rb +19 -0
- data/lib/whirled_peas/settings/text_settings.rb +15 -0
- data/lib/whirled_peas/utils.rb +5 -0
- data/lib/whirled_peas/utils/ansi.rb +53 -0
- data/lib/whirled_peas/utils/formatted_string.rb +64 -0
- data/lib/whirled_peas/utils/title_font.rb +75 -0
- data/lib/whirled_peas/version.rb +1 -1
- data/screen_test/rendered/elements/box.frame +1 -0
- data/screen_test/rendered/elements/box.rb +20 -0
- data/screen_test/rendered/elements/grid.frame +1 -0
- data/screen_test/rendered/elements/grid.rb +13 -0
- data/screen_test/rendered/elements/screen_overflow.frame +1 -0
- data/screen_test/rendered/elements/screen_overflow.rb +9 -0
- data/screen_test/rendered/elements/text.frame +1 -0
- data/screen_test/rendered/elements/text.rb +9 -0
- data/screen_test/rendered/elements/text_multiline.frame +1 -0
- data/screen_test/rendered/elements/text_multiline.rb +9 -0
- data/screen_test/rendered/settings/align/box.frame +1 -0
- data/screen_test/rendered/settings/align/box.rb +24 -0
- data/screen_test/rendered/settings/align/children_center.frame +1 -0
- data/screen_test/rendered/settings/align/children_center.rb +13 -0
- data/screen_test/rendered/settings/align/children_left.frame +1 -0
- data/screen_test/rendered/settings/align/children_left.rb +13 -0
- data/screen_test/rendered/settings/align/children_right.frame +1 -0
- data/screen_test/rendered/settings/align/children_right.rb +13 -0
- data/screen_test/rendered/settings/align/grid.frame +1 -0
- data/screen_test/rendered/settings/align/grid.rb +20 -0
- data/screen_test/rendered/settings/ansi/bold.frame +1 -0
- data/screen_test/rendered/settings/ansi/bold.rb +15 -0
- data/screen_test/rendered/settings/ansi/color.frame +1 -0
- data/screen_test/rendered/settings/ansi/color.rb +37 -0
- data/screen_test/rendered/settings/ansi/underline.frame +1 -0
- data/screen_test/rendered/settings/ansi/underline.rb +15 -0
- data/screen_test/rendered/settings/border.frame +1 -0
- data/screen_test/rendered/settings/border.rb +13 -0
- data/screen_test/rendered/settings/flow/box_b2t.frame +1 -0
- data/screen_test/rendered/settings/flow/box_b2t.rb +24 -0
- data/screen_test/rendered/settings/flow/box_l2r.frame +1 -0
- data/screen_test/rendered/settings/flow/box_l2r.rb +24 -0
- data/screen_test/rendered/settings/flow/box_r2l.frame +1 -0
- data/screen_test/rendered/settings/flow/box_r2l.rb +24 -0
- data/screen_test/rendered/settings/flow/box_t2b.frame +1 -0
- data/screen_test/rendered/settings/flow/box_t2b.rb +24 -0
- data/screen_test/rendered/settings/flow/grid_b2t.frame +1 -0
- data/screen_test/rendered/settings/flow/grid_b2t.rb +14 -0
- data/screen_test/rendered/settings/flow/grid_l2r.frame +1 -0
- data/screen_test/rendered/settings/flow/grid_l2r.rb +14 -0
- data/screen_test/rendered/settings/flow/grid_r2l.frame +1 -0
- data/screen_test/rendered/settings/flow/grid_r2l.rb +14 -0
- data/screen_test/rendered/settings/flow/grid_t2b.frame +1 -0
- data/screen_test/rendered/settings/flow/grid_t2b.rb +14 -0
- data/screen_test/rendered/settings/height/box.frame +1 -0
- data/screen_test/rendered/settings/height/box.rb +13 -0
- data/screen_test/rendered/settings/height/grid.frame +1 -0
- data/screen_test/rendered/settings/height/grid.rb +14 -0
- data/screen_test/rendered/settings/height/overflow_box.frame +1 -0
- data/screen_test/rendered/settings/height/overflow_box.rb +13 -0
- data/screen_test/rendered/settings/height/overflow_box_l2r.frame +1 -0
- data/screen_test/rendered/settings/height/overflow_box_l2r.rb +15 -0
- data/screen_test/rendered/settings/height/overflow_box_t2b.frame +1 -0
- data/screen_test/rendered/settings/height/overflow_box_t2b.rb +14 -0
- data/screen_test/rendered/settings/height/overflow_grid.frame +1 -0
- data/screen_test/rendered/settings/height/overflow_grid.rb +16 -0
- data/screen_test/rendered/settings/margin.frame +1 -0
- data/screen_test/rendered/settings/margin.rb +14 -0
- data/screen_test/rendered/settings/padding.frame +1 -0
- data/screen_test/rendered/settings/padding.rb +11 -0
- data/screen_test/rendered/settings/position/box_left.frame +1 -0
- data/screen_test/rendered/settings/position/box_left.rb +17 -0
- data/screen_test/rendered/settings/position/box_left_negative.frame +1 -0
- data/screen_test/rendered/settings/position/box_left_negative.rb +17 -0
- data/screen_test/rendered/settings/position/box_top.frame +1 -0
- data/screen_test/rendered/settings/position/box_top.rb +17 -0
- data/screen_test/rendered/settings/position/box_top_negative.frame +1 -0
- data/screen_test/rendered/settings/position/box_top_negative.rb +17 -0
- data/screen_test/rendered/settings/position/grid_left.frame +1 -0
- data/screen_test/rendered/settings/position/grid_left.rb +18 -0
- data/screen_test/rendered/settings/position/grid_left_negative.frame +1 -0
- data/screen_test/rendered/settings/position/grid_left_negative.rb +18 -0
- data/screen_test/rendered/settings/position/grid_top.frame +1 -0
- data/screen_test/rendered/settings/position/grid_top.rb +18 -0
- data/screen_test/rendered/settings/position/grid_top_negative.frame +1 -0
- data/screen_test/rendered/settings/position/grid_top_negative.rb +18 -0
- data/screen_test/rendered/settings/scroll/horiz_box.frame +1 -0
- data/screen_test/rendered/settings/scroll/horiz_box.rb +15 -0
- data/screen_test/rendered/settings/scroll/vert_box.frame +1 -0
- data/screen_test/rendered/settings/scroll/vert_box.rb +18 -0
- data/screen_test/rendered/settings/title_font.frame +1 -0
- data/screen_test/rendered/settings/title_font.rb +12 -0
- data/screen_test/rendered/settings/width/box.frame +1 -0
- data/screen_test/rendered/settings/width/box.rb +13 -0
- data/screen_test/rendered/settings/width/grid.frame +1 -0
- data/screen_test/rendered/settings/width/grid.rb +14 -0
- data/screen_test/rendered/settings/width/overflow_box.frame +1 -0
- data/screen_test/rendered/settings/width/overflow_box.rb +11 -0
- data/screen_test/rendered/settings/width/overflow_box_l2r.frame +1 -0
- data/screen_test/rendered/settings/width/overflow_box_l2r.rb +14 -0
- data/screen_test/rendered/settings/width/overflow_box_t2b.frame +1 -0
- data/screen_test/rendered/settings/width/overflow_box_t2b.rb +15 -0
- data/screen_test/rendered/settings/width/overflow_grid.frame +1 -0
- data/screen_test/rendered/settings/width/overflow_grid.rb +14 -0
- data/screen_test/screen_tester.rb +201 -0
- data/whirled_peas.gemspec +4 -2
- metadata +147 -20
- data/lib/whirled_peas/ui.rb +0 -7
- data/lib/whirled_peas/ui/ansi.rb +0 -154
- data/lib/whirled_peas/ui/canvas.rb +0 -35
- data/lib/whirled_peas/ui/element.rb +0 -225
- data/lib/whirled_peas/ui/painter.rb +0 -283
- data/lib/whirled_peas/ui/screen.rb +0 -62
- data/lib/whirled_peas/ui/settings.rb +0 -521
- data/lib/whirled_peas/ui/stroke.rb +0 -29
- data/sandbox/auto.rb +0 -13
- data/sandbox/box.rb +0 -19
- data/sandbox/grid.rb +0 -13
- data/sandbox/sandbox.rb +0 -17
- data/sandbox/text.rb +0 -33
@@ -1,29 +0,0 @@
|
|
1
|
-
module WhirledPeas
|
2
|
-
module UI
|
3
|
-
class Stroke
|
4
|
-
EMPTY = Stroke.new
|
5
|
-
|
6
|
-
attr_reader :left, :top, :chars
|
7
|
-
|
8
|
-
def initialize(left, top, chars)
|
9
|
-
@left = left
|
10
|
-
@top = top
|
11
|
-
@chars = chars
|
12
|
-
end
|
13
|
-
|
14
|
-
def hash
|
15
|
-
[left, top, chars].hash
|
16
|
-
end
|
17
|
-
|
18
|
-
def ==(other)
|
19
|
-
other.is_a?(self.class) && self.hash == other.hash
|
20
|
-
end
|
21
|
-
|
22
|
-
def inspect
|
23
|
-
"Stroke(left=#{left}, top=#{top}, chars=#{chars})"
|
24
|
-
end
|
25
|
-
|
26
|
-
alias_method :eql?, :==
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
data/sandbox/auto.rb
DELETED
data/sandbox/box.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require_relative 'sandbox'
|
2
|
-
|
3
|
-
WhirledPeas.sandbox do |t|
|
4
|
-
t.add_box do |outer, outer_s|
|
5
|
-
outer_s.full_border
|
6
|
-
outer_s.bg_color = :green
|
7
|
-
outer_s.set_padding(left: 3, right: 3, top: 1, bottom: 1)
|
8
|
-
outer.add_box do |inner1, i1_s|
|
9
|
-
i1_s.flow = :t2b
|
10
|
-
inner1.add_box { "TOP LEFT" }
|
11
|
-
inner1.add_box { "BOTTOM LEFT" }
|
12
|
-
end
|
13
|
-
outer.add_box do |inner2, i2_s|
|
14
|
-
i2_s.flow = :t2b
|
15
|
-
inner2.add_box { "TOP RIGHT "}
|
16
|
-
inner2.add_box { "BOTTOM RIGHT "}
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
data/sandbox/grid.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require_relative 'sandbox'
|
2
|
-
|
3
|
-
WhirledPeas.sandbox do |t|
|
4
|
-
t.add_grid do |grid, settings|
|
5
|
-
settings.num_cols = 3
|
6
|
-
settings.bg_color = :yellow
|
7
|
-
settings.color = :blue
|
8
|
-
settings.set_margin(top: 3, left: 10)
|
9
|
-
settings.set_padding(top: 1, bottom: 1, left: 3, right: 3)
|
10
|
-
settings.full_border(color: :green)
|
11
|
-
6.times.map { |i| (i + 1).to_s }
|
12
|
-
end
|
13
|
-
end
|
data/sandbox/sandbox.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'bundler/setup'
|
2
|
-
require 'whirled_peas'
|
3
|
-
require 'whirled_peas/ui'
|
4
|
-
|
5
|
-
module WhirledPeas
|
6
|
-
def self.sandbox(&block)
|
7
|
-
template = WhirledPeas.template(&block)
|
8
|
-
if ARGV.last == '--debug'
|
9
|
-
puts template.inspect
|
10
|
-
screen = UI::Screen.new(false)
|
11
|
-
else
|
12
|
-
screen = UI::Screen.new
|
13
|
-
end
|
14
|
-
screen.paint(template)
|
15
|
-
screen.finalize
|
16
|
-
end
|
17
|
-
end
|
data/sandbox/text.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require_relative 'sandbox'
|
2
|
-
|
3
|
-
WhirledPeas.sandbox do |t|
|
4
|
-
t.add_text do |_, settings|
|
5
|
-
settings.bg_color = :green
|
6
|
-
settings.align = :right
|
7
|
-
settings.width = 30
|
8
|
-
"HELLO"
|
9
|
-
end
|
10
|
-
t.add_text do |_, settings|
|
11
|
-
settings.bg_color = :red
|
12
|
-
settings.align = :center
|
13
|
-
settings.width = 30
|
14
|
-
"WORLD"
|
15
|
-
end
|
16
|
-
t.add_text do |_, settings|
|
17
|
-
settings.bg_color = :green
|
18
|
-
settings.width = 4
|
19
|
-
"1234567890"
|
20
|
-
end
|
21
|
-
t.add_text do |_, settings|
|
22
|
-
settings.bg_color = :red
|
23
|
-
settings.align = :center
|
24
|
-
settings.width = 4
|
25
|
-
"1234567890"
|
26
|
-
end
|
27
|
-
t.add_text do |_, settings|
|
28
|
-
settings.bg_color = :green
|
29
|
-
settings.align = :right
|
30
|
-
settings.width = 4
|
31
|
-
"1234567890"
|
32
|
-
end
|
33
|
-
end
|