Sha256: d66189bdd096b3bfd1d562e0626d148169bc477e641cdb972122c14e2879461e

Contents?: true

Size: 1.52 KB

Versions: 20

Compression:

Stored size: 1.52 KB

Contents

require 'time'

def silence_warnings
  old_verbose, $VERBOSE = $VERBOSE, nil
  yield
ensure
  $VERBOSE = old_verbose
end

class Object
  def blank?
    respond_to?(:empty?) ? empty? : !self
  end

  def present?
    !blank?
  end

  def try(m, *args)
    send(m, *args) if respond_to?(m)
  end
end

class NilClass
  def try(*args)
  end
end

class String
  def underscore
    word = self.dup
    word.gsub!('::', '/')
    word.gsub!(/(?:([A-Za-z\d])|^)((?=a)b)(?=\b|[^a-z])/) { "#{$1}#{$1 && '_'}#{$2.downcase}" }
    word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
    word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
    word.tr!("-", "_")
    word.downcase!
    word
  end

  def truncate(l)
    self[0..l]
  end
end

class Array
  def extract_options!
    self[-1].is_a?(Hash) ? self.pop : {}
  end
end

class Numeric
  def percents
    self
  end
  alias :percent :percents

  def seconds
    self
  end
  alias :second :seconds

  def minutes
    self * 60
  end
  alias :minute :minutes

  def hours
    self * 3600
  end
  alias :hour :hours

  def days
    self * 86400
  end
  alias :day :days

  def weeks
    self * 86400 * 7
  end
  alias :week :weeks

  def ago
    ::Time.now - self
  end

  def bytes
    self
  end
  alias :byte :bytes

  def kilobytes
    self * 1024
  end
  alias :kilobyte :kilobytes

  def megabytes
    self * 1024 * 1024
  end
  alias :megabyte :megabytes

  def gigabytes
    self * 1024 * 1024 * 1024
  end
  alias :gigabyte :gigabytes

  def terabytes
    self * 1024 * 1024 * 1024 * 1024
  end
  alias :terabyte :terabytes
end

Version data entries

20 entries across 20 versions & 3 rubygems

Version Path
eye-0.8.pre2 lib/eye/utils/mini_active_support.rb
eye-0.8.pre lib/eye/utils/mini_active_support.rb
eye-0.7 lib/eye/utils/mini_active_support.rb
eye-0.7.pre lib/eye/utils/mini_active_support.rb
eye-0.6.4 lib/eye/utils/mini_active_support.rb
eye-0.6.3 lib/eye/utils/mini_active_support.rb
eye-0.6.2 lib/eye/utils/mini_active_support.rb
eye-0.6.2.pre lib/eye/utils/mini_active_support.rb
ace-eye-0.6.5 lib/eye/utils/mini_active_support.rb
ace-eye-0.6.4 lib/eye/utils/mini_active_support.rb
eye-0.6.1 lib/eye/utils/mini_active_support.rb
ace-eye-0.6.3 lib/eye/utils/mini_active_support.rb
ace-eye-0.6.2 lib/eye/utils/mini_active_support.rb
ace-eye-0.6.1 lib/eye/utils/mini_active_support.rb
eye-0.6 lib/eye/utils/mini_active_support.rb
reel-eye-0.5.2.1 lib/eye/utils/mini_active_support.rb
reel-eye-0.5.2 lib/eye/utils/mini_active_support.rb
eye-0.5.2 lib/eye/utils/mini_active_support.rb
reel-eye-0.5.1 lib/eye/utils/mini_active_support.rb
eye-0.5.1 lib/eye/utils/mini_active_support.rb