improve constant and empty to_s

This commit is contained in:
simon lehericey 2022-06-27 12:32:00 +02:00
parent dda5bc35ed
commit 04965ac35a
9 changed files with 25 additions and 6 deletions

View file

@ -7,7 +7,16 @@ class Logic::Constant < Logic::Term
def compute(_champs = nil) = @value
def to_s = @value.to_s
def to_s
case @value
when TrueClass
I18n.t('utils.yes')
when FalseClass
I18n.t('utils.no')
else
@value.to_s
end
end
def type
case @value

View file

@ -1,5 +1,5 @@
class Logic::Empty < Logic::Term
def to_s = "empty member"
def to_s = I18n.t('logic.empty')
def type = :empty

View file

@ -0,0 +1,3 @@
en:
logic:
empty: empty member

View file

@ -0,0 +1,3 @@
fr:
logic:
empty: un membre vide

View file

@ -8,7 +8,7 @@ describe Logic::And do
describe '#to_s' do
it do
expect(and_from([true, false, true]).to_s).to eq "(true && false && true)"
expect(and_from([true, false, true]).to_s).to eq "(Oui && Non && Oui)"
end
end

View file

@ -16,7 +16,7 @@ describe Logic::BinaryOperator do
end
describe '#errors' do
it { expect(greater_than(constant(1), constant(true)).errors).to eq(['les types sont incompatibles : (1 > true)']) }
it { expect(greater_than(constant(1), constant(true)).errors).to eq(['les types sont incompatibles : (1 > Oui)']) }
end
end

View file

@ -13,4 +13,8 @@ describe Logic::Constant do
it { expect(empty).to eq(empty) }
it { expect(empty).not_to eq(constant(true)) }
end
describe '#to_s' do
it { expect(empty.to_s).to eq('un membre vide') }
end
end

View file

@ -8,7 +8,7 @@ describe Logic::Eq do
describe '#errors' do
it { expect(ds_eq(constant(true), constant(true)).errors).to be_empty }
it { expect(ds_eq(constant(true), constant(1)).errors).to eq(["les types sont incompatibles : (true == 1)"]) }
it { expect(ds_eq(constant(true), constant(1)).errors).to eq(["les types sont incompatibles : (Oui == 1)"]) }
end
describe '#==' do

View file

@ -8,7 +8,7 @@ describe Logic::Or do
end
describe '#to_s' do
it { expect(or_from([true, false, true]).to_s).to eq "(true || false || true)" }
it { expect(or_from([true, false, true]).to_s).to eq "(Oui || Non || Oui)" }
end
def or_from(boolean_to_constants)