Sé que Rails tiene algunos buenos ayudantes para la gestión de fecha y hora. ¿Existe un proyecto que ya funcione que consista en, o incorpore, una DSL limpia para unidades estándar y sus conversiones? Cualquier proyecto con ayudantes para la conversión entre las unidades básicas de longitud y peso de los dos sistemas funcionaría. ¡Gracias!Bibliotecas para convertir unidades físicas (kilogramos, libras) en Ruby?
Respuesta
Wow, hay unos cuantos más de ellos de lo que esperaba. Aquí está lo que creo que es una lista completa, en orden alfabético, con ejemplos de uso desprovisto de su documentación. También noté que no podía ejecutarlos localmente.
-
require 'alchemist' Alchemist.setup 8.miles.to.meters 10.kilometers + 1.mile # 11.609344 kilometers
-
Ésta aparece de la fecha, la última confirmación fue hace 5 años, y no parece funcionar en 1.9.3 para mí .
include Measurement::Length Inch.new(12).to_centimeters # => #<Measurement::Length::Centimeter:0x173c2b4 @units=30.48>
-
require "phys/units" Q = Phys::Quantity U = Phys::Unit Q[1.23,'km'] + Q[4.56,'m'] #=> Phys::Quantity[1.23456,'km'] Q[123,'mile']/Q[2,'hr'] #=> Phys::Quantity[61,'mile/hr'] Q[61,'miles/hr'].want('m/s') #=> Phys::Quantity[27.26944,'m/s'] Q[1.0,'are'] == Q[10,'m']**2 #=> true
-
Tenga en cuenta que éste declara que no puede ser de producción en el README.
require 'quantity/all' 1.meter #=> 1 meter 1.meter.to_feet #=> 3.28083... foot c = 299792458.meters/1.second #=> 299792458 meter/second newton = 1.meter * 1.kilogram/1.second**2 #=> 1 meter*kilogram/second^2 newton.to_feet #=> 3.28083989501312 foot*kilogram/second^2 newton.convert(:feet) #=> 3.28083989501312 foot*kilogram/second^2 jerk_newton = newton/1.second #=> 1 meter*kilogram/second^3 jerk_newton * 1.second == newton #=> true
-
require 'ruby-measurement' measurement = Measurement.parse('3 feet') # => 3.0 ft. measurement.convert_to(:yards) # => 1.0 yd. measurement.convert_to(:in) # => 36.0 in. measurement.convert_to(:inches) # => 36.0 in. measurement1 = Measurement.parse('3 feet') # => 3.0 ft. measurement2 = Measurement.parse('6 inch') # => 6.0 in. measurement1 + measurement2 # => 3.5 ft.
-
require 'ruby-units' unit = Unit("mm") # unit only (defaults to a scalar of 1) unit = Unit("1 mm") # create a simple unit unit = Unit("1 kg*m^2/s^2") # complex unit unit1 =~ unit2 # true if units are compatible unit1.compatible?(unit2) # true if units are compatible unit1 = unit >> "ft" # convert to 'feet' unit3 = unit1 + unit2 # resulting object will have the units of unit1 unit1 === unit2 # true if units and quantity are the same, even if 'equivalent' by <=> unit.convert_to('ft') # convert (unit1 + unit2).convert_to('ft') # converts result to 'ft'
-
require 'units' three_meters = 3.meters two_meters = 2.m one_inch = 1.inch 3.meters.to_inches # => 118.1103 inch 10.inches.to_mm # => 254.0 millimeter
-
require 'unitwise/ext' 1.yard == (1.foot * 3) # => true 1.quart < 1.liter # => true 2.meter + 3.inch - 1.yard # => <Unitwise::Measurement 1.1618 meter> 1.convert_to('kg.m2/s2') == 1.joule # => true (20.kg * 9.8.convert_to('m/s2')).to_pound_force # => <Unitwise::Measurement 44.06255284754326 pound_force> (300.horsepower * 60.second).to_calorie # => <Unitwise::Measurement 3208077.8414151203 calorie>
-
Como otro cartel, que tenían problemas para conseguir este trabajo. Sin embargo, puede ver Jörg W Mittag's answer para el uso.
Como el autor de Unitwise, podría ser obvio que es mi favorito de grupo. Sin embargo, lo aliento a que al menos lo compruebe.
Prueba impresionante Alchemist.
......
Tome un vistazo a Tom Sawyer de Van/Unit
Esto es de la página de inicio:
require 'van/units'
include Units
1.mile.to(feet)
1.acre.to(yd**2)
1.acre.to(sq_yd)
1.gallon.to(self.L)
1.lb.to(kg)
1.m.s.to(m.s)
1.sq_mi.to(km**2)
1.mile.to(km)
1.usd.to(twd)
1.bit/s + 8.bytes/s
Precioso. Esto es exactamente lo que esperaba en secreto. Gracias! +1 y acepté –
he podido conseguir Van/unidades para trabajar - todo examinar las memorias es:
/Library/Ruby/Gems/1.8/gems/vanunits-1.5.0/lib/van/units/base.rb:493:in `a ': unidades incompatibles para la operación (TypeError) de unitstest.rb: 4
cuando se ejecuta
require 'rubygems'
require 'van/units'
include Van::Units puts
1.meter.to(feet)
yo pasamos una hora de intentar sin éxito que cortar la fuente de van/unidades.
La joya más antigua en la que se basa trabajaban fuera de la caja:
vanunits parece roto. i sugeriría probar
rubyunits (http://ruby-units.rubyforge.org/ruby-units/)
o
mediciones (https://github.com/collectiveidea/measurement)
Trate gem install sy
require 'sy'
(5.g * # a bullet of 5g
500.m.s(-1) ** 2/# flying at a speed of 500m/s has kJ energy:
2).in(:kJ) #=> 0.625
require 'sy/imperial'
1.mile.in :ft #=> 5280.0
1.acre.in :yd² #=> 4840.0
1.gallon.in :l #=> 4.54609
1.lb.in :kg #=> 0.45359237
1.mile².in :km² #=> 2.589988110336
SY::SPEED_OF_LIGHT.in "furlong.fortnight⁻¹" #=> 1802617499785.2544
En [sy] (https://github.com/boris -s/sy), enfatizo la corrección del modelo comercial y la facilidad de uso sobre la facilidad de implementación. La única otra biblioteca de unidades físicas aparte de _sy_, cuyo modelo de objetos realmente me gusta, es [phys-units] (https: // github. com/masa16/phys-units) de [el autor de la famosa gema narray] (https://github.com/masa16). –
+ 1/aceptando esto ya que parece significativamente más moderno/mantenido que las sugerencias anteriores. –
- 1. Constantes físicas en R
- 2. Obtenga las unidades de disco físicas correspondientes de los puntos de montaje con consultas WMI?
- 3. preservando unidades para cálculos en la programación
- 4. ¿Cómo modelas una tabla para conversión de unidades?
- 5. Tantas bibliotecas de Facebook para Ruby, ¿cuál elegir?
- 6. Bibliotecas de procesamiento de imágenes Ruby/Rails
- 7. Extensión de C++ Ruby con bibliotecas externas
- 8. bibliotecas de inyección de dependencia de Ruby
- 9. buena (noSQL?) Base de datos para mediciones físicas
- 10. Uso de una tabla de modo orgánico en emacs para convertir unidades usando calc
- 11. Pruebas de unidades de escritura en Ruby para una API REST
- 12. jQuery - Agregar unidades para compensar
- 13. ¿Diferencia entre direcciones lógicas y direcciones físicas?
- 14. (Ruby, Rails) Contexto de SELF en módulos y bibliotecas ...?
- 15. Convertir cadena a número decimal en ruby
- 16. Convertir 1200 a 1.2K en ruby / rails
- 17. ¿Hay utilidades o bibliotecas genéricas para convertir volcados hexadecimal en un formato legible para humanos?
- 18. Unidades para usar para maxdistance y MongoDB?
- 19. Convertir grados a radianes en ruby
- 20. convertir unicode en personaje con ruby
- 21. Convertir SVG a PNG en Ruby
- 22. Unidades de lógica de conversión de medidas en C#
- 23. Redes físicas basadas en turnos basadas en varios jugadores
- 24. direcciones virtuales y físicas de secciones en archivos elf
- 25. Unidades iTextSharp
- 26. ctypes para bibliotecas estáticas?
- 27. Makefile para bibliotecas compartidas?
- 28. Bibliotecas para incrustar embarcadero?
- 29. Bibliotecas temporales para Java
- 30. Bibliotecas OpenID para Delphi?
Gracias y +1, se ve muy bien. –
Github es 404-ing. :( –
Pruebe http://github.com/halogenandtoast/alchemist – Psynix