songbook 0.5.0 → 0.5.1

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: 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