tty-box 0.2.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,49 +0,0 @@
1
- RSpec.describe TTY::Box, '#frame' do
2
- it "creates frame with only width & height values" do
3
- output = TTY::Box.frame(width: 35, height: 4)
4
-
5
- expect(output).to eq([
6
- "┌─────────────────────────────────┐\n",
7
- "│ │\n",
8
- "│ │\n",
9
- "└─────────────────────────────────┘\n"
10
- ].join)
11
- end
12
-
13
- it "creates frame at a position with direct width & height values" do
14
- output = TTY::Box.frame(top: 0, left: 0, width: 35, height: 4)
15
-
16
- expect(output).to eq([
17
- "\e[1;1H┌─────────────────────────────────┐",
18
- "\e[2;1H│\e[2;35H│",
19
- "\e[3;1H│\e[3;35H│",
20
- "\e[4;1H└─────────────────────────────────┘"
21
- ].join)
22
- end
23
-
24
- it "displays content when block provided" do
25
- output = TTY::Box.frame(top: 0, left: 0, width: 35, height: 4) do
26
- "Hello world!"
27
- end
28
-
29
- expect(output).to eq([
30
- "\e[1;1H┌─────────────────────────────────┐",
31
- "\e[2;1H│Hello world! \e[2;35H│",
32
- "\e[3;1H│\e[3;35H│",
33
- "\e[4;1H└─────────────────────────────────┘"
34
- ].join)
35
- end
36
-
37
- it "wraps content when exceeding width" do
38
- box = TTY::Box.frame(top: 0, left: 0, width: 20, height: 4) do
39
- "Drawing a box in terminal emulator"
40
- end
41
-
42
- expect(box).to eq([
43
- "\e[1;1H┌──────────────────┐",
44
- "\e[2;1H│Drawing a box in \e[2;20H│",
45
- "\e[3;1H│terminal emulator \e[3;20H│",
46
- "\e[4;1H└──────────────────┘"
47
- ].join)
48
- end
49
- end
@@ -1,46 +0,0 @@
1
- RSpec.describe TTY::Box, ':padding option' do
2
- it "padds internal content without position arguments" do
3
- box = TTY::Box.frame(width: 30, height: 6, padding: 1) do
4
- "Drawing a box in terminal emulator"
5
- end
6
-
7
- expect(box).to eq([
8
- "┌────────────────────────────┐\n",
9
- "│ │\n",
10
- "│ Drawing a box in terminal │\n",
11
- "│ emulator │\n",
12
- "│ │\n",
13
- "└────────────────────────────┘\n"
14
- ].join)
15
- end
16
-
17
- it "padds internal content with with padding as integer" do
18
- box = TTY::Box.frame(top: 0, left: 0, width: 30, height: 6, padding: 1) do
19
- "Drawing a box in terminal emulator"
20
- end
21
-
22
- expect(box).to eq([
23
- "\e[1;1H┌────────────────────────────┐",
24
- "\e[2;1H│ \e[2;30H│",
25
- "\e[3;1H│ Drawing a box in terminal \e[3;30H│",
26
- "\e[4;1H│ emulator \e[4;30H│",
27
- "\e[5;1H│ \e[5;30H│",
28
- "\e[6;1H└────────────────────────────┘"
29
- ].join)
30
- end
31
-
32
- it "padds internal content with padding as array" do
33
- box = TTY::Box.frame(top: 0, left: 0, width: 30, height: 6, padding: [1,3,1,3]) do
34
- "Drawing a box in terminal emulator"
35
- end
36
-
37
- expect(box).to eq([
38
- "\e[1;1H┌────────────────────────────┐",
39
- "\e[2;1H│ \e[2;30H│",
40
- "\e[3;1H│ Drawing a box in \e[3;30H│",
41
- "\e[4;1H│ terminal emulator \e[4;30H│",
42
- "\e[5;1H│ \e[5;30H│",
43
- "\e[6;1H└────────────────────────────┘"
44
- ].join)
45
- end
46
- end
@@ -1,23 +0,0 @@
1
- RSpec.describe TTY::Box, ':top, :left options' do
2
- it "skips positioning when no top & left values provided" do
3
- output = TTY::Box.frame(width: 35, height: 4)
4
-
5
- expect(output).to eq([
6
- "┌─────────────────────────────────┐\n",
7
- "│ │\n",
8
- "│ │\n",
9
- "└─────────────────────────────────┘\n"
10
- ].join)
11
- end
12
-
13
- it "allows to absolutely position within the terminal window" do
14
- output = TTY::Box.frame(top: 10, left: 40, width: 35, height: 4)
15
-
16
- expect(output).to eq([
17
- "\e[11;41H┌─────────────────────────────────┐",
18
- "\e[12;41H│\e[12;75H│",
19
- "\e[13;41H│\e[13;75H│",
20
- "\e[14;41H└─────────────────────────────────┘"
21
- ].join)
22
- end
23
- end
@@ -1,31 +0,0 @@
1
- RSpec.describe TTY::Box, ":style option" do
2
- it "applies styling to content and border" do
3
- box = TTY::Box.frame(
4
- top: 0,
5
- left: 0,
6
- width: 30,
7
- height: 4,
8
- border: :thick,
9
- title: {
10
- top_left: ' file1 '
11
- },
12
- style: {
13
- fg: :bright_yellow,
14
- bg: :blue,
15
- border: {
16
- fg: :bright_yellow,
17
- bg: :blue
18
- }
19
- }
20
- ) do
21
- "Midnight Commander\nis the best"
22
- end
23
-
24
- expect(box).to eq([
25
- "\e[1;1H\e[44m\e[93m╔\e[0m\e[0m\e[44m file1 \e[0m\e[44m\e[93m══════════\e[0m\e[0m\e[44m\e[93m═══════════\e[0m\e[0m\e[44m\e[93m╗\e[0m\e[0m",
26
- "\e[2;1H\e[44m\e[93m║\e[0m\e[0m\e[44m\e[93mMidnight Commander \e[0m\e[0m\e[2;30H\e[44m\e[93m║\e[0m\e[0m",
27
- "\e[3;1H\e[44m\e[93m║\e[0m\e[0m\e[44m\e[93mis the best \e[0m\e[0m\e[3;30H\e[44m\e[93m║\e[0m\e[0m",
28
- "\e[4;1H\e[44m\e[93m╚\e[0m\e[0m\e[44m\e[93m══════════════\e[0m\e[0m\e[44m\e[93m══════════════\e[0m\e[0m\e[44m\e[93m╝\e[0m\e[0m"
29
- ].join)
30
- end
31
- end
@@ -1,35 +0,0 @@
1
- RSpec.describe TTY::Box, ':title option' do
2
- it "allows to specify top border titles" do
3
- output = TTY::Box.frame(
4
- top: 0, left: 0,
5
- width: 35, height: 4,
6
- title: {
7
- top_left: 'left',
8
- top_right: 'right',
9
- top_center: 'center'
10
- })
11
-
12
- expect(output).to eq([
13
- "\e[1;1H┌left─────────center─────────right┐",
14
- "\e[2;1H│\e[2;35H│\e[3;1H│\e[3;35H│",
15
- "\e[4;1H└─────────────────────────────────┘"
16
- ].join)
17
- end
18
-
19
- it "allows to specify bottom border titles" do
20
- output = TTY::Box.frame(
21
- top: 0, left: 0,
22
- width: 35, height: 4,
23
- title: {
24
- bottom_left: 'left',
25
- bottom_right: 'right',
26
- bottom_center: 'center'
27
- })
28
-
29
- expect(output).to eq([
30
- "\e[1;1H┌─────────────────────────────────┐",
31
- "\e[2;1H│\e[2;35H│\e[3;1H│\e[3;35H│",
32
- "\e[4;1H└left─────────center─────────right┘"
33
- ].join)
34
- end
35
- end
@@ -1,11 +0,0 @@
1
- # encoding: utf-8
2
-
3
- desc 'Load gem inside irb console'
4
- task :console do
5
- require 'irb'
6
- require 'irb/completion'
7
- require File.join(__FILE__, '../../lib/tty-box')
8
- ARGV.clear
9
- IRB.start
10
- end
11
- task c: %w[ console ]
@@ -1,11 +0,0 @@
1
- # encoding: utf-8
2
-
3
- desc 'Measure code coverage'
4
- task :coverage do
5
- begin
6
- original, ENV['COVERAGE'] = ENV['COVERAGE'], 'true'
7
- Rake::Task['spec'].invoke
8
- ensure
9
- ENV['COVERAGE'] = original
10
- end
11
- end
@@ -1,29 +0,0 @@
1
- # encoding: utf-8
2
-
3
- begin
4
- require 'rspec/core/rake_task'
5
-
6
- desc 'Run all specs'
7
- RSpec::Core::RakeTask.new(:spec) do |task|
8
- task.pattern = 'spec/{unit,integration}{,/*/**}/*_spec.rb'
9
- end
10
-
11
- namespace :spec do
12
- desc 'Run unit specs'
13
- RSpec::Core::RakeTask.new(:unit) do |task|
14
- task.pattern = 'spec/unit{,/*/**}/*_spec.rb'
15
- end
16
-
17
- desc 'Run integration specs'
18
- RSpec::Core::RakeTask.new(:integration) do |task|
19
- task.pattern = 'spec/integration{,/*/**}/*_spec.rb'
20
- end
21
- end
22
-
23
- rescue LoadError
24
- %w[spec spec:unit spec:integration].each do |name|
25
- task name do
26
- $stderr.puts "In order to run #{name}, do `gem install rspec`"
27
- end
28
- end
29
- end
@@ -1,29 +0,0 @@
1
- lib = File.expand_path("../lib", __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "tty/box/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "tty-box"
7
- spec.version = TTY::Box::VERSION
8
- spec.authors = ["Piotr Murach"]
9
- spec.email = [""]
10
-
11
- spec.summary = %q{Draw various frames and boxes in your terminal interface.}
12
- spec.description = %q{Draw various frames and boxes in your terminal interface.}
13
- spec.homepage = "https://piotrmurach.github.io/tty"
14
- spec.license = "MIT"
15
-
16
- spec.files = Dir['{lib,spec,examples}/**/*.rb']
17
- spec.files += Dir['{bin,tasks}/*', 'tty-box.gemspec']
18
- spec.files += Dir['README.md', 'CHANGELOG.md', 'LICENSE.txt', 'Rakefile']
19
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
21
-
22
- spec.add_dependency 'pastel', '~> 0.7.2'
23
- spec.add_dependency 'tty-cursor', '~> 0.6.0'
24
- spec.add_dependency 'strings', '~> 0.1.4'
25
-
26
- spec.add_development_dependency "bundler", "~> 1.16"
27
- spec.add_development_dependency "rake", "~> 10.0"
28
- spec.add_development_dependency "rspec", "~> 3.0"
29
- end