todo-jsonl 0.1.9 → 0.1.10
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.
- checksums.yaml +4 -4
 - data/bin/todo.rb +18 -14
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 26e087f32b9e0ddb96664aaffcb83aab17a4cf31c75eb651bb1797fa6d7fba09
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c298e6c64c3bd28f0d0806c6b12204e74bc7c89e6d32939a2763368cae11e17e
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 6221aaca3f2637bd59c35720f2383e9fb6ef1a59faf5604341da0d04148184e504a53bd0d45a18dcd3462141496a5c91bdc0c8bef896c559362ce0670cc1b231
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 88c148df544f7bc2fb65a50becac172f9f216cbea27a15666add4eb05ae752834b5f5396d191778be7045f2c856034e11a5e38fb3ef210a570bed92aed75f611
         
     | 
    
        data/bin/todo.rb
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            # todo.rb - todo list manager inspired by todo.txt using the jsonl format.
         
     | 
| 
       4 
4 
     | 
    
         
             
            #
         
     | 
| 
       5 
     | 
    
         
            -
            # Copyright (c) 2020 Gabor Bata
         
     | 
| 
      
 5 
     | 
    
         
            +
            # Copyright (c) 2020-2021 Gabor Bata
         
     | 
| 
       6 
6 
     | 
    
         
             
            #
         
     | 
| 
       7 
7 
     | 
    
         
             
            # Permission is hereby granted, free of charge, to any person
         
     | 
| 
       8 
8 
     | 
    
         
             
            # obtaining a copy of this software and associated documentation files
         
     | 
| 
         @@ -27,8 +27,6 @@ 
     | 
|
| 
       27 
27 
     | 
    
         
             
            require 'json'
         
     | 
| 
       28 
28 
     | 
    
         
             
            require 'date'
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
            DATE_FORMAT = '%Y-%m-%d'
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
30 
     | 
    
         
             
            COLOR_CODES = {
         
     | 
| 
       33 
31 
     | 
    
         
             
              black:   30,
         
     | 
| 
       34 
32 
     | 
    
         
             
              red:     31,
         
     | 
| 
         @@ -64,19 +62,25 @@ COLORS = { 
     | 
|
| 
       64 
62 
     | 
    
         
             
              'default' => :magenta
         
     | 
| 
       65 
63 
     | 
    
         
             
            }
         
     | 
| 
       66 
64 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
            QUERIES = {
         
     | 
| 
       68 
     | 
    
         
            -
              ':active'  => 'state=(new|started|blocked)',
         
     | 
| 
       69 
     | 
    
         
            -
              ':done'    => 'state=done',
         
     | 
| 
       70 
     | 
    
         
            -
              ':blocked' => 'state=blocked',
         
     | 
| 
       71 
     | 
    
         
            -
              ':started' => 'state=started',
         
     | 
| 
       72 
     | 
    
         
            -
              ':new'     => 'state=new',
         
     | 
| 
       73 
     | 
    
         
            -
              ':all'     => 'state=\w+'
         
     | 
| 
       74 
     | 
    
         
            -
            }
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
65 
     | 
    
         
             
            TODAY = DateTime.now
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
      
 66 
     | 
    
         
            +
            NEXT_7_DAYS = (0..6).map do |day| (TODAY.to_date + day) end
         
     | 
| 
      
 67 
     | 
    
         
            +
            DATE_FORMAT = '%Y-%m-%d'
         
     | 
| 
      
 68 
     | 
    
         
            +
            DUE_DATE_DAYS = NEXT_7_DAYS.map do |day| day.strftime('%A').downcase end
         
     | 
| 
      
 69 
     | 
    
         
            +
            DUE_DATES_FOR_QUERIES = NEXT_7_DAYS.map do |day| day.strftime(DATE_FORMAT) end
         
     | 
| 
       78 
70 
     | 
    
         
             
            DUE_DATE_DAYS_SIMPLE = ['today', 'tomorrow']
         
     | 
| 
       79 
71 
     | 
    
         | 
| 
      
 72 
     | 
    
         
            +
            QUERIES = {
         
     | 
| 
      
 73 
     | 
    
         
            +
              ':active'    => 'state=(new|started|blocked)',
         
     | 
| 
      
 74 
     | 
    
         
            +
              ':done'      => 'state=done',
         
     | 
| 
      
 75 
     | 
    
         
            +
              ':blocked'   => 'state=blocked',
         
     | 
| 
      
 76 
     | 
    
         
            +
              ':started'   => 'state=started',
         
     | 
| 
      
 77 
     | 
    
         
            +
              ':new'       => 'state=new',
         
     | 
| 
      
 78 
     | 
    
         
            +
              ':all'       => 'state=\w+',
         
     | 
| 
      
 79 
     | 
    
         
            +
              ':today'     => "due=#{DUE_DATES_FOR_QUERIES[0]}",
         
     | 
| 
      
 80 
     | 
    
         
            +
              ':tomorrow'  => "due=#{DUE_DATES_FOR_QUERIES[1]}",
         
     | 
| 
      
 81 
     | 
    
         
            +
              ':next7days' => "due=(#{DUE_DATES_FOR_QUERIES.join('|')})"
         
     | 
| 
      
 82 
     | 
    
         
            +
            }
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
       80 
84 
     | 
    
         
             
            PRIORITY_FLAG = '*'
         
     | 
| 
       81 
85 
     | 
    
         | 
| 
       82 
86 
     | 
    
         
             
            TODO_FILE = "#{ENV['HOME']}/todo.jsonl"
         
     | 
| 
         @@ -209,7 +213,7 @@ def list(tasks = nil, patterns = nil) 
     | 
|
| 
       209 
213 
     | 
    
         
             
              task_indent = [tasks.keys.max.to_s.size, 4].max
         
     | 
| 
       210 
214 
     | 
    
         
             
              patterns = patterns.nil? || patterns.empty? ? [QUERIES[':active']] : patterns
         
     | 
| 
       211 
215 
     | 
    
         
             
              tasks.each do |num, task|
         
     | 
| 
       212 
     | 
    
         
            -
                normalized_task = "state=#{task[:state]} #{task[:title]}"
         
     | 
| 
      
 216 
     | 
    
         
            +
                normalized_task = "state=#{task[:state]} due=#{task[:due]} #{task[:title]}"
         
     | 
| 
       213 
217 
     | 
    
         
             
                match = true
         
     | 
| 
       214 
218 
     | 
    
         
             
                patterns.each do |pattern|
         
     | 
| 
       215 
219 
     | 
    
         
             
                  match = false unless /#{QUERIES[pattern] || pattern}/ix.match(normalized_task)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: todo-jsonl
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.10
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Gabor Bata
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-01-27 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            email: 
         
     |