Sha256: 0e0b22a9cba10cdf17c4d5e196489f9f64cb7dcbac385b2b3002bfb76494ace1

Contents?: true

Size: 842 Bytes

Versions: 1

Compression:

Stored size: 842 Bytes

Contents

require 'pp'

module Kernel
  def self._g_function(&block)
    @_g_function = block if block
    @_g_function
  end

  def g(*args)
    messages = args.dup

    if messages.empty?
      if block_given?
        messages << yield(self)
      else
        messages << self
      end
    end

    messages.each do |i|
      text = i.is_a?(String) ? i : i.pretty_inspect
      if Kernel._g_function
        Kernel._g_function.call($0, 'g', text)
      else
        p text
      end
    end

    if args.empty?
      self
    elsif args.size == 1
      args.first
    else
      args
    end
  end
end

catch(:break) do
  %w(terminal-notifier ruby_gntp).each do |lib|
    begin
      require lib
      require_relative "g/#{lib}"
      throw :break
    rescue LoadError
    end
  end
  warn 'Please install `terminal-notifier` or `ruby_gntp`.'
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
g-1.7.1 lib/g.rb