Sha256: 70f4f6168175997c2b635a007c8b8ff0be891f495c2f6a3b64592d42c96488c6

Contents?: true

Size: 1003 Bytes

Versions: 11

Compression:

Stored size: 1003 Bytes

Contents

# frozen_string_literal: true

# String helpers
class String
  def nil_if_missing
    if self =~ /missing value/
      return nil
    else
      self
    end
  end

  def split_hook
    elements = split(/\|\|/)
    {
      name: elements[0].nil_if_missing,
      url: elements[1].nil_if_missing,
      path: elements[2].nil_if_missing
    }
  end

  def split_hooks
    split(/\^\^/).map(&:split_hook)
  end

  def valid_hook
    if File.exist?(self)
      File.expand_path(self)
    elsif self =~ /^\[.*?\]\((.*?)\)$/
      mdlink = $1
      mdlink.valid_hook
    else
      self
    end
  end

  def valid_hook!
    replace valid_hook
  end

  # Capitalize only if no uppercase
  def cap
    if self !~ /[A-Z]/
      capitalize
    else
      self
    end
  end

  def cap!
    replace cap
  end

  def clip
    res = `/bin/echo -n #{Shellwords.escape(self)} | pbcopy`.strip
    raise 'Failed to copy to clipboard' unless res.empty?

    true
  end

  def escape_quotes
    gsub(/"/, '\\"')
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
hookapp-2.1.1 lib/hook/string.rb
hookapp-2.1.0 lib/hook/string.rb
hookapp-2.0.16 lib/hook/string.rb
hookapp-2.0.15 lib/hook/string.rb
hookapp-2.0.13 lib/hook/string.rb
hookapp-2.0.12 lib/hook/string.rb
hookapp-2.0.11 lib/hook/string.rb
hookapp-2.0.10 lib/hook/string.rb
hookapp-2.0.9 lib/hook/string.rb
hookapp-2.0.8 lib/hook/string.rb
hookapp-2.0.7 lib/hook/string.rb