Range: Renamed meethods by prepending 'is_'

This commit is contained in:
Paul Beckingham 2016-05-12 08:32:40 -04:00
parent b626f0bec4
commit e1e1a30a98
18 changed files with 71 additions and 71 deletions

View file

@ -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);

View file

@ -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 () << "\"";
}

View file

@ -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);

View file

@ -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;

View file

@ -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"))

View file

@ -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.");

View file

@ -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 ();

View file

@ -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);

View file

@ -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);
}
}

View file

@ -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 ();

View file

@ -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};

View file

@ -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};

View file

@ -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);

View file

@ -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 ())

View file

@ -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'

View file

@ -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");

View file

@ -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&);

View file

@ -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 [--------)