describe Logic::And do include Logic describe '#compute' do it { expect(and_from([true, true, true]).compute).to be true } it { expect(and_from([true, true, false]).compute).to be false } end describe '#to_s' do it do expect(and_from([true, false, true]).to_s).to eq "(true && false && true)" end end def and_from(boolean_to_constants) ds_and(boolean_to_constants.map { |b| constant(b) }) end end