Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

eventual

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eventual

  • 0.5.9
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

= eventual

  • http://github.com/maca/eventual

== DESCRIPCIÓN:

Reconocimiento de fechas y periodos en lenguaje natural. Útil para crear interfaces de usuario basadas en texto.

== SINOPSIS:

El método event_parse del modulo Eventual reconoce y convierte una fecha o periodo expresado en lenguaje natural en objetos Date o DateTime

Ejemplos: require 'rubygems' require 'eventual'

Eventual.parse( 'del 5 al 7 de junio del 2009' ).map => [#<DateTime: 4909975/2,0,2299161>, #<DateTime: 4909977/2,0,2299161>, #<DateTime: 4909979/2,0,2299161>]

Si no se especifica el año se usará el año actual

Eventual.parse( 'del 5 al 7 de junio' ).map{ |d| d.to_s } # Quizá mas tarde se localize a otros idiomas => ["2010-06-05", "2010-06-06", "2010-06-07"]

Se puede especificar un año por omisión

dates = Eventual.parse( 'del 5 al 7 de junio', :default_year => 2007 ) dates.map{ |d| d.to_s } => ["2007-06-05", "2007-06-06", "2007-06-07"]

Si se especifica la hora el resultado será un Array de DateTime

Eventual.parse( 'del 5 al 7 de junio del 2009 a las 16:00 y 18:00 horas', :lang => :es ).map => [#<DateTime: 14729929/6,0,2299161>, #<DateTime: 9819953/4,0,2299161>, #<DateTime: 14729935/6,0,2299161>, #<DateTime: 9819957/4,0,2299161>, #<DateTime: 14729941/6,0,2299161>, #<DateTime: 9819961/4,0,2299161>]

Eventual.parse( 'del 5 al 7 de junio del 2009 a las 16:00 y 18:00 horas' ).map{ |d| d.to_s } => ["2009-06-05T16:00:00+00:00", "2009-06-05T18:00:00+00:00", "2009-06-06T16:00:00+00:00", "2009-06-06T18:00:00+00:00", "2009-06-07T16:00:00+00:00", "2009-06-07T18:00:00+00:00"]

Se pueden restringir los resultados a ciertos dias

Eventual.parse('lunes y martes de diciembre del 2001 a las 15:00').map{ |d| d.to_s }
=> ["2010-12-06T15:00:00+00:00", "2010-12-07T15:00:00+00:00", "2010-12-13T15:00:00+00:00", "2010-12-14T15:00:00+00:00", "2010-12-20T15:00:00+00:00", "2010-12-21T15:00:00+00:00", "2010-12-27T15:00:00+00:00", "2010-12-28T15:00:00+00:00"]

Se puede checar si las fechas reconocidas incluyen cierta fecha, la comparación es "perezosa" es decir no instancia todos los objetos Date o DateTime

como hace map y por lo tanto es mas eficiente

Eventual.parse( 'del 5 al 7 de junio del 2007' ).include? Date.civil(2007, 6, 6) => true

Eventual.parse( 'del 5 al 7 de junio del 2007' ).include? Date.civil(2006, 6, 6) => false

Se toma en cuenta la hora

Eventual.parse( 'del 5 al 7 de junio del 2007 a las 16:00' ).include? DateTime.civil(2007, 6, 6, 16, 0) => true

Eventual.parse( 'del 5 al 7 de junio del 2007 a las 16:00' ).include? DateTime.civil(2007, 6, 6, 15, 0) => false

Si se pasa un Date que corresponda al periodo la comparación es positiva

Eventual.parse( 'del 5 al 7 de junio del 2007 a las 16:00' ).include? Date.civil(2007, 6, 6) => true

Se puede pasar un rango de horas y se obtendrá un rango

Eventual.parse('1 de enero del 2010 de las 15:00 a las 16:00') => [(DateTime.civil 2010, 1, 1, 15)..(DateTime.civil 2010, 1, 1, 16)]

Eventual.parse('1 de enero del 2010 de las 15:00 a las 16:00 y de las 17:00 a las 19:00')

Ejemplos de formatos reconocidos:

  • Por mes
    • marzo
    • marzo de 2009
    • marzo del 2009
    • todo marzo 2009
    • marzo, 2009
    • marzo '09
  • Lista de dias
    • lunes y martes marzo del 2010
    • todos los lunes y martes de marzo del 2010
    • lunes y martes durante marzo del 2010
    • lunes y martes durante todo marzo del 2010
    • lunes y martes, marzo del 2010
    • 21 de marzo
    • 21 marzo
    • domingo 21 de marzo
    • domingo, 21 de marzo
    • 1, 2 y 3 de marzo
    • 1, 2 y 3 marzo
    • lunes 1, martes 2 y miercoles 3 de marzo
    • 1 al 3 de marzo
    • 1 al 3, marzo
    • del 1 al 3 de marzo
    • del 1 al 3, marzo
  • Rango de fechas
    • 24 de febrero al 3 de marzo del 2010
    • 24 de diciembre del 2009 al 3 de enero del 2010
    • lunes y martes del 1 al 22 de marzo del '10
    • fines de semana del 1 al 22 de marzo del '10
    • entre semana del 1 al 22 de marzo del '10
    • lunes y martes del 1 al 22 de marzo del '10
    • todos los lunes y martes del 1 al 22 de marzo del '10
    • los lunes y martes del 1 al 22 de marzo del '10
    • los lunes y los martes del 1 al 22 de marzo del '10
  • Con horario (se puede aplicar a todos los casos)
    • lunes y martes de diciembre a las 15
    • lunes y martes, de diciembre a las 15
    • lunes y martes de diciembre a las 15:30 hrs.
    • lunes y martes de diciembre a las 15:00 y 16:00 horas
    • lunes y martes de diciembre a las 15:00 y 16:00 horas
    • lunes y martes de diciembre a las 3 am
    • lunes y martes de diciembre a las 3:15 p.m.
  • Con rango de horario (se puede aplicar a todos los casos)
    • 1 de enero del 2010 de las 15:00 a las 16:00
    • 1 de enero del 2010 de las 15:00 a las 16:00 y de las 17:00 a las 19:00
    • 1 de enero del 2010 de las 15:00 a las 16:00, de las 17:00 a las 19:00 y de las 21:00 a las 22:00
  • Fechas compuestas
    • 1 de enero y lunes y martes del 1 de octubre al 2 de diciembre del 2008

== TODO:

Formatos a reconocer

  • todo el año
  • lunes y martes de diciembre, 3:15 p.m.

== INSTALACIÓN:

[sudo] gem install eventual

== Documentation

http://rdoc.info/projects/maca/eventual

== LICENCIA:

(The MIT License)

Copyright (c) 2009 Macario Ortega

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

FAQs

Package last updated on 06 Mar 2011

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc