{"body":"MacBook-Pro-de-Fernando:BestTree fernando$ cat Tree.pm6 \nuse Red;\n\nclass X::Tree::ExistsInTheSameArea is Exception {\n    has Rat $.longitude;\n    has Rat $.latitude;\n\n    method message { \"A tree on ($!longitude, $!latitude) was already suggested\" }\n}\n\nmodel Tree {\n    has UInt    $!id            is id;\n    has Rat     $.latitude      is column;\n    has Rat     $.longitude     is column;\n    has Rat     $.height        is column;\n    has Str     $.description   is column;\n\n    ::?CLASS.^add-unique-constraint: { .latitude, .longitude };\n\n    method all-trees {\n        self.^all.sort: -*.height\n    }\n\n    method find-tree(Rat $longitude, Rat $latitude) {\n        self.^find: :$longitude, :$latitude\n    }\n\n    method suggest-tree(Rat $longitude, Rat $latitude, Rat $height, Str $description) {\n        CATCH {\n            when /\"UNIQUE constraint failed\"/ {\n                die X::Tree::ExistsInTheSameArea.new: :$longitude, :$latitude\n            }\n        }\n        self.^create: :$longitude, :$latitude, :$height, :$description\n    }\n}\nMacBook-Pro-de-Fernando:BestTree fernando$ perl6 -I../Red2/lib/ -MRed -I. -MTree -e '\n\nmy $*RED-DB = database \"SQLite\"; Tree.^create-table;\n\nTree.suggest-tree: 1.1, 2.2, 3.3, \"bla\";\nTree.suggest-tree: 1.1, 2.2, 3.4, \"ble\";\n\n'\nA tree on (1.1, 2.2) was already suggested\n  in block  at -e line 30\n  in method stt-exec at /Users/fernando/Documents/Projects/BestTree/../Red2/lib/Red/Driver/SQLite.pm6 (Red::Driver::SQLite) line 18\n  in method execute at /Users/fernando/Documents/Projects/BestTree/../Red2/lib/Red/Statement.pm6 (Red::Statement) line 13\n  in method execute at /Users/fernando/Documents/Projects/BestTree/../Red2/lib/Red/Driver.pm6 (Red::Driver) line 21\n  in method save at /Users/fernando/Documents/Projects/Red2/lib/MetamodelX/Red/Model.pm6 (MetamodelX::Red::Model) line 171\n  in method create at /Users/fernando/Documents/Projects/Red2/lib/MetamodelX/Red/Model.pm6 (MetamodelX::Red::Model) line 184\n  in method suggest-tree at -e line 33\n  in block <unit> at -e line 6\n","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/R8J559ZF","modified":1545529983,"id":"R8J559ZF","size":2028,"lines":53,"own_paste":false,"theme":"","date":1545529983}