mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-06-26 10:54:28 +02:00
Range: Renamed meethods by prepending 'is_'
This commit is contained in:
parent
b626f0bec4
commit
e1e1a30a98
18 changed files with 71 additions and 71 deletions
|
@ -109,7 +109,7 @@ void Database::addInterval (const Interval& interval)
|
|||
// Intersect the original interval range, and the segment.
|
||||
Interval segmentedInterval (interval);
|
||||
segmentedInterval.range = intervalRange.intersect (segment);
|
||||
if (! interval.range.ended ())
|
||||
if (interval.range.is_open ())
|
||||
segmentedInterval.range.end = Datetime (0);
|
||||
|
||||
_files[df].addInterval (segmentedInterval);
|
||||
|
@ -129,7 +129,7 @@ void Database::deleteInterval (const Interval& interval)
|
|||
// Intersect the original interval range, and the segment.
|
||||
Interval segmentedInterval (interval);
|
||||
segmentedInterval.range = intervalRange.intersect (segment);
|
||||
if (! interval.range.ended ())
|
||||
if (! interval.range.is_ended ())
|
||||
segmentedInterval.range.end = Datetime (0);
|
||||
|
||||
_files[df].deleteInterval (segmentedInterval);
|
||||
|
|
|
@ -142,12 +142,12 @@ std::string Interval::json () const
|
|||
std::stringstream out;
|
||||
out << '{';
|
||||
|
||||
if (range.started ())
|
||||
if (range.is_started ())
|
||||
out << "\"start\":\"" << range.start.toISO () << "\"";
|
||||
|
||||
if (range.ended ())
|
||||
if (range.is_ended ())
|
||||
{
|
||||
if (range.started ())
|
||||
if (range.is_started ())
|
||||
out << ',';
|
||||
out << "\"end\":\"" << range.end.toISO () << "\"";
|
||||
}
|
||||
|
|
|
@ -48,20 +48,20 @@ bool Range::operator== (const Range& other) const
|
|||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
bool Range::open () const
|
||||
bool Range::is_open () const
|
||||
{
|
||||
return start.toEpoch () > 0 &&
|
||||
end.toEpoch () == 0;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
bool Range::started () const
|
||||
bool Range::is_started () const
|
||||
{
|
||||
return start.toEpoch () > 0;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
bool Range::ended () const
|
||||
bool Range::is_ended () const
|
||||
{
|
||||
return end.toEpoch () > 0;
|
||||
}
|
||||
|
@ -93,15 +93,15 @@ bool Range::ended () const
|
|||
//
|
||||
bool Range::overlap (const Range& other) const
|
||||
{
|
||||
if (! started () || ! other.started ())
|
||||
if (! is_started () || ! other.is_started ())
|
||||
return false;
|
||||
|
||||
// Other range ends before this range starts.
|
||||
if (other.ended () && other.end <= start)
|
||||
if (other.is_ended () && other.end <= start)
|
||||
return false;
|
||||
|
||||
// Other range starts after this range ends.
|
||||
if (ended () && other.start >= end)
|
||||
if (is_ended () && other.start >= end)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
@ -122,17 +122,17 @@ bool Range::overlap (const Range& other) const
|
|||
//
|
||||
bool Range::encloses (const Range& other) const
|
||||
{
|
||||
if (started ())
|
||||
if (is_started ())
|
||||
{
|
||||
if (ended ())
|
||||
if (is_ended ())
|
||||
{
|
||||
if (other.started () && other.start >= start &&
|
||||
other.ended () && other.end <= end)
|
||||
if (other.is_started () && other.start >= start &&
|
||||
other.is_ended () && other.end <= end)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (other.started () && other.start >= start)
|
||||
if (other.is_started () && other.start >= start)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -174,16 +174,16 @@ Range Range::intersect (const Range& other) const
|
|||
Range result;
|
||||
result.start = start > other.start ? start : other.start;
|
||||
|
||||
if (ended ())
|
||||
if (is_ended ())
|
||||
{
|
||||
if (other.ended ())
|
||||
if (other.is_ended ())
|
||||
result.end = end < other.end ? end : other.end;
|
||||
else
|
||||
result.end = end;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (other.ended ())
|
||||
if (other.is_ended ())
|
||||
result.end = other.end;
|
||||
}
|
||||
|
||||
|
@ -228,17 +228,17 @@ std::vector <Range> Range::subtract (const Range& other) const
|
|||
{
|
||||
results.push_back (Range (start, other.start));
|
||||
|
||||
if (other.ended () &&
|
||||
(! ended () || end > other.end))
|
||||
if (other.is_ended () &&
|
||||
(! is_ended () || end > other.end))
|
||||
{
|
||||
results.push_back (Range (other.end, end));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (other.ended ())
|
||||
if (other.is_ended ())
|
||||
{
|
||||
if (ended ())
|
||||
if (is_ended ())
|
||||
{
|
||||
if (end > other.end)
|
||||
results.push_back (Range (other.end, end));
|
||||
|
@ -265,7 +265,7 @@ std::vector <Range> Range::subtract (const Range& other) const
|
|||
// If the range is open, use 'now' as the end.
|
||||
time_t Range::total () const
|
||||
{
|
||||
if (ended ())
|
||||
if (is_ended ())
|
||||
return Datetime (end) - Datetime (start);
|
||||
|
||||
return Datetime () - Datetime (start);
|
||||
|
|
|
@ -37,9 +37,10 @@ public:
|
|||
Range (const Datetime&, const Datetime&);
|
||||
bool operator== (const Range&) const;
|
||||
|
||||
bool open () const;
|
||||
bool started () const;
|
||||
bool ended () const;
|
||||
bool is_open () const;
|
||||
bool is_started () const;
|
||||
bool is_ended () const;
|
||||
|
||||
bool overlap (const Range&) const;
|
||||
bool encloses (const Range&) const;
|
||||
Range intersect (const Range&) const;
|
||||
|
|
|
@ -37,7 +37,7 @@ int CmdCancel (
|
|||
{
|
||||
// If there is an open interval, cancel it by deleting it..
|
||||
auto latest = getLatestInterval (database);
|
||||
if (latest.range.open ())
|
||||
if (latest.range.is_open ())
|
||||
{
|
||||
database.deleteInterval (latest);
|
||||
if (rules.getBoolean ("verbose"))
|
||||
|
|
|
@ -35,7 +35,7 @@ int CmdClear (
|
|||
Database& database)
|
||||
{
|
||||
auto filter = getFilter (cli);
|
||||
if (! filter.range.started () &&
|
||||
if (! filter.range.is_started () &&
|
||||
filter.tags ().size () == 0)
|
||||
throw std::string ("The 'clear' command refuses to delete all your data.");
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ int CmdContinue (
|
|||
auto latest = getLatestInterval (database);
|
||||
if (! latest.empty ())
|
||||
{
|
||||
if (! latest.range.open ())
|
||||
if (! latest.range.is_open ())
|
||||
{
|
||||
// Open an identical interval.
|
||||
latest.range.start = Datetime ();
|
||||
|
|
|
@ -37,7 +37,7 @@ int CmdDefault (Rules& rules, Database& database)
|
|||
|
||||
// Load the most recent interval, summarize and display.
|
||||
auto interval = getLatestInterval (database);
|
||||
if (interval.range.open ())
|
||||
if (interval.range.is_open ())
|
||||
{
|
||||
if (rules.getBoolean ("verbose"))
|
||||
std::cout << intervalSummarize (rules, interval);
|
||||
|
|
|
@ -50,7 +50,7 @@ int CmdReportDay (
|
|||
{
|
||||
// Create a filter, and if empty, choose 'today'.
|
||||
auto filter = getFilter (cli);
|
||||
if (! filter.range.started ())
|
||||
if (! filter.range.is_started ())
|
||||
filter.range = Range (Datetime ("today"), Datetime ("tomorrow"));
|
||||
|
||||
// Load the data.
|
||||
|
@ -197,7 +197,7 @@ static void renderInterval (
|
|||
return;
|
||||
|
||||
Interval clipped = clip (track, day_range);
|
||||
if (track.range.open ())
|
||||
if (track.range.is_open ())
|
||||
clipped.range.end = Datetime ();
|
||||
|
||||
auto start_mins = clipped.range.start.hour () * 60 + clipped.range.start.minute ();
|
||||
|
@ -250,7 +250,7 @@ static void renderInterval (
|
|||
|
||||
// An open interval gets a "..." in the bottom right corner, or
|
||||
// whatever fits.
|
||||
if (track.range.open ())
|
||||
if (track.range.is_open ())
|
||||
line2.add ("+", start_offset + width - 1, colorTrack);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ int CmdReportSummary (
|
|||
auto filter = getFilter (cli);
|
||||
|
||||
// If filter is empty, choose 'today'.
|
||||
if (! filter.range.started ())
|
||||
if (! filter.range.is_started ())
|
||||
filter.range = Range (Datetime ("today"), Datetime ("tomorrow"));
|
||||
|
||||
// Load the data.
|
||||
|
@ -87,7 +87,7 @@ int CmdReportSummary (
|
|||
|
||||
// Intersect track with day.
|
||||
auto today = day_range.intersect (track.range);
|
||||
if (track.range.open ())
|
||||
if (track.range.is_open ())
|
||||
today.end = Datetime ();
|
||||
|
||||
std::string tags = "";
|
||||
|
@ -100,7 +100,7 @@ int CmdReportSummary (
|
|||
|
||||
table.set (row, 3, tags);
|
||||
table.set (row, 4, today.start.toString ("h:N:S"));
|
||||
table.set (row, 5, (track.range.open () ? "-" : today.end.toString ("h:N:S")));
|
||||
table.set (row, 5, (track.range.is_open () ? "-" : today.end.toString ("h:N:S")));
|
||||
table.set (row, 6, Duration (today.total ()).format ());
|
||||
|
||||
daily_total += today.total ();
|
||||
|
|
|
@ -43,7 +43,7 @@ int CmdStart (
|
|||
|
||||
// If the latest interval is open, close it.
|
||||
auto latest = getLatestInterval (database);
|
||||
if (latest.range.open ())
|
||||
if (latest.range.is_open ())
|
||||
{
|
||||
// Stop it.
|
||||
Interval modified {latest};
|
||||
|
|
|
@ -41,7 +41,7 @@ int CmdStop (
|
|||
auto latest = getLatestInterval (database);
|
||||
|
||||
// Verify the interval is open.
|
||||
if (latest.range.open ())
|
||||
if (latest.range.is_open ())
|
||||
{
|
||||
// Stop it.
|
||||
Interval modified {latest};
|
||||
|
|
|
@ -38,12 +38,11 @@ int CmdTrack (
|
|||
// If this is not a proper closed interval, then the user is trying to make
|
||||
// the 'track' command behave like 'start', so delegate to CmdStart.
|
||||
auto filter = getFilter (cli);
|
||||
if (! filter.range.started () ||
|
||||
! filter.range.ended ())
|
||||
if (! filter.range.is_started () ||
|
||||
! filter.range.is_ended ())
|
||||
return CmdStart (cli, rules, database);
|
||||
|
||||
auto exclusions = getAllExclusions (rules, filter.range);
|
||||
|
||||
for (auto& interval : flatten (filter, exclusions))
|
||||
database.addInterval (interval);
|
||||
|
||||
|
|
|
@ -410,7 +410,7 @@ std::vector <Interval> flatten (
|
|||
{
|
||||
std::vector <Interval> all;
|
||||
|
||||
if (interval.range.open ())
|
||||
if (interval.range.is_open ())
|
||||
{
|
||||
all.push_back (interval);
|
||||
}
|
||||
|
@ -507,7 +507,7 @@ Range outerRange (const std::vector <Interval>& intervals)
|
|||
if (interval.range.end > outer.end)
|
||||
outer.end = interval.range.end;
|
||||
|
||||
if (! interval.range.ended ())
|
||||
if (! interval.range.is_ended ())
|
||||
outer.end = Datetime ();
|
||||
}
|
||||
|
||||
|
@ -578,7 +578,7 @@ bool matchesFilter (const Interval& interval, const Interval& filter)
|
|||
// Take an interval and clip it to the range.
|
||||
Interval clip (const Interval& interval, const Range& range)
|
||||
{
|
||||
if (! range.started () ||
|
||||
if (! range.is_started () ||
|
||||
range.total () == 0)
|
||||
return interval;
|
||||
|
||||
|
@ -614,7 +614,7 @@ std::vector <Interval> getTrackedIntervals (
|
|||
// [earliest start, latest end)
|
||||
//
|
||||
// Avoid assigning a zero-width range - leave it unstarted instead.
|
||||
if (! filter.range.started ())
|
||||
if (! filter.range.is_started ())
|
||||
{
|
||||
auto outer = outerRange (inclusions);
|
||||
if (outer.total ())
|
||||
|
|
|
@ -51,7 +51,7 @@ Color tagColor (const Rules& rules, const std::string& tag)
|
|||
std::string intervalSummarize (const Rules& rules, const Interval& interval)
|
||||
{
|
||||
std::stringstream out;
|
||||
if (interval.range.started ())
|
||||
if (interval.range.is_started ())
|
||||
{
|
||||
// Combine and colorize tags.
|
||||
std::string tags;
|
||||
|
@ -64,7 +64,7 @@ std::string intervalSummarize (const Rules& rules, const Interval& interval)
|
|||
}
|
||||
|
||||
// Interval closed.
|
||||
if (interval.range.ended ())
|
||||
if (interval.range.is_ended ())
|
||||
{
|
||||
Duration dur (Datetime (interval.range.end) - Datetime (interval.range.start));
|
||||
out << "Recorded " << tags << '\n'
|
||||
|
|
|
@ -67,8 +67,8 @@ int main (int, char**)
|
|||
Interval i3;
|
||||
i3.range = Range (Datetime ("20160427T160000Z"), Datetime (0));
|
||||
i3.tag ("foo");
|
||||
t.ok (i3.range.started (), "i3 range started");
|
||||
t.notok (i3.range.ended (), "i3 range not ended");
|
||||
t.ok (i3.range.is_started (), "i3 range started");
|
||||
t.notok (i3.range.is_ended (), "i3 range not ended");
|
||||
|
||||
results = flatten (i3, exclusions);
|
||||
t.ok (results.size () == 1, "flatten i3 --> 1 fragment");
|
||||
|
|
|
@ -33,23 +33,23 @@ int main (int, char**)
|
|||
{
|
||||
UnitTest t (38);
|
||||
|
||||
// bool started () const;
|
||||
// bool ended () const;
|
||||
// bool is_started () const;
|
||||
// bool is_ended () const;
|
||||
Interval i1;
|
||||
t.is (i1.empty (), true, "Interval().empty -> true");
|
||||
t.is (i1.range.started (), false, "Interval().started -> false");
|
||||
t.is (i1.range.ended (), false, "Interval().ended -> false");
|
||||
t.is (i1.empty (), true, "Interval().empty -> true");
|
||||
t.is (i1.range.is_started (), false, "Interval().is_started -> false");
|
||||
t.is (i1.range.is_ended (), false, "Interval().is_ended -> false");
|
||||
|
||||
// void start (Datetime);
|
||||
i1.range.start = Datetime ();
|
||||
t.is (i1.empty (), false, "Interval().empty -> false");
|
||||
t.is (i1.range.started (), true, "Interval(start=now).started -> true");
|
||||
t.is (i1.range.ended (), false, "Interval(start=now).ended -> false");
|
||||
t.is (i1.empty (), false, "Interval().empty -> false");
|
||||
t.is (i1.range.is_started (), true, "Interval(start=now).is_started -> true");
|
||||
t.is (i1.range.is_ended (), false, "Interval(start=now).is_ended -> false");
|
||||
|
||||
// void end (Datetime);
|
||||
i1.range.end = Datetime ();
|
||||
t.is (i1.range.started (), true, "Interval(start=now,end=now).started -> true");
|
||||
t.is (i1.range.ended (), true, "Interval(start=now,end=now).ended -> true");
|
||||
t.is (i1.range.is_started (), true, "Interval(start=now,end=now).is_started -> true");
|
||||
t.is (i1.range.is_ended (), true, "Interval(start=now,end=now).is_ended -> true");
|
||||
|
||||
// std::set <std::string> tags () const;
|
||||
// void tag (const std::string&);
|
||||
|
|
|
@ -34,24 +34,24 @@ int main (int, char**)
|
|||
{
|
||||
UnitTest t (87);
|
||||
|
||||
// bool started () const;
|
||||
// bool ended () const;
|
||||
// bool is_started () const;
|
||||
// bool is_ended () const;
|
||||
Range i1;
|
||||
t.is (i1.started (), false, "Range().started -> false");
|
||||
t.is (i1.ended (), false, "Range().ended -> false");
|
||||
t.is (i1.open (), false, "Range().open -> false");
|
||||
t.is (i1.is_started (), false, "Range().is_started -> false");
|
||||
t.is (i1.is_ended (), false, "Range().is_ended -> false");
|
||||
t.is (i1.is_open (), false, "Range().is_open -> false");
|
||||
|
||||
// void start (Datetime);
|
||||
i1.start = Datetime ();
|
||||
t.is (i1.started (), true, "Range(start=now).started -> true");
|
||||
t.is (i1.ended (), false, "Range(start=now).ended -> false");
|
||||
t.is (i1.open (), true, "Range(start=now).open -> true");
|
||||
t.is (i1.is_started (), true, "Range(start=now).is_started -> true");
|
||||
t.is (i1.is_ended (), false, "Range(start=now).is_ended -> false");
|
||||
t.is (i1.is_open (), true, "Range(start=now).is_open -> true");
|
||||
|
||||
// void end (Datetime);
|
||||
i1.end = Datetime ();
|
||||
t.is (i1.started (), true, "Range(start=now,end=now).started -> true");
|
||||
t.is (i1.ended (), true, "Range(start=now,end=now).ended -> true");
|
||||
t.is (i1.open (), false, "Range(start=now,end=now).open -> false");
|
||||
t.is (i1.is_started (), true, "Range(start=now,end=now).is_started -> true");
|
||||
t.is (i1.is_ended (), true, "Range(start=now,end=now).is_ended -> true");
|
||||
t.is (i1.is_open (), false, "Range(start=now,end=now).is_open -> false");
|
||||
|
||||
// this [--------)
|
||||
// A [--------)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue