Sha256: 2bcc5e056a43fb53d0b7429ec5d75f160a4f2d12cf6a86376cb80c7bef53b5b0

Contents?: true

Size: 777 Bytes

Versions: 7

Compression:

Stored size: 777 Bytes

Contents

# frozen_string_literal: true

require "dry/monads"

module SublimeTextKit
  module Configuration
    module Transformers
      # Transforms user directory into fully qualified path based on home directory.
      class UserDir
        include Dry::Monads[:result]

        DEFAULT = "Library/Application Support/Sublime Text/Packages/User"

        def initialize key = :user_dir, default: DEFAULT
          @key = key
          @default = default
        end

        def call content
          return Success content unless content.key? :home

          Pathname(content[:home]).join(default)
                                  .then { |value| Success content.merge!(key => value) }
        end

        private

        attr_reader :key, :default
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sublime_text_kit-16.3.0 lib/sublime_text_kit/configuration/transformers/user_dir.rb
sublime_text_kit-16.2.0 lib/sublime_text_kit/configuration/transformers/user_dir.rb
sublime_text_kit-16.1.0 lib/sublime_text_kit/configuration/transformers/user_dir.rb
sublime_text_kit-16.0.0 lib/sublime_text_kit/configuration/transformers/user_dir.rb
sublime_text_kit-15.2.1 lib/sublime_text_kit/configuration/transformers/user_dir.rb
sublime_text_kit-15.2.0 lib/sublime_text_kit/configuration/transformers/user_dir.rb
sublime_text_kit-15.1.0 lib/sublime_text_kit/configuration/transformers/user_dir.rb