Sha256: ae356f8a84cecb1c3d9e81ac9f2ace7164d1126ae883c187f4c1d2dd89b562a3

Contents?: true

Size: 1.02 KB

Versions: 7

Compression:

Stored size: 1.02 KB

Contents

require_relative '../spec_helper'

describe 'Predicates' do
  it 'should allow regex matching' do
    expect(sequence('Stacy').find(matches(/Stac/))).to eq(some('Stacy'))
    expect(sequence('Raymond').find(matches(/NotAwesome/))).to eq(none)
  end

  it 'should allow is' do
    expect(sequence('Stuff').find(is('Stuff'))).to eq(some('Stuff'))
    expect(sequence('Stuff').find(equal_to?('Stuff'))).to eq(some('Stuff'))
    expect(sequence('Stuff').find(is('Nothing'))).to eq(none)
  end

  class Person
    attr_reader :name
    attr_reader :age

    def initialize(name, age)
      @name = name
      @age = age
    end
  end
  raymond = Person.new('Raymond', 41)
  mathilda = Person.new('Mathilda', 4)
  age = ->(person) { person.age }

  it 'should allow where' do
    expect(sequence(raymond, mathilda).filter(where(age, greater_than(40)))).to eq(sequence(raymond))
  end

  it 'should be able to negate other predicates using is_not' do
    expect(sequence(raymond).filter(where(age, is_not(greater_than(40))))).to eq(empty)
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
totally_lazy-0.1.53 spec/totally_lazy/predicates_spec.rb
totally_lazy-0.1.52 spec/totally_lazy/predicates_spec.rb
totally_lazy-0.1.51 spec/totally_lazy/predicates_spec.rb
totally_lazy-0.1.50 spec/totally_lazy/predicates_spec.rb
totally_lazy-0.1.49 spec/totally_lazy/predicates_spec.rb
totally_lazy-0.1.48 spec/totally_lazy/predicates_spec.rb
totally_lazy-0.1.47 spec/totally_lazy/predicates_spec.rb