Sha256: a7c56a15ea6ba5697c7ee8fb4287672a243fe6b871e955c937d54121b3a8868c

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

module Stratify
  module ITunes
    class Presenter
      def initialize(activity)
        @activity = activity
      end

      def name
        @activity.name.blank? ? 'Untitled' : @activity.name
      end

      def summary
        return name if movie?
        join_fields_with_separator name, artist
      end

      def details
        if tv_show?
          join_fields_with_separator season_number, episode_number, year
        else
          join_fields_with_separator album, year, genre
        end
      end

      def season_number
        return unless @activity.season_number
        "Season #{@activity.season_number}"
      end

      def episode_number
        number = @activity.episode_number || @activity.track_number
        return unless number
        "Episode #{number}"
      end

      def method_missing(*args)
        @activity.send(*args)
      end

      private

      def separator
        "\u2022"
      end

      def join_fields_with_separator(*fields)
        fields.reject(&:blank?).join(" #{separator} ")
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
stratify-itunes-0.1.4.2 lib/stratify-itunes/presenter.rb
stratify-itunes-0.1.4.1 lib/stratify-itunes/presenter.rb
stratify-itunes-0.1.4 lib/stratify-itunes/presenter.rb