|
|
- 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
|