Sha256: 3ea5354bb2787139546361040dc02cebd71df782d8d16de89b583c9edf62283f

Contents?: true

Size: 1.48 KB

Versions: 13

Compression:

Stored size: 1.48 KB

Contents

# frozen_string_literal: true

require 'aranha/default_processor'
require 'ehbrs_ruby_utils/videos/opensubtitles/processors/episode'
require 'ehbrs_ruby_utils/videos/opensubtitles/processors/title'
require 'eac_ruby_utils/core_ext'

module EhbrsRubyUtils
  module Videos
    module Opensubtitles
      module Processors
        class SubtitlesProvider < ::Aranha::DefaultProcessor
          enable_simple_cache

          delegate :perform, :subtitles, to: :sub_processor

          # @return [Boolean]
          def episode?
            title_parser.data[:episodes].if_present(true, &:empty?)
          end

          private

          # @return [Class]
          def sub_processor_class
            if episode?
              ::EhbrsRubyUtils::Videos::Opensubtitles::Processors::Episode
            else
              ::EhbrsRubyUtils::Videos::Opensubtitles::Processors::Title
            end
          end

          # @return [EhbrsRubyUtils::Videos::Opensubtitles::Parsers::Episode]
          def episode_parser
            ::EhbrsRubyUtils::Videos::Opensubtitles::Parsers::Episode.new(source_uri)
          end

          # @return [EhbrsRubyUtils::Videos::Opensubtitles::Parsers::Title]
          def title_parser
            ::EhbrsRubyUtils::Videos::Opensubtitles::Parsers::Title.new(source_uri)
          end

          # @return [Aranha::DefaultProcessor]
          def sub_processor_uncached
            sub_processor_class.new(source_uri, extra_data)
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
ehbrs_ruby_utils-0.44.3 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.44.2 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.44.1 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.44.0 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.41.1 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.41.0 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.40.0 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.39.0 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.38.0 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.37.0 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.36.1 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.36.0 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb
ehbrs_ruby_utils-0.35.0 lib/ehbrs_ruby_utils/videos/opensubtitles/processors/subtitles_provider.rb