An authentication server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

57 lines
1.3 KiB

require "json"
enum Country
FR,
NL,
DE,
IT,
EI,
GB,
end
class Address
JSON.mapping(
name: String,
address1: String,
address2: {type: String, nilable: true},
postcode: String,
city: String,
country: Country,
is_default: {type: Bool, default: false},
)
def <=> (other : Address)
cmp = @name<=>other.name
if cmp==0
cmp = @address1<=>other.address1
if cmp==0
if @address2.nil?
if(other.address2.nil?)
cmp=0
elsif
cmp=-1
end
elsif other.address2.nil?
cmp=1
else
cmp = @address2.not_nil!<=>other.address2.not_nil!
end
if cmp==0
cmp = @postcode<=>other.postcode
if cmp==0
cmp = @city<=>other.city
if cmp==0
cmp = @country<=>other.country
end
end
end
end
end
return cmp
end
def == (other : Address)
0==(self<=>other)
end
def != (other : Address)
0!=(self<=>other)
end
end