songbook 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55dc94f2eba30f9815fec093a92a043d522e924cfaae0ec2fac0f16e558b3ee7
4
- data.tar.gz: e146bd742a98b4e9082cf0df6d1cccd57304ac81c25e70bd4f91ef4012bb1655
3
+ metadata.gz: 77a576ace791a1d2336d9a1028864b0430263bbd8ef7a7ee1fab7b3c32feead6
4
+ data.tar.gz: cc47254a55d12c987e451ca82aa76dfe4a054b9685f624821196cce1b8396ee5
5
5
  SHA512:
6
- metadata.gz: 3b371581b64be50d59778b85e91020418502b8243565941be4575253aae6c476cb2f291d1d8c23110e54bec2746d4236312eccc5bb76fc3e3982f8debf3be080
7
- data.tar.gz: c7647e32a215b89e4ee1965c7ccd413d0f4e26c58f370f68478cb4fbd543d29349daba8b11fa35d6923702108da8975ba8c42e472172e32f5ced4b261432f300
6
+ metadata.gz: 01c14ac68fe116b3119b4861b0b43fb4061df58dc7ca843f23f1cfb16f4b52560054c39a3e356f76975710a9080e4ce819a88d414d302e52ed24b1b2bc7f6e3f
7
+ data.tar.gz: 671c92a26a6f4b5c314573c156a3fcabe93ea4ea1b965947aadc4a4443ba2300fb12e16c41782d1fe724a8b0eefd6a2cc320a60fe7fb892faea45c88186f10c6
@@ -27,14 +27,11 @@ module Songbook
27
27
  end
28
28
 
29
29
  def song
30
- table_width = song_data['config']['table_width'] if song_data['config']
31
-
32
30
  @song ||= Song.new(
33
31
  title: File.basename(input_path, '.yml'),
34
32
  details: song_data['details'],
35
33
  chords: song_data['chords'],
36
- lyrics: song_data['lyrics'],
37
- table_width: table_width
34
+ lyrics: song_data['lyrics']
38
35
  )
39
36
  end
40
37
 
@@ -29,7 +29,7 @@ module Songbook
29
29
  def verses_table
30
30
  table = TTY::Table.new do |t|
31
31
  song.verses.each do |verse|
32
- t << ["[#{verse.title}]", nil]
32
+ t << [verse.formatted_title, nil]
33
33
 
34
34
  verse.lines.each do |line|
35
35
  t << [line.chords, line.lyrics]
@@ -48,22 +48,22 @@ module Songbook
48
48
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
49
49
 
50
50
  def table_settings
51
- { column_widths: [chords_column_width, lyrics_column_width], multiline: true }
51
+ { resize: true, width: table_width }
52
52
  end
53
53
 
54
- def lyrics_column_width
55
- [
56
- song.table_width - chords_column_width - LYRICS_CHORDS_SEPARATOR.length,
57
- max_lyrics_column_width
58
- ].min
54
+ def table_width
55
+ chords_column_width + LYRICS_CHORDS_SEPARATOR.length + lyrics_column_width
59
56
  end
60
57
 
61
- def max_lyrics_column_width
58
+ def lyrics_column_width
62
59
  song.verses.flat_map(&:lines).flat_map(&:lyrics).map(&:length).max
63
60
  end
64
61
 
65
62
  def chords_column_width
66
- song.verses.flat_map(&:lines).flat_map(&:chords).map(&:length).max
63
+ chord_column_texts =
64
+ song.verses.flat_map(&:lines).flat_map(&:chords) + song.verses.map(&:formatted_title)
65
+
66
+ chord_column_texts.map(&:length).max
67
67
  end
68
68
  end
69
69
  end
data/lib/songbook/song.rb CHANGED
@@ -4,16 +4,13 @@ require_relative 'verse'
4
4
 
5
5
  module Songbook
6
6
  class Song
7
- TABLE_WIDTH = 80
7
+ attr_reader :title, :details, :chords, :lyrics
8
8
 
9
- attr_reader :title, :details, :chords, :lyrics, :table_width
10
-
11
- def initialize(title:, details:, chords:, lyrics:, table_width: nil)
9
+ def initialize(title:, details:, chords:, lyrics:)
12
10
  @title = title
13
11
  @details = details
14
12
  @chords = chords
15
13
  @lyrics = lyrics
16
- @table_width = table_width || TABLE_WIDTH
17
14
  end
18
15
 
19
16
  def verses
@@ -27,6 +27,10 @@ module Songbook
27
27
  end
28
28
  # rubocop:enable Metrics/AbcSize
29
29
 
30
+ def formatted_title
31
+ "[#{title}]"
32
+ end
33
+
30
34
  private
31
35
 
32
36
  def lyric_lines
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Songbook
4
- VERSION = '0.5.0'
4
+ VERSION = '0.5.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: songbook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - George Mendoza
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-03 00:00:00.000000000 Z
11
+ date: 2023-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-table