Module: Useful::RubyExtensions::Object::FromActivesupport

Defined in:
lib/useful/ruby_extensions/object.rb

Instance Method Summary collapse

Instance Method Details

#blank?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/useful/ruby_extensions/object.rb', line 55

def blank?
  self.nil? || self.false? || (self.respond_to?(:empty?) ? self.empty? : false)
end

#returning(value) {|value| ... } ⇒ Object

Returns value after yielding value to the block. This simplifies the process of constructing an object, performing work on the object, and then returning the object from a method. It is a Ruby-ized realization of the K combinator, courtesy of Mikael Brockman.

Examples

# Without returning
def foo
  values = []
  values << "bar"
  values << "baz"
  return values
end

foo # => ['bar', 'baz']

# returning with a local variable
def foo
  returning values = [] do
    values << 'bar'
    values << 'baz'
  end
end

foo # => ['bar', 'baz']

# returning with a block argument
def foo
  returning [] do |values|
    values << 'bar'
    values << 'baz'
  end
end

foo # => ['bar', 'baz']

Yields:

  • (value)


95
96
97
98
# File 'lib/useful/ruby_extensions/object.rb', line 95

def returning(value)
  yield(value)
  value
end

#tap {|_self| ... } ⇒ Object

Yields x to the block, and then returns x. The primary purpose of this method is to “tap into” a method chain, in order to perform operations on intermediate results within the chain.

(1..10).tap { |x| puts "original: #{x.inspect}" }.to_a.
  tap    { |x| puts "array: #{x.inspect}" }.
  select { |x| x%2 == 0 }.
  tap    { |x| puts "evens: #{x.inspect}" }.
  map    { |x| x*x }.
  tap    { |x| puts "squares: #{x.inspect}" }

Yields:

  • (_self)

Yield Parameters:



110
111
112
113
# File 'lib/useful/ruby_extensions/object.rb', line 110

def tap
  yield self
  self
end