ehbrs_ruby_utils 0.11.0 → 0.13.0
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 +4 -4
 - data/lib/ehbrs_ruby_utils/core_ext.rb +5 -0
 - data/lib/ehbrs_ruby_utils/fs/compressed_package.rb +2 -2
 - data/lib/ehbrs_ruby_utils/fs/selected/build.rb +1 -1
 - data/lib/ehbrs_ruby_utils/fs/selected/build_file.rb +1 -1
 - data/lib/ehbrs_ruby_utils/fs/selected.rb +13 -3
 - data/lib/ehbrs_ruby_utils/music/lyrics_book/album.rb +42 -0
 - data/lib/ehbrs_ruby_utils/music/lyrics_book/resource.rb +64 -0
 - data/lib/ehbrs_ruby_utils/music/lyrics_book/song.rb +68 -0
 - data/lib/ehbrs_ruby_utils/music/lyrics_book.rb +65 -0
 - data/lib/ehbrs_ruby_utils/patches/object.rb +4 -0
 - data/lib/ehbrs_ruby_utils/patches.rb +4 -0
 - data/lib/ehbrs_ruby_utils/version.rb +1 -1
 - data/lib/ehbrs_ruby_utils/videos/convert_job.rb +2 -1
 - data/template/ehbrs_ruby_utils/music/lyrics_book/album/inner.html.erb +3 -0
 - data/template/ehbrs_ruby_utils/music/lyrics_book/custom_style.css +15 -0
 - data/template/ehbrs_ruby_utils/music/lyrics_book/index.html.erb +14 -0
 - data/template/ehbrs_ruby_utils/music/lyrics_book/main.html.erb +24 -0
 - data/template/ehbrs_ruby_utils/music/lyrics_book/resource/main.html.erb +8 -0
 - data/template/ehbrs_ruby_utils/music/lyrics_book/song/inner.html.erb +9 -0
 - metadata +29 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 5aaed3c96601c1f0e58b967d6329f6f78b9e4c4b71af95a938c7315cceaf33dd
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 07aa64f3b9f8681a497e803fd6a5dd750efb8d334953b82e51ec56b96835a36b
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: fb8e0db71d2926730c2ac6850769bc5f93965a42480c8fabfdaaeaeef65c5317bc5bb445e38aee185fe226dcd46c6dcc0f9287ee1a3e82b576d7e2239cb173e5
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 07e0d381377ba0678607414120e349211a1e09bd5ba02ac71acb4e069da6e33ca202eb383b0dc7d18306516cd987b24213c9a821e140197008743b6a09bc699c
         
     | 
| 
         @@ -1,11 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            require ' 
     | 
| 
      
 3 
     | 
    
         
            +
            require 'eac_fs/file_info'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'eac_ruby_utils/core_ext'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module EhbrsRubyUtils
         
     | 
| 
       7 
7 
     | 
    
         
             
              module Fs
         
     | 
| 
       8 
     | 
    
         
            -
                class CompressedPackage < :: 
     | 
| 
      
 8 
     | 
    
         
            +
                class CompressedPackage < ::EacFs::FileInfo
         
     | 
| 
       9 
