Skip to content

Instantly share code, notes, and snippets.

@djberg96
Created February 4, 2021 14:36
Show Gist options
  • Save djberg96/f4f6b697c85da709eee277e1dbcedb7d to your computer and use it in GitHub Desktop.
Save djberg96/f4f6b697c85da709eee277e1dbcedb7d to your computer and use it in GitHub Desktop.
class Mineral
getter name : String
getter hardness : Float64
getter crystal_struct : String
def initialize(name, hardness, crystal_struct)
@name = name
@hardness = hardness
@crystal_struct = crystal_struct
end
end
def mineral_with_crystal_struct(crstruct, minerals)
minerals.find{ |m| m.crystal_struct == crstruct }
end
def longest_name(minerals)
minerals.map{ |m| m.name }.max_by{ |name| name.size }
end
minerals = [
Mineral.new("gold", 1.0, "cubic"),
Mineral.new("topaz", 8.0, "orthorombic"),
Mineral.new("apatite", 5.0, "hexagonal"),
Mineral.new("wolframite", 4.5, "monoclinic"),
Mineral.new("calcite", 3.0, "trigonal"),
Mineral.new("diamond", 10.0, "cubic"),
]
min = mineral_with_crystal_struct("hexagonal", minerals)
#min = mineral_with_crystal_struct("triclinic', minerals)
puts "#{min.crystal_struct} - #{min.name} - #{min.hardness}"
puts longest_name(minerals)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment