Open emersonthis opened 5 years ago
Just had another thought on this, related to https://github.com/mhuggins/ruby-measurement/issues/17
If we did add another method, ex Measurement::Unit.short_names
(or maybe optional arguments to the existing one) it would be really powerful if there was a way to limit the returned list to specific compatibility groups. Something like Measurement::Unit.names(convertable_from: :lbs)
which would give you a human-readable list of each unit that has a conversion mapping to pounds.
It would be for the same use case described here and on the other issue: a form where a user selects a unit, but within a specific context where invalid/incompatible units wouldn't make sense. Like if an Ingredient is associated with a Food record. If the Food is measured by liters, you wouldn't want to offer pounds
as a measurement option for the Ingredient record.
Just an idea. Maybe for later ;-)
Right now we can get a big list of every unit name with
Measurement::Unit.names
. Is there a way to do the same thing, but without all the aliases for each? The use case I'm thinking about is a form with a<select>
(or whatever) for selecting the units. It would be nice to filter out the repeats (ex:doz
vsdozen
).I'm pretty sure I could theoretically simulate this by looping over the entire list and testing conversions between each combination to "reverse-engineer" aliases... but that'd be expensive and messy. Is there a cleaner way to do this? Or perhaps we could add another static method to the class?