Sha256: 0aa26bc7d6f3115b1f432bfab8692daa2940711f33d8e3de5f23ae13b6bf49c7

Contents?: true

Size: 1.07 KB

Versions: 41

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module Pennyworth
  module Serializers
    # Serializes a project into a compatible format for parsing within Alfred script filters.
    class Project
      def initialize presenter
        @presenter = presenter
      end

      def to_h
        {
          uid: presenter.id,
          title: presenter.label,
          subtitle: presenter.subtitle,
          arg: site_url,
          quicklookurl: site_url,
          mods: modifications,
          text:
        }
      end

      private

      attr_reader :presenter

      def modifications
        {
          alt: modification(presenter.source_url, "View source."),
          cmd: modification(presenter.issues_url, "View issues."),
          control: modification(presenter.versions_url, "View versions.")
        }
      end

      def modification argument, subtitle
        {
          subtitle:,
          arg: argument
        }
      end

      def text
        {
          copy: site_url,
          largetype: site_url
        }
      end

      def site_url = presenter.site_url
    end
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
pennyworth-17.3.0 lib/pennyworth/serializers/project.rb
pennyworth-17.2.0 lib/pennyworth/serializers/project.rb
pennyworth-17.1.0 lib/pennyworth/serializers/project.rb
pennyworth-17.0.0 lib/pennyworth/serializers/project.rb
pennyworth-16.7.0 lib/pennyworth/serializers/project.rb
pennyworth-16.5.0 lib/pennyworth/serializers/project.rb
pennyworth-16.4.0 lib/pennyworth/serializers/project.rb
pennyworth-16.3.0 lib/pennyworth/serializers/project.rb
pennyworth-16.2.0 lib/pennyworth/serializers/project.rb
pennyworth-16.1.0 lib/pennyworth/serializers/project.rb
pennyworth-16.0.0 lib/pennyworth/serializers/project.rb
pennyworth-15.4.1 lib/pennyworth/serializers/project.rb
pennyworth-15.4.0 lib/pennyworth/serializers/project.rb
pennyworth-15.3.0 lib/pennyworth/serializers/project.rb
pennyworth-15.2.0 lib/pennyworth/serializers/project.rb
pennyworth-15.1.1 lib/pennyworth/serializers/project.rb
pennyworth-15.1.0 lib/pennyworth/serializers/project.rb
pennyworth-15.0.3 lib/pennyworth/serializers/project.rb
pennyworth-15.0.2 lib/pennyworth/serializers/project.rb
pennyworth-15.0.1 lib/pennyworth/serializers/project.rb