fugit 1.7.0 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fugit might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/CREDITS.md +2 -0
- data/README.md +30 -0
- data/fugit.gemspec +1 -1
- data/lib/fugit/cron.rb +2 -2
- data/lib/fugit/nat.rb +34 -16
- data/lib/fugit.rb +1 -1
- metadata +5 -6
- data/Makefile +0 -55
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d28dc94bc31e025df55b67c79f2f59eed365940872e287479e788cb9023178dd
         | 
| 4 | 
            +
              data.tar.gz: 6f8d62b8d8921831a4de92d60a23c4cf83cfe79eea852c625744951156cb3d05
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3afc5fd6553abed3c73d7526e25b871ba0f5f26b8f415fccfec183b261e5ccb4e9f3fc6b176b550fa47de385f8991efe08936d2d96d6951a15dba81533f2ebcc
         | 
| 7 | 
            +
              data.tar.gz: e5cbdb64a9f6ee28e8f938c76dcdf44211ce751ca0dc1834d669b8494e40424fb7c5e8e98f7eb608e8855c29648b9c99e9faf06436ab05a795a87bffc771118c
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -2,6 +2,18 @@ | |
| 2 2 | 
             
            # CHANGELOG.md
         | 
| 3 3 |  | 
| 4 4 |  | 
| 5 | 
            +
            ## fugit 1.7.2 released 2022-11-03
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            * Fix 'every day at 12:15 am', gh-81
         | 
| 8 | 
            +
            * Fix 'every day at 5:00pm', gh-81
         | 
| 9 | 
            +
             | 
| 10 | 
            +
             | 
| 11 | 
            +
            ## fugit 1.7.1 released 2022-09-21
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            * Change behaviour for "0 0/5 * * *", gh-79
         | 
| 14 | 
            +
              go "every 5h start hour 0", previous behaviour only triggered at hour 0
         | 
| 15 | 
            +
             | 
| 16 | 
            +
             | 
| 5 17 | 
             
            ## fugit 1.7.0 released 2022-09-15
         | 
| 6 18 |  | 
| 7 19 | 
             
            * Introduce the & cron syntax (day-of-month AND day-of-week), gh-78
         | 
    
        data/CREDITS.md
    CHANGED
    
    | @@ -1,6 +1,8 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            # fugit credits
         | 
| 3 3 |  | 
| 4 | 
            +
            * ski-nine, https://github.com/ski-nine, gh-81
         | 
| 5 | 
            +
            * Joseph Halter, https://github.com/JosephHalter, gh-79
         | 
| 4 6 | 
             
            * James Healy, https://github.com/yob, gh-76
         | 
| 5 7 | 
             
            * John Bachir, https://github.com/jjb, gh-74
         | 
| 6 8 | 
             
            * Vivek Miyani, https://github.com/vivekmiyani, gh-71
         | 
    
        data/README.md
    CHANGED
    
    | @@ -399,6 +399,36 @@ Fugit::Nat.parse('every day at 16:15 nada 18:30', multi: true) | |
| 399 399 | 
             
            `"Every day at midnight"` is supported, but `"Every monday at midnight"` will be interpreted (as of Fugit <= 1.4.x) as `"Every monday at 00:00"`. Sorry about that.
         | 
| 400 400 |  | 
| 401 401 |  | 
| 402 | 
            +
            ### 12 AM and PM
         | 
| 403 | 
            +
             | 
| 404 | 
            +
            How does fugit react with `"12 am"`, `"12 pm"`, `"12 midnight"`, etc?
         | 
| 405 | 
            +
             | 
| 406 | 
            +
            ```ruby
         | 
| 407 | 
            +
            require 'fugit'
         | 
| 408 | 
            +
             | 
| 409 | 
            +
            p Fugit.parse('every day at 12am').original  # ==> "0 0 * * *"
         | 
| 410 | 
            +
            p Fugit.parse('every day at 12pm').original  # ==> "0 12 * * *"
         | 
| 411 | 
            +
             | 
| 412 | 
            +
            p Fugit.parse('every day at 12:00am').original   # ==> "0 0 * * *"
         | 
| 413 | 
            +
            p Fugit.parse('every day at 12:00pm').original   # ==> "0 12 * * *"
         | 
| 414 | 
            +
            p Fugit.parse('every day at 12:00 am').original  # ==> "0 0 * * *"
         | 
| 415 | 
            +
            p Fugit.parse('every day at 12:00 pm').original  # ==> "0 12 * * *"
         | 
| 416 | 
            +
            p Fugit.parse('every day at 12:15am').original   # ==> "15 0 * * *"
         | 
| 417 | 
            +
            p Fugit.parse('every day at 12:15pm').original   # ==> "15 12 * * *"
         | 
| 418 | 
            +
            p Fugit.parse('every day at 12:15 am').original  # ==> "15 0 * * *"
         | 
| 419 | 
            +
            p Fugit.parse('every day at 12:15 pm').original  # ==> "15 12 * * *"
         | 
| 420 | 
            +
             | 
| 421 | 
            +
            p Fugit.parse('every day at 12 noon').original         # ==> "0 12 * * *"
         | 
| 422 | 
            +
            p Fugit.parse('every day at 12 midnight').original     # ==> "0 24 * * *"
         | 
| 423 | 
            +
            p Fugit.parse('every day at 12:00 noon').original      # ==> "0 12 * * *"
         | 
| 424 | 
            +
            p Fugit.parse('every day at 12:00 midnight').original  # ==> "0 24 * * *"
         | 
| 425 | 
            +
            p Fugit.parse('every day at 12:15 noon').original      # ==> "15 12 * * *"
         | 
| 426 | 
            +
            p Fugit.parse('every day at 12:15 midnight').original  # ==> "15 24 * * *"
         | 
| 427 | 
            +
             | 
| 428 | 
            +
              # as of fugit 1.7.2
         | 
| 429 | 
            +
            ```
         | 
| 430 | 
            +
             | 
| 431 | 
            +
             | 
| 402 432 | 
             
            ## LICENSE
         | 
| 403 433 |  | 
| 404 434 | 
             
            MIT, see [LICENSE.txt](LICENSE.txt)
         | 
    
        data/fugit.gemspec
    CHANGED
    
    | @@ -32,7 +32,7 @@ Time tools for flor and the floraison project. Cron parsing and occurrence compu | |
| 32 32 | 
             
              s.files = Dir[
         | 
| 33 33 | 
             
                'README.{md,txt}',
         | 
| 34 34 | 
             
                'CHANGELOG.{md,txt}', 'CREDITS.{md,txt}', 'LICENSE.{md,txt}',
         | 
| 35 | 
            -
                'Makefile',
         | 
| 35 | 
            +
                #'Makefile',
         | 
| 36 36 | 
             
                'lib/**/*.rb', #'spec/**/*.rb', 'test/**/*.rb',
         | 
| 37 37 | 
             
                "#{s.name}.gemspec",
         | 
| 38 38 | 
             
              ]
         | 
    
        data/lib/fugit/cron.rb
    CHANGED
    
    | @@ -509,8 +509,6 @@ module Fugit | |
| 509 509 |  | 
| 510 510 | 
             
                  sta, edn, sla = r
         | 
| 511 511 |  | 
| 512 | 
            -
                  sla = nil if sla == 1 # don't get fooled by /1
         | 
| 513 | 
            -
             | 
| 514 512 | 
             
                  edn = max if sla && edn.nil?
         | 
| 515 513 |  | 
| 516 514 | 
             
                  return [ nil ] if sta.nil? && edn.nil? && sla.nil?
         | 
| @@ -525,6 +523,8 @@ module Fugit | |
| 525 523 |  | 
| 526 524 | 
             
                def range(min, max, sta, edn, sla)
         | 
| 527 525 |  | 
| 526 | 
            +
                  return [ nil ] if sta == min && edn == max && sla == 1
         | 
| 527 | 
            +
             | 
