Sha256: c212d263958667ee6d8b608a49b7f9f64a867710fe5d061ba60ec678061872ff

Contents?: true

Size: 634 Bytes

Versions: 19

Compression:

Stored size: 634 Bytes

Contents

# frozen_string_literal: true

class Object

  def blank?
    object = self
    object = object.strip if respond_to?(:strip)
    return object.empty? if respond_to?(:empty?)

    !object
  end

  def deep_dup
    duplicable? ? dup : self
  end

  def duplicable?
    true
  end

  def present?
    !blank?
  end

  def presence
    self if present?
  end

  def try(*obj, &block)
    try!(*obj, &block) if obj.empty? || respond_to?(obj.first)
  end

  def try!(*obj, &block)
    if obj.empty? && defined?(yield)
      block.arity.zero? ? instance_eval(&block) : yield(self)
    else
      public_send(*obj, &block)
    end
  end

end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
lite-ruby-1.3.1 lib/lite/ruby/safe/object.rb
lite-ruby-1.3.0 lib/lite/ruby/safe/object.rb
lite-ruby-1.2.0 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.15 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.14 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.13 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.12 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.11 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.10 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.9 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.8 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.7 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.6 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.5 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.4 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.3 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.2 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.1 lib/lite/ruby/safe/object.rb
lite-ruby-1.1.0 lib/lite/ruby/safe/object.rb