Sha256: 29022dabf91a97e6f2b7f05c273fbc615f9f873c4e70136fab103a7dda5a0522

Contents?: true

Size: 1.86 KB

Versions: 30

Compression:

Stored size: 1.86 KB

Contents

# @since
desc 'List entries since a date'
long_desc %(Date argument can be natural language and are always interpreted as being in the past. "thursday" would be interpreted as "last thursday,"
and "2d" would be interpreted as "two days ago.")
arg_name 'DATE_STRING'
command :since do |c|
  c.example 'doing since 7/30', desc: 'List all entries created since 12am on 7/30 of the current year'
  c.example 'doing since "monday 3pm" --output json', desc: 'Show entries since 3pm on Monday of the current week, output in JSON format'

  c.desc 'Section'
  c.arg_name 'NAME'
  c.flag %i[s section], default_value: 'All'

  add_options(:output_template, c)
  add_options(:time_display, c)
  add_options(:tag_filter, c)
  add_options(:search, c)
  add_options(:save, c)
  c.action do |_global_options, options, args|
    raise DoingRuntimeError, %(Invalid output type "#{options[:output]}") if options[:output] && options[:output] !~ Doing::Plugins.plugin_regex(type: :export)

    raise MissingArgument, 'Missing date argument' if args.empty?

    date_string = args.join(' ')

    date_string.sub!(/(day) (\d)/, '\1 at \2')
    date_string.sub!(/(\d+)d( ago)?/, '\1 days ago')
    Doing.original_options[:date_begin] = date_string
    start = date_string.chronify(guess: :begin)
    finish = Time.now

    raise InvalidTimeExpression, 'Unrecognized date string' unless start

    Doing.logger.debug('Interpreter:', "date interpreted as #{start} through the current time")

    options[:times] = true if options[:totals]
    options[:sort_tags] = options[:tag_sort]

    Doing::Pager.page @wwid.list_date([start, finish], options[:section], options[:times], options[:output], options).chomp
    if options[:save]
      options[:after] = Doing.original_options[:date_begin] if Doing.original_options[:date_begin].good?
      Doing.config.save_view(options.to_view, options[:save].downcase)
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
doing-2.1.80 bin/commands/since.rb
doing-2.1.79 bin/commands/since.rb
doing-2.1.78 bin/commands/since.rb
doing-2.1.77 bin/commands/since.rb
doing-2.1.76 bin/commands/since.rb
doing-2.1.75 bin/commands/since.rb
doing-2.1.74 bin/commands/since.rb
doing-2.1.73 bin/commands/since.rb
doing-2.1.72 bin/commands/since.rb
doing-2.1.69 bin/commands/since.rb
doing-2.1.68 bin/commands/since.rb
doing-2.1.66 bin/commands/since.rb
doing-2.1.65 bin/commands/since.rb
doing-2.1.64 bin/commands/since.rb
doing-2.1.63 bin/commands/since.rb
doing-2.1.62 bin/commands/since.rb
doing-2.1.61 bin/commands/since.rb
doing-2.1.60 bin/commands/since.rb
doing-2.1.58 bin/commands/since.rb
doing-2.1.57 bin/commands/since.rb