| 528 528 | 
             
                  fail ArgumentError.new(
         | 
| 529 529 | 
             
                    'both start and end must be negative in ' +
         | 
| 530 530 | 
             
                    { min: min, max: max, sta: sta, edn: edn, sla: sla }.inspect
         | 
    
        data/lib/fugit/nat.rb
    CHANGED
    
    | @@ -176,6 +176,7 @@ module Fugit | |
| 176 176 | 
             
                    #'every week on monday 18:23' => '23 18 * * 1',
         | 
| 177 177 | 
             
                    #
         | 
| 178 178 | 
             
                    # every month on the 1st
         | 
| 179 | 
            +
                    #
         | 
| 179 180 | 
             
                  def on(i)
         | 
| 180 181 | 
             
                    seq(:on, i, :_on, :on_objects)
         | 
| 181 182 | 
             
                  end
         | 
| @@ -196,12 +197,6 @@ module Fugit | |
| 196 197 | 
             
                    seq(nil, i, :_in_or_on, '?', :tz)
         | 
| 197 198 | 
             
                  end
         | 
| 198 199 |  | 
| 199 | 
            -
                  def digital_hour(i)
         | 
| 200 | 
            -
                    rex(
         | 
| 201 | 
            -
                      :digital_hour, i,
         | 
| 202 | 
            -
                      /(2[0-4]|[0-1]?[0-9]):([0-5][0-9])([ \t]*(am|pm))?/i)
         | 
| 203 | 
            -
                  end
         | 
| 204 | 
            -
             | 
| 205 200 | 
             
                  def ampm(i)
         | 
| 206 201 | 
             
                    rex(:ampm, i, /[ \t]*(am|pm|noon|midday|midnight)/i)
         | 
| 207 202 | 
             
                  end
         | 
| @@ -209,6 +204,13 @@ module Fugit | |
| 209 204 | 
             
                    rex(:dark, i, /[ \t]*dark/i)
         | 
| 210 205 | 
             
                  end
         | 
| 211 206 |  | 
| 207 | 
            +
                  def digital_h(i)
         | 
| 208 | 
            +
                    rex(:digital_h, i, /(2[0-4]|[0-1]?[0-9]):([0-5][0-9])/i)
         | 
| 209 | 
            +
                  end
         | 
| 210 | 
            +
                  def digital_hour(i)
         | 
| 211 | 
            +
                    seq(:digital_hour, i, :digital_h, :ampm, '?')
         | 
| 212 | 
            +
                  end
         | 
| 213 | 
            +
             | 
| 212 214 | 
             
                  def simple_h(i)
         | 
| 213 215 | 
             
                     rex(:simple_h, i, /#{(0..24).to_a.reverse.join('|')}/)
         | 
| 214 216 | 
             
                  end
         | 
| @@ -451,20 +453,24 @@ module Fugit | |
| 451 453 | 
             
                  end
         | 
| 452 454 |  | 
| 453 455 | 
             
                  def rewrite_tz(t)
         | 
| 456 | 
            +
             | 
| 454 457 | 
             
                    slot(:tz, t.string)
         | 
| 455 458 | 
             
                  end
         | 
| 456 459 |  | 
| 457 460 | 
             
                  def rewrite_weekday(t)
         | 
| 461 | 
            +
             | 
| 458 462 | 
             
                    Fugit::Cron::Parser::WEEKDS.index(t.string[0, 3].downcase)
         | 
| 459 463 | 
             
                  end
         | 
| 460 464 |  | 
| 461 465 | 
             
                  def rewrite_weekdays(t)
         | 
| 466 | 
            +
             | 
| 462 467 | 
             
            #Raabro.pp(t, colours: true)
         | 
| 463 468 | 
             
                    slot(:weekday, _rewrite_subs(t, :weekday))
         | 
| 464 469 | 
             
                  end
         | 
| 465 470 | 
             
                  alias rewrite_on_weekdays rewrite_weekdays
         | 
| 466 471 |  | 
| 467 472 | 
             
                  def rewrite_to_weekday(t)
         | 
| 473 | 
            +
             | 
| 468 474 | 
             
                    wd0, wd1 = _rewrite_subs(t, :weekday)
         | 
| 469 475 | 
             
                    #wd1 = 7 if wd1 == 0
         | 
| 470 476 | 
             
                    slot(:weekday, "#{wd0}-#{wd1}")
         | 
| @@ -475,21 +481,35 @@ module Fugit | |
| 475 481 | 
             
                    slot(:monthday, "#{md0}-#{md1}")
         | 
| 476 482 | 
             
                  end
         | 
| 477 483 |  | 
| 478 | 
            -
                   | 
| 479 | 
            -
             | 
| 480 | 
            -
             | 
| 481 | 
            -
             | 
| 484 | 
            +
                  # Try to follow https://en.wikipedia.org/wiki/12-hour_clock#Confusion_at_noon_and_midnight
         | 
| 485 | 
            +
                  #
         | 
| 486 | 
            +
                  def adjust_h(h, m, ap)
         | 
| 487 | 
            +
             | 
| 488 | 
            +
                    if ap == 'midnight' && h == 12
         | 
| 489 | 
            +
                      24
         | 
| 490 | 
            +
                    elsif ap == 'pm' && h < 12 # post meridian
         | 
| 491 | 
            +
                      h + 12
         | 
| 492 | 
            +
                    elsif ap == 'am' && h == 12 # ante meridian
         | 
| 493 | 
            +
                      0
         | 
| 494 | 
            +
                    else
         | 
| 495 | 
            +
                      h
         | 
| 496 | 
            +
                    end
         | 
| 482 497 | 
             
                  end
         | 
| 483 498 |  | 
| 484 499 | 
             
                  def rewrite_digital_hour(t)
         | 
| 485 | 
            -
             | 
| 486 | 
            -
                    h, m =  | 
| 500 | 
            +
             | 
| 501 | 
            +
                    h, m = t.sublookup(:digital_h).strinpd.split(':').collect(&:to_i)
         | 
| 502 | 
            +
                    ap = t.sublookup(:ampm)
         | 
| 503 | 
            +
                    h, m = adjust_h(h, m, ap && ap.strinpd), m
         | 
| 504 | 
            +
             | 
| 487 505 | 
             
                    slot(:hm, h, m)
         | 
| 488 506 | 
             
                  end
         | 
| 489 507 |  | 
| 490 508 | 
             
                  def rewrite_simple_hour(t)
         | 
| 509 | 
            +
             | 
| 491 510 | 
             
                    h, ap = t.subgather(nil).collect(&:strinpd)
         | 
| 492 | 
            -
                    h = adjust_h(h, ap)
         | 
| 511 | 
            +
                    h = adjust_h(h.to_i, 0, ap)
         | 
| 512 | 
            +
             | 
| 493 513 | 
             
                    slot(:hm, h, 0)
         | 
| 494 514 | 
             
                  end
         | 
| 495 515 |  | 
| @@ -501,12 +521,10 @@ module Fugit | |
| 501 521 |  | 
| 502 522 | 
             
                    h = ht.strinp
         | 
| 503 523 | 
             
                    m = mt ? mt.strinp : 0
         | 
| 504 | 
            -
            #p [ 0, '-->', h, m ]
         | 
| 505 524 | 
             
                    h = NHOURS[h]
         | 
| 506 525 | 
             
                    m = NMINUTES[m] || m
         | 
| 507 | 
            -
            #p [ 1, '-->', h, m ]
         | 
| 508 526 |  | 
| 509 | 
            -
                    h = adjust_h(h, apt && apt.strinpd)
         | 
| 527 | 
            +
                    h = adjust_h(h, m, apt && apt.strinpd)
         | 
| 510 528 |  | 
| 511 529 | 
             
                    slot(:hm, h, m)
         | 
| 512 530 | 
             
                  end
         | 
    
        data/lib/fugit.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: fugit
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.7. | 
| 4 | 
            +
              version: 1.7.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - John Mettraux
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2022- | 
| 11 | 
            +
            date: 2022-11-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: raabro
         | 
| @@ -83,7 +83,6 @@ files: | |
| 83 83 | 
             
            - CHANGELOG.md
         | 
| 84 84 | 
             
            - CREDITS.md
         | 
| 85 85 | 
             
            - LICENSE.txt
         | 
| 86 | 
            -
            - Makefile
         | 
| 87 86 | 
             
            - README.md
         | 
| 88 87 | 
             
            - fugit.gemspec
         | 
| 89 88 | 
             
            - lib/fugit.rb
         | 
| @@ -102,7 +101,7 @@ metadata: | |
| 102 101 | 
             
              bug_tracker_uri: https://github.com/floraison/fugit/issues
         | 
| 103 102 | 
             
              homepage_uri: https://github.com/floraison/fugit
         | 
| 104 103 | 
             
              source_code_uri: https://github.com/floraison/fugit
         | 
| 105 | 
            -
            post_install_message: | 
| 104 | 
            +
            post_install_message:
         | 
| 106 105 | 
             
            rdoc_options: []
         | 
| 107 106 | 
             
            require_paths:
         | 
| 108 107 | 
             
            - lib
         | 
| @@ -118,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 118 117 | 
             
                  version: '0'
         | 
| 119 118 | 
             
            requirements: []
         | 
| 120 119 | 
             
            rubygems_version: 3.1.6
         | 
| 121 | 
            -
            signing_key: | 
| 120 | 
            +
            signing_key:
         | 
| 122 121 | 
             
            specification_version: 4
         | 
| 123 122 | 
             
            summary: time tools for flor
         | 
| 124 123 | 
             
            test_files: []
         | 
    
        data/Makefile
    DELETED
    
    | @@ -1,55 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            ## gem tasks ##
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            NAME = \
         | 
| 5 | 
            -
              $(shell ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.name")
         | 
| 6 | 
            -
            VERSION = \
         | 
| 7 | 
            -
              $(shell ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.version")
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            count_lines:
         | 
| 10 | 
            -
            	find lib -name "*.rb" | xargs cat | ruby -e "p STDIN.readlines.count { |l| l = l.strip; l[0, 1] != '#' && l != '' }"
         | 
| 11 | 
            -
            	find spec -name "*_spec.rb" | xargs cat | ruby -e "p STDIN.readlines.count { |l| l = l.strip; l[0, 1] != '#' && l != '' }"
         | 
| 12 | 
            -
            cl: count_lines
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            scan:
         | 
| 15 | 
            -
            	scan lib/**/*.rb
         | 
| 16 | 
            -
             | 
| 17 | 
            -
            gemspec_validate:
         | 
| 18 | 
            -
            	@echo "---"
         | 
| 19 | 
            -
            	ruby -e "s = eval(File.read(Dir['*.gemspec'].first)); p s.validate"
         | 
| 20 | 
            -
            	@echo "---"
         | 
| 21 | 
            -
             | 
| 22 | 
            -
            name: gemspec_validate
         | 
| 23 | 
            -
            	@echo "$(NAME) $(VERSION)"
         | 
| 24 | 
            -
             | 
| 25 | 
            -
            cw:
         | 
| 26 | 
            -
            	find lib -name "*.rb" -exec ruby -cw {} \;
         | 
| 27 | 
            -
             | 
| 28 | 
            -
            build: gemspec_validate
         | 
| 29 | 
            -
            	gem build $(NAME).gemspec
         | 
| 30 | 
            -
            	mkdir -p pkg
         | 
| 31 | 
            -
            	mv $(NAME)-$(VERSION).gem pkg/
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            push: build
         | 
| 34 | 
            -
            	gem push --otp "$(OTP)" pkg/$(NAME)-$(VERSION).gem
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            spec:
         | 
| 37 | 
            -
            	bundle exec rspec
         | 
| 38 | 
            -
            test: spec
         | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
            ## specific to project ##
         | 
| 42 | 
            -
             | 
| 43 | 
            -
            info:
         | 
| 44 | 
            -
            	uname -a
         | 
| 45 | 
            -
            	bundle exec ruby -v
         | 
| 46 | 
            -
            	bundle exec ruby -Ilib -r et-orbi -e "EtOrbi._make_info"
         | 
| 47 | 
            -
             | 
| 48 | 
            -
            tzones:
         | 
| 49 | 
            -
            	bundle exec ruby -r tzinfo -e "TZInfo::Timezone.all.each { |tz| p tz.name }"
         | 
| 50 | 
            -
            #tzonesd:
         | 
| 51 | 
            -
            #	bundle exec ruby -r tzinfo -r tzinfo-data -e "::TZInfo::Timezone.all.each { |tz| p tz.name }"
         | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
            .PHONY: count_lines scan gemspec_validate name cw build push spec info tzones
         | 
| 55 | 
            -
             |