cani 0.5.6 → 0.5.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a2a9a1ade58c61f500567b529e8bf04dfb8c47f45cf560af55aae8f68948a12
4
- data.tar.gz: b15bd942b13a6ff8b345a1d2f9ec9dc7c1709cf1bcb45322016497586d696016
3
+ metadata.gz: b58055765218df5774430bad518d924cbe5d2c00cf087e9cb0933cc90f9a9275
4
+ data.tar.gz: 235ad6b6ba486c93bea25ea6734ea222d15240344ed5eff55ec128bf991a8877
5
5
  SHA512:
6
- metadata.gz: ca047850e4ef78cd88f3db162b35bfff5ddc9b4ed70b51e2fe7de1120effa3f7e6497c48c5dfd138a2a14adf3bff9fd70a371702ebd3dd8e475d9473f7321d44
7
- data.tar.gz: 904b5aba4262ad983879f850d3ce08b733c1f7e41c51cf004a64001c8daff021a89dc4a1dc12c963eb5a27c33f49ac9d74707b810406caafd3b9e74ff8060c3f
6
+ metadata.gz: cbe57d98c06a180e4bb64d20bc1b7b7c337f8cfb60631264ea5e6282faa60763156770225788133aefe1b78e21c92a290238e43819615c7611ad3016bea3c774
7
+ data.tar.gz: bb0e4f0cdde0dc18a222a1e12ef15bf3895a7fe045fd1fb9ae5e429c4b32b6212e51885856ba9bd28f77f43c608c1d28c2bda74f53ea0219b412dbbd148b8ea3
data/README.md CHANGED
@@ -10,6 +10,10 @@ on a regular interval together with completions.
10
10
 
11
11
  ## Latest changes
12
12
 
13
+ ### 28-07-2019 VERSION 0.5.7
14
+
15
+ - Titles shown in `cani use` may take up to 50 characters if the terminal is wide enough.
16
+
13
17
  ### 24-07-2019 VERSION 0.5.6
14
18
 
15
19
  - Fix issue where `cani` would crash when used without arguments. Original behavior of showing `cani help` in that case is restored. ([#14](../../pull/14))
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.add_runtime_dependency 'colorize'
28
28
  spec.add_runtime_dependency 'curses'
29
+ spec.add_runtime_dependency 'tty-screen'
29
30
  spec.add_runtime_dependency 'json'
30
31
 
31
32
  spec.add_development_dependency 'bundler', '~> 1.16'
@@ -6,6 +6,7 @@ require 'curses'
6
6
  require 'colorize'
7
7
  require 'json'
8
8
  require 'yaml'
9
+ require 'tty-screen'
9
10
 
10
11
  require 'cani/api'
11
12
  require 'cani/fzf'
@@ -44,10 +44,10 @@ module Cani
44
44
  brwsr = Cani.api.browsers[bridx] unless bridx.nil?
45
45
  syms = stats[browser].values.compact.last(Cani.config.versions)
46
46
  .map { |s| TYPES[s][:symbol] || '' }
47
- .join.rjust Cani.config.versions
47
+ .join
48
48
 
49
- syms + brwsr.abbr
50
- end
49
+ brwsr && syms + brwsr.abbr
50
+ end.compact
51
51
  end
52
52
 
53
53
  def support_in(browser, version)
@@ -30,6 +30,14 @@ module Cani
30
30
  @exe ||= system 'fzf --version > /dev/null 2>&1'
31
31
  end
32
32
 
33
+ def self.dimensions
34
+ @dimensions ||= TTY::Screen.size
35
+ end
36
+
37
+ def self.longest_title_size
38
+ @longest_title_size ||= Cani.api.features.map(&:title).map(&:size).max
39
+ end
40
+
33
41
  def self.feature_rows
34
42
  @feature_rows ||= Cani.api.features.map(&Fzf.method(:to_feature_row))
35
43
  end
@@ -37,7 +45,11 @@ module Cani
37
45
  def self.to_feature_row(ft)
38
46
  pc = format('%.2f%%', ft.percent).rjust 6
39
47
  cl = {'un' => :yellow, 'ot' => :magenta}.fetch ft.status, :green
40
- tt = format('%-24s', ft.title.size > 24 ? ft.title[0..23].strip + '..'
48
+
49
+ total_len = ft.current_support.map(&:size).reduce(&:+) + pc.size + 4 + (ft.current_support.size + 2) * 3
50
+ rem_len = [longest_title_size, 50, [dimensions.last - total_len, 30].max].min
51
+
52
+ tt = format("%-#{rem_len}s", ft.title.size > rem_len ? ft.title[0...rem_len].strip + '..'
41
53
  : ft.title)
42
54
 
43
55
  [{content: "[#{ft.status}]", color: cl}, pc,
@@ -1,3 +1,3 @@
1
1
  module Cani
2
- VERSION = "0.5.6"
2
+ VERSION = "0.5.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cani
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.5.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sidney Liebrand
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-24 00:00:00.000000000 Z
11
+ date: 2019-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: tty-screen
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: json
43
57
  requirement: !ruby/object:Gem::Requirement