9 
     | 
    
         
             
                  MIME_TYPES = {
         
     | 
| 
       10 
10 
     | 
    
         
             
                    'application/zip' => :zip,
         
     | 
| 
       11 
11 
     | 
    
         
             
                    'application/x-7z-compressed' => :sevenzip,
         
     | 
| 
         @@ -7,7 +7,7 @@ module EhbrsRubyUtils 
     | 
|
| 
       7 
7 
     | 
    
         
             
              module Fs
         
     | 
| 
       8 
8 
     | 
    
         
             
                class Selected
         
     | 
| 
       9 
9 
     | 
    
         
             
                  class Build
         
     | 
| 
       10 
     | 
    
         
            -
                    DEFAULT_TARGET_BASENAME_PROC = ::Proc.new { | 
     | 
| 
      
 10 
     | 
    
         
            +
                    DEFAULT_TARGET_BASENAME_PROC = ::Proc.new { |path| path.basename.to_path }
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                    attr_reader :selected, :target_dir, :target_basename_proc
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            require 'eac_fs/traverser'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'eac_ruby_utils/core_ext'
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
6 
     | 
    
         
             
            module EhbrsRubyUtils
         
     | 
| 
         @@ -16,8 +17,8 @@ module EhbrsRubyUtils 
     | 
|
| 
       16 
17 
     | 
    
         
             
                    self.options = self.class.lists.option.hash_keys_validate!(options)
         
     | 
| 
       17 
18 
     | 
    
         
             
                  end
         
     | 
| 
       18 
19 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
                  def build(target_dir)
         
     | 
| 
       20 
     | 
    
         
            -
                    ::EhbrsRubyUtils::Fs::Selected::Build.new(self, target_dir)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  def build(target_dir, &directory_target_basename)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    ::EhbrsRubyUtils::Fs::Selected::Build.new(self, target_dir, &directory_target_basename)
         
     | 
| 
       21 
22 
     | 
    
         
             
                  end
         
     | 
| 
       22 
23 
     | 
    
         | 
| 
       23 
24 
     | 
    
         
             
                  def filename
         
     | 
| 
         @@ -28,7 +29,16 @@ module EhbrsRubyUtils 
     | 
|
| 
       28 
29 
     | 
    
         | 
| 
       29 
30 
     | 
    
         
             
                  # @return [Pathname]
         
     | 
| 
       30 
31 
     | 
    
         
             
                  def found_uncached
         
     | 
| 
       31 
     | 
    
         
            -
                     
     | 
| 
      
 32 
     | 
    
         
            +
                    r = []
         
     | 
| 
      
 33 
     | 
    
         
            +
                    ft = ::EacFs::Traverser.new(
         
     | 
| 
      
 34 
     | 
    
         
            +
                      recursive: true,
         
     | 
| 
      
 35 
     | 
    
         
            +
                      hidden_directories: true,
         
     | 
| 
      
 36 
     | 
    
         
            +
                      check_file: lambda do |file|
         
     | 
| 
      
 37 
     | 
    
         
            +
                        r << file.parent if file.basename.to_path == filename.to_s
         
     | 
| 
      
 38 
     | 
    
         
            +
                      end
         
     | 
| 
      
 39 
     | 
    
         
            +
                    )
         
     | 
| 
      
 40 
     | 
    
         
            +
                    ft.check_path(root_path)
         
     | 
| 
      
 41 
     | 
    
         
            +
                    r.sort
         
     | 
| 
       32 
42 
     | 
    
         
             
                  end
         
     | 
| 
       33 
43 
     | 
    
         
             
                end
         
     | 
| 
       34 
44 
     | 
    
         
             
              end
         
     | 
| 
         @@ -0,0 +1,42 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'ehbrs_ruby_utils/core_ext'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'ehbrs_ruby_utils/music/lyrics_book/resource'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module EhbrsRubyUtils
         
     | 
| 
      
 7 
     | 
    
         
            +
              module Music
         
     | 
| 
      
 8 
     | 
    
         
            +
                class LyricsBook
         
     | 
| 
      
 9 
     | 
    
         
            +
                  class Album < ::EhbrsRubyUtils::Music::LyricsBook::Resource
         
     | 
| 
      
 10 
     | 
    
         
            +
                    enable_simple_cache
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                    def book
         
     | 
| 
      
 13 
     | 
    
         
            +
                      parent
         
     | 
| 
      
 14 
     | 
    
         
            +
                    end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                    def first_previous
         
     | 
| 
      
 17 
     | 
    
         
            +
                      previous.if_present { |v| v.songs.last }
         
     | 
| 
      
 18 
     | 
    
         
            +
                    end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                    def valid?
         
     | 
| 
      
 21 
     | 
    
         
            +
                      songs.any?
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                    def header_title
         
     | 
| 
      
 25 
     | 
    
         
            +
                      "#{songs.first.number}-#{songs.last.number} | #{artist} | #{title}"
         
     | 
| 
      
 26 
     | 
    
         
            +
                    end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                    def artist
         
     | 
| 
      
 29 
     | 
    
         
            +
                      songs.lazy.map { |v| v.tag.artist }.find(&:present?)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                    def title
         
     | 
| 
      
 33 
     | 
    
         
            +
                      songs.lazy.map { |v| v.tag.album }.find(&:present?)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    def songs_uncached
         
     | 
| 
      
 37 
     | 
    
         
            +
                      ::EhbrsRubyUtils::Music::LyricsBook::Song.create_list(self, path.children)
         
     | 
| 
      
 38 
     | 
    
         
            +
                    end
         
     | 
| 
      
 39 
     | 
    
         
            +
                  end
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
      
 42 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,64 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'ehbrs_ruby_utils/core_ext'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module EhbrsRubyUtils
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Music
         
     | 
| 
      
 7 
     | 
    
         
            +
                class LyricsBook
         
     | 
| 
      
 8 
     | 
    
         
            +
                  class Resource
         
     | 
| 
      
 9 
     | 
    
         
            +
                    class << self
         
     | 
| 
      
 10 
     | 
    
         
            +
                      def create_list(parent, files)
         
     | 
| 
      
 11 
     | 
    
         
            +
                        r = files.sort.map { |path| new(parent, path) }.select(&:valid?)
         
     | 
| 
      
 12 
     | 
    
         
            +
                        previous = parent.first_previous
         
     | 
| 
      
 13 
     | 
    
         
            +
                        r.map do |e|
         
     | 
| 
      
 14 
     | 
    
         
            +
                          e.reset_cache
         
     | 
| 
      
 15 
     | 
    
         
            +
                          e.previous = previous
         
     | 
| 
      
 16 
     | 
    
         
            +
                          previous = e
         
     | 
| 
      
 17 
     | 
    
         
            +
                        end
         
     | 
| 
      
 18 
     | 
    
         
            +
                      end
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                    enable_simple_cache
         
     | 
| 
      
 22 
     | 
    
         
            +
                    include ::Comparable
         
     | 
| 
      
 23 
     | 
    
         
            +
                    common_constructor :parent, :path
         
     | 
| 
      
 24 
     | 
    
         
            +
                    attr_accessor :previous
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                    def filename
         
     | 
| 
      
 27 
     | 
    
         
            +
                      path.relative_path_from(parent.path)
         
     | 
| 
      
 28 
     | 
    
         
            +
                    end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                    def <=>(other)
         
     | 
| 
      
 31 
     | 
    
         
            +
                      path <=> other.path
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                    def link_to_header
         
     | 
| 
      
 35 
     | 
    
         
            +
                      "<a href=\"\##{header_id}\" id=\"#{index_id}\">#{header_title}</a>"
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    def index_id
         
     | 
| 
      
 39 
     | 
    
         
            +
                      "index_#{header_id}"
         
     | 
| 
      
 40 
     | 
    
         
            +
                    end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                    def header_id
         
     | 
| 
      
 43 
     | 
    
         
            +
                      header_title.variableize
         
     | 
| 
      
 44 
     | 
    
         
            +
                    end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                    def header_index
         
     | 
| 
      
 47 
     | 
    
         
            +
                      parent.header_index + 1
         
     | 
| 
      
 48 
     | 
    
         
            +
                    end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                    def output_main
         
     | 
| 
      
 51 
     | 
    
         
            +
                      ::EhbrsRubyUtils::Music::LyricsBook::Resource.erb_template('main.html.erb', binding)
         
     | 
| 
      
 52 
     | 
    
         
            +
                    end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                    def output_index
         
     | 
| 
      
 55 
     | 
    
         
            +
                      erb_template('index.html.erb')
         
     | 
| 
      
 56 
     | 
    
         
            +
                    end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                    def type
         
     | 
| 
      
 59 
     | 
    
         
            +
                      self.class.name.demodulize.underscore
         
     | 
| 
      
 60 
     | 
    
         
            +
                    end
         
     | 
| 
      
 61 
     | 
    
         
            +
                  end
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
              end
         
     | 
| 
      
 64 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,68 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'ehbrs_ruby_utils/core_ext'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'ehbrs_ruby_utils/music/lyrics_book/resource'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module EhbrsRubyUtils
         
     | 
| 
      
 7 
     | 
    
         
            +
              module Music
         
     | 
| 
      
 8 
     | 
    
         
            +
                class LyricsBook
         
     | 
| 
      
 9 
     | 
    
         
            +
                  class Song < ::EhbrsRubyUtils::Music::LyricsBook::Resource
         
     | 
| 
      
 10 
     | 
    
         
            +
                    enable_simple_cache
         
     | 
| 
      
 11 
     | 
    
         
            +
                    delegate :book, to: :album
         
     | 
| 
      
 12 
     | 
    
         
            +
                    delegate :provider, to: :book
         
     | 
| 
      
 13 
     | 
    
         
            +
                    delegate :tag, :to_s, to: :container
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    def album
         
     | 
| 
      
 16 
     | 
    
         
            +
                      parent
         
     | 
| 
      
 17 
     | 
    
         
            +
                    end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                    def lyrics
         
     | 
| 
      
 20 
     | 
    
         
            +
                      fetch_lyrics unless lyrics_cached?
         
     | 
| 
      
 21 
     | 
    
         
            +
                      cached_lyrics
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                    def valid?
         
     | 
| 
      
 25 
     | 
    
         
            +
                      tag.present?
         
     | 
| 
      
 26 
     | 
    
         
            +
                    end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                    def lyrics_cached?
         
     | 
| 
      
 29 
     | 
    
         
            +
                      lyrics_cache.cached?
         
     | 
| 
      
 30 
     | 
    
         
            +
                    end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                    def cached_lyrics
         
     | 
| 
      
 33 
     | 
    
         
            +
                      ::YAML.load_file(lyrics_cache.content_path)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    def header_title
         
     | 
| 
      
 37 
     | 
    
         
            +
                      "#{number} - #{title}"
         
     | 
| 
      
 38 
     | 
    
         
            +
                    end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                    delegate :title, to: :tag
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                    private
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                    def container_uncached
         
     | 
| 
      
 45 
     | 
    
         
            +
                      ::EhbrsRubyUtils::Videos::Container.new(path)
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                    def fetch_lyrics
         
     | 
| 
      
 49 
     | 
    
         
            +
                      lyrics = fetched_lyrics
         
     | 
| 
      
 50 
     | 
    
         
            +
                      lyrics_cache.write(lyrics.to_yaml)
         
     | 
| 
      
 51 
     | 
    
         
            +
                    end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                    def fetched_lyrics
         
     | 
| 
      
 54 
     | 
    
         
            +
                      container.lyrics_by_provider(provider)
         
     | 
| 
      
 55 
     | 
    
         
            +
                    end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                    def lyrics_cache
         
     | 
| 
      
 58 
     | 
    
         
            +
                      (%w[artist album title].map { |k| tag.send(k) } + [provider.identifier])
         
     | 
| 
      
 59 
     | 
    
         
            +
                        .inject(fs_cache) { |a, e| a.child(e) }
         
     | 
| 
      
 60 
     | 
    
         
            +
                    end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                    def number_uncached
         
     | 
| 
      
 63 
     | 
    
         
            +
                      previous.if_present(0, &:number) + 1
         
     | 
| 
      
 64 
     | 
    
         
            +
                    end
         
     | 
| 
      
 65 
     | 
    
         
            +
                  end
         
     | 
| 
      
 66 
     | 
    
         
            +
                end
         
     | 
| 
      
 67 
     | 
    
         
            +
              end
         
     | 
| 
      
 68 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,65 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'ehbrs_ruby_utils/core_ext'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module EhbrsRubyUtils
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Music
         
     | 
| 
      
 7 
     | 
    
         
            +
                class LyricsBook
         
     | 
| 
      
 8 
     | 
    
         
            +
                  require_sub __FILE__
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  DEFAULT_PROVIDER_NAME = 'lyrics.com'
         
     | 
| 
      
 11 
     | 
    
         
            +
                  DEFAULT_TITLE = 'Letras de músicas'
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  enable_listable
         
     | 
| 
      
 14 
     | 
    
         
            +
                  lists.add_symbol :option, :provider_name, :title
         
     | 
| 
      
 15 
     | 
    
         
            +
                  enable_simple_cache
         
     | 
| 
      
 16 
     | 
    
         
            +
                  common_constructor :source_dir, :options, default: [{}] do
         
     | 
| 
      
 17 
     | 
    
         
            +
                    self.source_dir = source_dir.to_pathname
         
     | 
| 
      
 18 
     | 
    
         
            +
                    self.options = self.class.lists.option.hash_keys_validate!(options)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  def first_previous
         
     | 
| 
      
 22 
     | 
    
         
            +
                    nil
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  def header_index
         
     | 
| 
      
 26 
     | 
    
         
            +
                    1
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  def output
         
     | 
| 
      
 30 
     | 
    
         
            +
                    erb_template('main.html.erb')
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  def path
         
     | 
| 
      
 34 
     | 
    
         
            +
                    source_dir
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  def title
         
     | 
| 
      
 38 
     | 
    
         
            +
                    options[OPTION_TITLE].if_present(DEFAULT_TITLE)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                  private
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  def albums_directories_uncached
         
     | 
| 
      
 44 
     | 
    
         
            +
                    r = []
         
     | 
| 
      
 45 
     | 
    
         
            +
                    t = ::EacFs::Traverser.new
         
     | 
| 
      
 46 
     | 
    
         
            +
                    t.recursive = true
         
     | 
| 
      
 47 
     | 
    
         
            +
                    t.check_directory = ->(directory) { r << directory }
         
     | 
| 
      
 48 
     | 
    
         
            +
                    t.check_path(source_dir)
         
     | 
| 
      
 49 
     | 
    
         
            +
                    r
         
     | 
| 
      
 50 
     | 
    
         
            +
                  end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                  def albums_uncached
         
     | 
| 
      
 53 
     | 
    
         
            +
                    ::EhbrsRubyUtils::Music::LyricsBook::Album.create_list(self, albums_directories)
         
     | 
| 
      
 54 
     | 
    
         
            +
                  end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                  def provider_uncached
         
     | 
| 
      
 57 
     | 
    
         
            +
                    ::UltimateLyrics::Provider.by_name(provider_name)
         
     | 
| 
      
 58 
     | 
    
         
            +
                  end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                  def provider_name
         
     | 
| 
      
 61 
     | 
    
         
            +
                    options[OPTION_PROVIDER_NAME].if_present(DEFAULT_PROVIDER_NAME)
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
              end
         
     | 
| 
      
 65 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <!doctype html>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <html>
         
     | 
| 
      
 3 
     | 
    
         
            +
              <head>
         
     | 
| 
      
 4 
     | 
    
         
            +
                <title><%= title %></title>
         
     | 
| 
      
 5 
     | 
    
         
            +
                <meta charset="utf-8">
         
     | 
| 
      
 6 
     | 
    
         
            +
                <meta name="viewport" content="width=device-width, initial-scale=1">
         
     | 
| 
      
 7 
     | 
    
         
            +
                <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
         
     | 
| 
      
 8 
     | 
    
         
            +
                <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
         
     | 
| 
      
 9 
     | 
    
         
            +
                <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css">
         
     | 
| 
      
 10 
     | 
    
         
            +
                <style>
         
     | 
| 
      
 11 
     | 
    
         
            +
                  <%= template.child('custom_style.css').content %>
         
     | 
| 
      
 12 
     | 
    
         
            +
                </style>
         
     | 
| 
      
 13 
     | 
    
         
            +
              </head>
         
     | 
| 
      
 14 
     | 
    
         
            +
              <body>
         
     | 
| 
      
 15 
     | 
    
         
            +
                <div class="container" >
         
     | 
| 
      
 16 
     | 
    
         
            +
                  <h1><%= title %></h1>
         
     | 
| 
      
 17 
     | 
    
         
            +
                  <h2>Índice</h2>
         
     | 
| 
      
 18 
     | 
    
         
            +
                  <%= erb_template('index.html.erb')  %>
         
     | 
| 
      
 19 
     | 
    
         
            +
                  <% albums.each do |album| %>
         
     | 
| 
      
 20 
     | 
    
         
            +
                    <%= album.output_main %>
         
     | 
| 
      
 21 
     | 
    
         
            +
                  <% end %>
         
     | 
| 
      
 22 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 23 
     | 
    
         
            +
              </body>
         
     | 
| 
      
 24 
     | 
    
         
            +
            </html>
         
     | 
| 
         @@ -0,0 +1,8 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <div class="<%= type %>">
         
     | 
| 
      
 2 
     | 
    
         
            +
              <h<%= header_index %> id='<%= header_id %>' >
         
     | 
| 
      
 3 
     | 
    
         
            +
                <%= header_title %>
         
     | 
| 
      
 4 
     | 
    
         
            +
                <a href="#<%= index_id %>" ><i class="bi-arrow-up-circle-fill"></i></a>
         
     | 
| 
      
 5 
     | 
    
         
            +
              </h<%= header_index %>>
         
     | 
| 
      
 6 
     | 
    
         
            +
              <span class="filename"><%= filename %></span>
         
     | 
| 
      
 7 
     | 
    
         
            +
              <%= erb_template('inner.html.erb') %>
         
     | 
| 
      
 8 
     | 
    
         
            +
            </div>
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ehbrs_ruby_utils
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.13.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Eduardo H. Bogoni
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2021- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-11-17 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: aranha-parsers
         
     | 
| 
         @@ -50,6 +50,20 @@ dependencies: 
     | 
|
| 
       50 
50 
     | 
    
         
             
                - - ">="
         
     | 
| 
       51 
51 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       52 
52 
     | 
    
         
             
                    version: 0.3.2
         
     | 
| 
      
 53 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 54 
     | 
    
         
            +
              name: eac_fs
         
     | 
| 
      
 55 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 56 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 57 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 58 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 59 
     | 
    
         
            +
                    version: '0.5'
         
     | 
| 
      
 60 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 61 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 62 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 63 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 64 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 65 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 66 
     | 
    
         
            +
                    version: '0.5'
         
     | 
| 
       53 
67 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       54 
68 
     | 
    
         
             
              name: eac_ruby_utils
         
     | 
| 
       55 
69 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -149,6 +163,7 @@ files: 
     | 
|
| 
       149 
163 
     | 
    
         
             
            - ".rspec"
         
     | 
| 
       150 
164 
     | 
    
         
             
            - ".rubocop.yml"
         
     | 
| 
       151 
165 
     | 
    
         
             
            - lib/ehbrs_ruby_utils.rb
         
     | 
| 
      
 166 
     | 
    
         
            +
            - lib/ehbrs_ruby_utils/core_ext.rb
         
     | 
| 
       152 
167 
     | 
    
         
             
            - lib/ehbrs_ruby_utils/executables.rb
         
     | 
| 
       153 
168 
     | 
    
         
             
            - lib/ehbrs_ruby_utils/finances/bb_browser/docker_image.rb
         
     | 
| 
       154 
169 
     | 
    
         
             
            - lib/ehbrs_ruby_utils/fs.rb
         
     | 
| 
         @@ -157,6 +172,12 @@ files: 
     | 
|
| 
       157 
172 
     | 
    
         
             
            - lib/ehbrs_ruby_utils/fs/selected/build.rb
         
     | 
| 
       158 
173 
     | 
    
         
             
            - lib/ehbrs_ruby_utils/fs/selected/build_file.rb
         
     | 
| 
       159 
174 
     | 
    
         
             
            - lib/ehbrs_ruby_utils/music.rb
         
     | 
| 
      
 175 
     | 
    
         
            +
            - lib/ehbrs_ruby_utils/music/lyrics_book.rb
         
     | 
| 
      
 176 
     | 
    
         
            +
            - lib/ehbrs_ruby_utils/music/lyrics_book/album.rb
         
     | 
| 
      
 177 
     | 
    
         
            +
            - lib/ehbrs_ruby_utils/music/lyrics_book/resource.rb
         
     | 
| 
      
 178 
     | 
    
         
            +
            - lib/ehbrs_ruby_utils/music/lyrics_book/song.rb
         
     | 
| 
      
 179 
     | 
    
         
            +
            - lib/ehbrs_ruby_utils/patches.rb
         
     | 
| 
      
 180 
     | 
    
         
            +
            - lib/ehbrs_ruby_utils/patches/object.rb
         
     | 
| 
       160 
181 
     | 
    
         
             
            - lib/ehbrs_ruby_utils/patches/object/template.rb
         
     | 
| 
       161 
182 
     | 
    
         
             
            - lib/ehbrs_ruby_utils/version.rb
         
     | 
| 
       162 
183 
     | 
    
         
             
            - lib/ehbrs_ruby_utils/videos.rb
         
     | 
| 
         @@ -188,6 +209,12 @@ files: 
     | 
|
| 
       188 
209 
     | 
    
         
             
            - template/ehbrs_ruby_utils/finances/bb_browser/docker_image/README.md
         
     | 
| 
       189 
210 
     | 
    
         
             
            - template/ehbrs_ruby_utils/finances/bb_browser/docker_image/context/firefox.service
         
     | 
| 
       190 
211 
     | 
    
         
             
            - template/ehbrs_ruby_utils/finances/bb_browser/docker_image/context/startbrowser.sh
         
     | 
| 
      
 212 
     | 
    
         
            +
            - template/ehbrs_ruby_utils/music/lyrics_book/album/inner.html.erb
         
     | 
| 
      
 213 
     | 
    
         
            +
            - template/ehbrs_ruby_utils/music/lyrics_book/custom_style.css
         
     | 
| 
      
 214 
     | 
    
         
            +
            - template/ehbrs_ruby_utils/music/lyrics_book/index.html.erb
         
     | 
| 
      
 215 
     | 
    
         
            +
            - template/ehbrs_ruby_utils/music/lyrics_book/main.html.erb
         
     | 
| 
      
 216 
     | 
    
         
            +
            - template/ehbrs_ruby_utils/music/lyrics_book/resource/main.html.erb
         
     | 
| 
      
 217 
     | 
    
         
            +
            - template/ehbrs_ruby_utils/music/lyrics_book/song/inner.html.erb
         
     | 
| 
       191 
218 
     | 
    
         
             
            homepage: 
         
     | 
| 
       192 
219 
     | 
    
         
             
            licenses: []
         
     | 
| 
       193 
220 
     | 
    
         
             
            metadata: {}
         
     |