Sha256: c6d8cae2f791134b9e669f66c73fdecae8acf6e3e505cda8eb5bb30fba3e5a82

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

require 'guerrilla_patch/kernel.rb'

describe Kernel do
  
  it 'wraps commnon nil object idiom' do
    test_object = nil
    when_present(test_object) { |t| t }.should == ''
    test_object = 'I am here'
    when_present(test_object) { |t| t }.should == 'I am here'
  end

  it 'takes the block result and concatenates' do
    test_object = 'I am here'
    when_present(test_object) { |t| t * 2 }.should == 'I am hereI am here'
  end

  it 'behaves graceafully when no block is given' do
    test_object = "miki"
    when_present(test_object).should == test_object
  end

  it 'concatenates result to one string' do
    consists_of do |r|
      r.add "AAAAAA"
      r.add "BBBBBB"
    end.should == "AAAAAABBBBBB"
  end

  it 'concatenates result to one string taking care of nil objects' do
    test_object = nil
    consists_of do |r|
      r.always "AAAAAA"
      r.always "BBBBBB"
      r.when_present(test_object) { |to| to << "BABY"}
    end.should == "AAAAAABBBBBB"

    test_object = 'YEAH'
    consists_of do |r|
      r.add "AAAAAA"
      r.add "BBBBBB"
      r.when_present(test_object) { |to| to << "BABY"}
    end.should == "AAAAAABBBBBBYEAHBABY"
  end

  it 'concatenates result when item is true' do
    test_object = nil
    consists_of do |r|
      r.add "AAAAAA"
      r.when(test_object) { "BBBBBB" }
    end.should == "AAAAAA"

    test_object = true
    consists_of do |r|
      r.add "AAAAAA"
      r.when(test_object) { "BBBBBB" }
    end.should == "AAAAAABBBBBB"

    test_object = false
    consists_of do |r|
      r.add "AAAAAA"
      r.when(test_object) { "BBBBBB" }
    end.should == "AAAAAA"

  end

end

describe Array do
  it 'should know how to sum basic array' do
    [1,2,3].sum.should == 6
  end

  it 'should handle the zero elements case' do
    [].sum.should == 0
  end

  it 'can sum by name' do
    apple = stub(:price => 100)
    orange = stub(:price => 200)
    [apple, orange].sum(:price).should == 300
  end

end



Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
guerrilla_patch-2.3.1 spec/guerrilla_patch/kernel_spec.rb