timeboss 0.0.6 → 0.1.0
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/.github/ISSUE_TEMPLATE/bug_report.md +23 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.gitignore +2 -0
- data/.travis.yml +4 -1
- data/.yardopts +1 -0
- data/CODE_OF_CONDUCT.md +76 -0
- data/README.md +30 -18
- data/bin/tbsh +15 -0
- data/doc/TimeBoss.html +146 -0
- data/doc/TimeBoss/Calendar.html +137 -0
- data/doc/TimeBoss/Calendar/Day.html +594 -0
- data/doc/TimeBoss/Calendar/Half.html +396 -0
- data/doc/TimeBoss/Calendar/Month.html +396 -0
- data/doc/TimeBoss/Calendar/Parser.html +386 -0
- data/doc/TimeBoss/Calendar/Period.html +841 -0
- data/doc/TimeBoss/Calendar/Quarter.html +396 -0
- data/doc/TimeBoss/Calendar/Support.html +131 -0
- data/doc/TimeBoss/Calendar/Support/Formatter.html +459 -0
- data/doc/TimeBoss/Calendar/Support/MonthBased.html +591 -0
- data/doc/TimeBoss/Calendar/Support/MonthBasis.html +437 -0
- data/doc/TimeBoss/Calendar/Support/MonthlyUnit.html +591 -0
- data/doc/TimeBoss/Calendar/Support/Navigable.html +723 -0
- data/doc/TimeBoss/Calendar/Support/Shiftable.html +138 -0
- data/doc/TimeBoss/Calendar/Support/Unit.html +1299 -0
- data/doc/TimeBoss/Calendar/Waypoints.html +155 -0
- data/doc/TimeBoss/Calendar/Waypoints/Absolute.html +1378 -0
- data/doc/TimeBoss/Calendar/Waypoints/Relative.html +4308 -0
- data/doc/TimeBoss/Calendar/Week.html +671 -0
- data/doc/TimeBoss/Calendar/Year.html +319 -0
- data/doc/TimeBoss/Calendars.html +336 -0
- data/doc/TimeBoss/Calendars/Broadcast.html +221 -0
- data/doc/TimeBoss/Calendars/Broadcast/Basis.html +278 -0
- data/doc/TimeBoss/Calendars/Entry.html +399 -0
- data/doc/TimeBoss/Support.html +115 -0
- data/doc/TimeBoss/Support/Shellable.html +249 -0
- data/doc/_index.html +416 -0
- data/doc/class_list.html +51 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +496 -0
- data/doc/file.README.html +299 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +299 -0
- data/doc/js/app.js +314 -0
- data/doc/js/full_list.js +216 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +1139 -0
- data/doc/top-level-namespace.html +110 -0
- data/lib/tasks/calendars.rake +5 -0
- data/lib/timeboss.rb +4 -0
- data/lib/timeboss/calendar.rb +22 -0
- data/lib/timeboss/calendar/day.rb +19 -6
- data/lib/timeboss/calendar/half.rb +7 -2
- data/lib/timeboss/calendar/month.rb +7 -2
- data/lib/timeboss/calendar/parser.rb +1 -0
- data/lib/timeboss/calendar/period.rb +26 -11
- data/lib/timeboss/calendar/quarter.rb +7 -2
- data/lib/timeboss/calendar/support.rb +8 -0
- data/lib/timeboss/calendar/support/formatter.rb +1 -0
- data/lib/timeboss/calendar/support/month_basis.rb +3 -0
- data/lib/timeboss/calendar/support/{month_based.rb → monthly_unit.rb} +24 -18
- data/lib/timeboss/calendar/support/navigable.rb +73 -0
- data/lib/timeboss/calendar/support/shiftable.rb +3 -2
- data/lib/timeboss/calendar/support/unit.rb +26 -0
- data/lib/timeboss/calendar/waypoints.rb +6 -80
- data/lib/timeboss/calendar/waypoints/absolute.rb +114 -0
- data/lib/timeboss/calendar/waypoints/relative.rb +268 -0
- data/lib/timeboss/calendar/week.rb +26 -18
- data/lib/timeboss/calendar/year.rb +6 -5
- data/lib/timeboss/calendars.rb +20 -3
- data/lib/timeboss/version.rb +1 -1
- data/spec/calendar/day_spec.rb +1 -1
- data/spec/calendar/support/{month_based_spec.rb → monthly_unit_spec.rb} +18 -8
- data/spec/calendar/week_spec.rb +5 -13
- data/spec/calendars/broadcast_spec.rb +27 -7
- data/spec/calendars_spec.rb +7 -1
- data/timeboss.gemspec +1 -0
- metadata +77 -8
@@ -3,42 +3,50 @@ require_relative './support/unit'
|
|
3
3
|
|
4
4
|
module TimeBoss
|
5
5
|
class Calendar
|
6
|
+
# Representation of a single week within a calendar.
|
6
7
|
class Week < Support::Unit
|
7
|
-
|
8
|
-
|
9
|
-
def initialize(calendar, year_index, index, start_date, end_date)
|
8
|
+
def initialize(calendar, start_date, end_date)
|
10
9
|
super(calendar, start_date, end_date)
|
11
|
-
@year_index = year_index
|
12
|
-
@index = index
|
13
10
|
end
|
14
11
|
|
12
|
+
# Get a simple representation of this week.
|
13
|
+
# @return [String] (e.g. "2020W32")
|
15
14
|
def name
|
16
15
|
"#{year_index}W#{index}"
|
17
16
|
end
|
18
17
|
|
18
|
+
# Get a "pretty" representation of this week.
|
19
|
+
# @return [String] (e.g. "Week of August 3, 2020")
|
19
20
|
def title
|
20
21
|
"Week of #{start_date.strftime('%B %-d, %Y')}"
|
21
22
|
end
|
22
23
|
|
24
|
+
# Get a stringified representation of this week.
|
25
|
+
# @return [String] (e.g. "2020W32: 2020-08-03 thru 2020-08-09")
|
23
26
|
def to_s
|
24
27
|
"#{name}: #{start_date} thru #{end_date}"
|
25
28
|
end
|
26
29
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
# Get the index of this week within its containing year.
|
31
|
+
# @return [Integer]
|
32
|
+
def index
|
33
|
+
@_index ||= (((start_date - year.start_date) + 1) / 7.0).to_i + 1
|
34
|
+
end
|
35
|
+
|
36
|
+
# Get the year number for this week.
|
37
|
+
# @return [Integer] (e.g. 2020)
|
38
|
+
def year_index
|
39
|
+
@_year_index ||= year.year_index
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def down
|
45
|
+
self.class.new(calendar, start_date - 1.week, end_date - 1.week)
|
33
46
|
end
|
34
47
|
|
35
|
-
def
|
36
|
-
|
37
|
-
if index == weeks.last.index
|
38
|
-
self.class.new(calendar, year_index + 1, 1, start_date + 1.week, end_date + 1.week)
|
39
|
-
else
|
40
|
-
weeks[index]
|
41
|
-
end
|
48
|
+
def up
|
49
|
+
self.class.new(calendar, start_date + 1.week, end_date + 1.week)
|
42
50
|
end
|
43
51
|
end
|
44
52
|
end
|
@@ -1,18 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative './support/
|
2
|
+
require_relative './support/monthly_unit'
|
3
3
|
|
4
4
|
module TimeBoss
|
5
5
|
class Calendar
|
6
|
-
|
6
|
+
# Representation of a 12-month period within a calendar.
|
7
|
+
class Year < Support::MonthlyUnit
|
7
8
|
NUM_MONTHS = 12
|
8
9
|
|
10
|
+
# Get a simple representation of this year.
|
11
|
+
# @return [String] (e.g. "2020")
|
9
12
|
def name
|
10
13
|
year_index.to_s
|
11
14
|
end
|
12
15
|
|
13
|
-
|
14
|
-
name
|
15
|
-
end
|
16
|
+
alias_method :title, :name
|
16
17
|
end
|
17
18
|
end
|
18
19
|
end
|
data/lib/timeboss/calendars.rb
CHANGED
@@ -1,27 +1,44 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'active_support/core_ext/class/subclasses'
|
3
|
-
|
4
|
-
|
3
|
+
require_relative 'calendar'
|
4
|
+
|
5
|
+
Dir[File.expand_path('../calendars/*.rb', __FILE__)].each { |f| require f }
|
5
6
|
|
6
7
|
module TimeBoss
|
8
|
+
# A home for specific calendar implementations.
|
7
9
|
module Calendars
|
8
10
|
extend self
|
9
11
|
extend Enumerable
|
10
12
|
delegate :each, :length, to: :all
|
11
13
|
|
14
|
+
# Retrieve a list of all registered calendars.
|
15
|
+
# @return [Array<Entry>]
|
12
16
|
def all
|
13
17
|
@_all ||= TimeBoss::Calendar.subclasses.map do |klass|
|
14
18
|
Entry.new(klass.to_s.demodulize.underscore.to_sym, klass)
|
15
19
|
end
|
16
20
|
end
|
17
21
|
|
22
|
+
# Retrieve an instance of the specified named calendar.
|
23
|
+
# @param name [String, Symbol] the name of the calendar to retrieve.
|
24
|
+
# @return [Calendar]
|
18
25
|
def [](name)
|
19
|
-
find { |e| e.name == name
|
26
|
+
find { |e| e.name == name&.to_sym }&.calendar
|
20
27
|
end
|
21
28
|
|
22
29
|
private
|
23
30
|
|
24
31
|
Entry = Struct.new(:name, :klass) do
|
32
|
+
# @!method name
|
33
|
+
# Get the name of the calendar referenced in this entry.
|
34
|
+
# @return [Symbol]
|
35
|
+
|
36
|
+
# @!method klass
|
37
|
+
# The class implementing this calendar.
|
38
|
+
# @return [Class<Calendar>]
|
39
|
+
|
40
|
+
# Get an instance of the calendar referenced in this entry.
|
41
|
+
# @return [Calendar]
|
25
42
|
def calendar
|
26
43
|
@_calendar ||= klass.new
|
27
44
|
end
|
data/lib/timeboss/version.rb
CHANGED
data/spec/calendar/day_spec.rb
CHANGED
@@ -24,7 +24,7 @@ module TimeBoss
|
|
24
24
|
end
|
25
25
|
|
26
26
|
describe '#index' do
|
27
|
-
before(:each) { allow(
|
27
|
+
before(:each) { allow(subject).to receive(:year).and_return double(start_date: start_date - 3) }
|
28
28
|
|
29
29
|
it 'gets its index within the year' do
|
30
30
|
expect(subject.index).to eq 4
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module TimeBoss
|
2
2
|
class Calendar
|
3
3
|
module Support
|
4
|
-
describe
|
5
|
-
class
|
4
|
+
describe MonthlyUnit do
|
5
|
+
class MonthBasedChunk < described_class
|
6
6
|
NUM_MONTHS = 2
|
7
7
|
|
8
8
|
def name
|
9
9
|
"#{year_index}C#{index}"
|
10
10
|
end
|
11
11
|
end
|
12
|
-
let(:described_class) {
|
12
|
+
let(:described_class) { MonthBasedChunk }
|
13
13
|
let(:calendar) { double }
|
14
14
|
let(:start_date) { Date.parse('2018-06-25') }
|
15
15
|
let(:end_date) { Date.parse('2018-08-26') }
|
@@ -32,7 +32,17 @@ module TimeBoss
|
|
32
32
|
it 'can get the relevant weeks for the period' do
|
33
33
|
result = subject.weeks
|
34
34
|
result.each { |w| expect(w).to be_instance_of TimeBoss::Calendar::Week }
|
35
|
-
expect(result.map
|
35
|
+
expect(result.map { |w| w.start_date.to_s }).to eq [
|
36
|
+
'2018-06-25',
|
37
|
+
'2018-07-02',
|
38
|
+
'2018-07-09',
|
39
|
+
'2018-07-16',
|
40
|
+
'2018-07-23',
|
41
|
+
'2018-07-30',
|
42
|
+
'2018-08-06',
|
43
|
+
'2018-08-13',
|
44
|
+
'2018-08-20'
|
45
|
+
]
|
36
46
|
end
|
37
47
|
end
|
38
48
|
|
@@ -41,24 +51,24 @@ module TimeBoss
|
|
41
51
|
|
42
52
|
describe '#previous' do
|
43
53
|
it 'moves easily within itself' do
|
44
|
-
expect(calendar).to receive(:
|
54
|
+
expect(calendar).to receive(:month_based_chunk).with(48, 3).and_return result
|
45
55
|
expect(described_class.new(calendar, 48, 4, nil, nil).previous).to eq result
|
46
56
|
end
|
47
57
|
|
48
58
|
it 'flips to the previous container' do
|
49
|
-
expect(calendar).to receive(:
|
59
|
+
expect(calendar).to receive(:month_based_chunk).with(47, 6).and_return result
|
50
60
|
expect(described_class.new(calendar, 48, 1, nil, nil).previous).to eq result
|
51
61
|
end
|
52
62
|
end
|
53
63
|
|
54
64
|
describe '#next' do
|
55
65
|
it 'moves easily within itself' do
|
56
|
-
expect(calendar).to receive(:
|
66
|
+
expect(calendar).to receive(:month_based_chunk).with(48, 3).and_return result
|
57
67
|
expect(described_class.new(calendar, 48, 2, nil, nil).next).to eq result
|
58
68
|
end
|
59
69
|
|
60
70
|
it 'flips to the previous container' do
|
61
|
-
expect(calendar).to receive(:
|
71
|
+
expect(calendar).to receive(:month_based_chunk).with(48, 1).and_return result
|
62
72
|
expect(described_class.new(calendar, 47, 6, nil, nil).next).to eq result
|
63
73
|
end
|
64
74
|
end
|
data/spec/calendar/week_spec.rb
CHANGED
@@ -4,7 +4,7 @@ module TimeBoss
|
|
4
4
|
let(:calendar) { instance_double(TimeBoss::Calendar) }
|
5
5
|
let(:start_date) { Date.parse('2048-04-06') }
|
6
6
|
let(:end_date) { Date.parse('2048-04-12') }
|
7
|
-
let(:subject) { described_class.new(calendar,
|
7
|
+
let(:subject) { described_class.new(calendar, start_date, end_date) }
|
8
8
|
|
9
9
|
it 'knows its stuff' do
|
10
10
|
expect(subject.start_date).to eq start_date
|
@@ -12,18 +12,10 @@ module TimeBoss
|
|
12
12
|
expect(subject.to_range).to eq start_date..end_date
|
13
13
|
end
|
14
14
|
|
15
|
-
it 'knows its name' do
|
16
|
-
expect(subject.name).to eq '2048W15'
|
17
|
-
end
|
18
|
-
|
19
15
|
it 'knows its title' do
|
20
16
|
expect(subject.title).to eq "Week of April 6, 2048"
|
21
17
|
end
|
22
18
|
|
23
|
-
it 'can stringify itself' do
|
24
|
-
expect(subject.to_s).to include(subject.name, start_date.to_s, end_date.to_s)
|
25
|
-
end
|
26
|
-
|
27
19
|
describe '#current?' do
|
28
20
|
it 'knows when it is' do
|
29
21
|
allow(Date).to receive(:today).and_return start_date
|
@@ -46,13 +38,13 @@ module TimeBoss
|
|
46
38
|
end
|
47
39
|
|
48
40
|
it 'can wrap to the previous 52-week year' do
|
49
|
-
result = described_class.new(calendar,
|
41
|
+
result = described_class.new(calendar, Date.parse('2021-12-27'), Date.parse('2022-01-02')).previous
|
50
42
|
expect(result).to be_a described_class
|
51
43
|
expect(result.to_s).to eq "2021W52: 2021-12-20 thru 2021-12-26"
|
52
44
|
end
|
53
45
|
|
54
46
|
it 'can wrap to the previous 53-week year' do
|
55
|
-
result = described_class.new(calendar,
|
47
|
+
result = described_class.new(calendar, Date.parse('2024-01-01'), Date.parse('2024-01-07')).previous
|
56
48
|
expect(result).to be_a described_class
|
57
49
|
expect(result.to_s).to eq "2023W53: 2023-12-25 thru 2023-12-31"
|
58
50
|
end
|
@@ -66,13 +58,13 @@ module TimeBoss
|
|
66
58
|
end
|
67
59
|
|
68
60
|
it 'can wrap from week 52 to the next year' do
|
69
|
-
result = described_class.new(calendar,
|
61
|
+
result = described_class.new(calendar, Date.parse('2021-12-20'), Date.parse('2021-12-26')).next
|
70
62
|
expect(result).to be_a described_class
|
71
63
|
expect(result.to_s).to eq "2022W1: 2021-12-27 thru 2022-01-02"
|
72
64
|
end
|
73
65
|
|
74
66
|
it 'can wrap from week 53 to the next year' do
|
75
|
-
result = described_class.new(calendar,
|
67
|
+
result = described_class.new(calendar, Date.parse('2023-12-25'), Date.parse('2023-12-31')).next
|
76
68
|
expect(result).to be_a described_class
|
77
69
|
expect(result.to_s).to eq "2024W1: 2024-01-01 thru 2024-01-07"
|
78
70
|
end
|
@@ -2,6 +2,26 @@ module TimeBoss
|
|
2
2
|
describe Calendars::Broadcast do
|
3
3
|
let(:subject) { described_class.new }
|
4
4
|
|
5
|
+
context 'days' do
|
6
|
+
it 'can get today' do
|
7
|
+
day = subject.today
|
8
|
+
expect(day).to be_instance_of(TimeBoss::Calendar::Day)
|
9
|
+
expect(day.start_date).to eq Date.today
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'can get yesterday' do
|
13
|
+
day = subject.yesterday
|
14
|
+
expect(day).to be_instance_of(TimeBoss::Calendar::Day)
|
15
|
+
expect(day.start_date).to eq Date.yesterday
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'can get tomorrow' do
|
19
|
+
day = subject.tomorrow
|
20
|
+
expect(day).to be_instance_of(TimeBoss::Calendar::Day)
|
21
|
+
expect(day.start_date).to eq Date.tomorrow
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
5
25
|
context 'quarters' do
|
6
26
|
describe '#quarter' do
|
7
27
|
it 'knows 2017Q2' do
|
@@ -113,8 +133,8 @@ module TimeBoss
|
|
113
133
|
expect(quarters.map(&:name)).to eq ['2015Q3', '2015Q4', '2016Q1', '2016Q2', '2016Q3']
|
114
134
|
end
|
115
135
|
|
116
|
-
it 'can get a quarter
|
117
|
-
quarter = subject.
|
136
|
+
it 'can get a quarter ahead' do
|
137
|
+
quarter = subject.quarters_ahead(4)
|
118
138
|
expect(quarter).to be_a TimeBoss::Calendar::Quarter
|
119
139
|
expect(quarter.name).to eq '2016Q3'
|
120
140
|
end
|
@@ -251,8 +271,8 @@ module TimeBoss
|
|
251
271
|
expect(months.map(&:name)).to eq ['2015M3', '2015M4', '2015M5', '2015M6', '2015M7']
|
252
272
|
end
|
253
273
|
|
254
|
-
it 'can get a month
|
255
|
-
month = subject.
|
274
|
+
it 'can get a month ahead' do
|
275
|
+
month = subject.months_ahead(4)
|
256
276
|
expect(month).to be_a TimeBoss::Calendar::Month
|
257
277
|
expect(month.name).to eq '2015M7'
|
258
278
|
end
|
@@ -490,7 +510,7 @@ module TimeBoss
|
|
490
510
|
it 'can parse mathematic expressions' do
|
491
511
|
result = subject.parse('this_month + 2')
|
492
512
|
expect(result).to be_a TimeBoss::Calendar::Month
|
493
|
-
expect(result).to eq subject.
|
513
|
+
expect(result).to eq subject.months_ahead(2)
|
494
514
|
end
|
495
515
|
|
496
516
|
context 'ranges' do
|
@@ -554,7 +574,7 @@ module TimeBoss
|
|
554
574
|
|
555
575
|
it 'can shift to a different year' do
|
556
576
|
allow(subject).to receive(:this_year).and_return subject.parse('2019')
|
557
|
-
result = basis.
|
577
|
+
result = basis.years_ahead(3)
|
558
578
|
expect(result).to be_a TimeBoss::Calendar::Day
|
559
579
|
expect(result.to_s).to eq '2022-04-19'
|
560
580
|
expect(basis.in_year).to eq 114
|
@@ -596,7 +616,7 @@ module TimeBoss
|
|
596
616
|
|
597
617
|
it 'can shift to a different year' do
|
598
618
|
allow(subject).to receive(:this_year).and_return subject.parse('2020')
|
599
|
-
result = basis.
|
619
|
+
result = basis.years_ahead(4)
|
600
620
|
expect(result).to be_a TimeBoss::Calendar::Month
|
601
621
|
expect(result.name).to eq '2024M4'
|
602
622
|
expect(basis.in_year).to eq 4
|
data/spec/calendars_spec.rb
CHANGED
@@ -28,10 +28,16 @@ module TimeBoss
|
|
28
28
|
c2 = described_class[:broadcast]
|
29
29
|
expect(c1).to be_instance_of TimeBoss::Calendars::Broadcast
|
30
30
|
expect(c1).to be c2
|
31
|
+
|
32
|
+
expect(c1.name).to eq 'broadcast'
|
33
|
+
expect(c1.title).to eq 'Broadcast'
|
31
34
|
end
|
32
35
|
|
33
36
|
it 'can return a new calendar' do
|
34
|
-
|
37
|
+
c1 = described_class[:my_test_calendar]
|
38
|
+
expect(c1).to be_instance_of MyTestCalendar
|
39
|
+
expect(c1.name).to eq 'my_test_calendar'
|
40
|
+
expect(c1.title).to eq 'My Test Calendar'
|
35
41
|
end
|
36
42
|
|
37
43
|
it 'can graceully give you nothing' do
|
data/timeboss.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timeboss
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin McDonald
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -108,20 +108,86 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: yard
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description: Broadcast Calendar navigation in Ruby made simple
|
112
126
|
email:
|
113
127
|
- kevinstuffandthings@gmail.com
|
114
|
-
executables:
|
128
|
+
executables:
|
129
|
+
- tbsh
|
115
130
|
extensions: []
|
116
131
|
extra_rdoc_files: []
|
117
132
|
files:
|
133
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
134
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
118
135
|
- ".gitignore"
|
119
136
|
- ".rspec"
|
120
137
|
- ".travis.yml"
|
138
|
+
- ".yardoc/checksums"
|
139
|
+
- ".yardoc/complete"
|
140
|
+
- ".yardoc/object_types"
|
141
|
+
- ".yardoc/objects/root.dat"
|
142
|
+
- ".yardoc/proxy_types"
|
143
|
+
- ".yardopts"
|
144
|
+
- CODE_OF_CONDUCT.md
|
121
145
|
- Gemfile
|
122
146
|
- LICENSE.txt
|
123
147
|
- README.md
|
124
148
|
- Rakefile
|
149
|
+
- bin/tbsh
|
150
|
+
- doc/TimeBoss.html
|
151
|
+
- doc/TimeBoss/Calendar.html
|
152
|
+
- doc/TimeBoss/Calendar/Day.html
|
153
|
+
- doc/TimeBoss/Calendar/Half.html
|
154
|
+
- doc/TimeBoss/Calendar/Month.html
|
155
|
+
- doc/TimeBoss/Calendar/Parser.html
|
156
|
+
- doc/TimeBoss/Calendar/Period.html
|
157
|
+
- doc/TimeBoss/Calendar/Quarter.html
|
158
|
+
- doc/TimeBoss/Calendar/Support.html
|
159
|
+
- doc/TimeBoss/Calendar/Support/Formatter.html
|
160
|
+
- doc/TimeBoss/Calendar/Support/MonthBased.html
|
161
|
+
- doc/TimeBoss/Calendar/Support/MonthBasis.html
|
162
|
+
- doc/TimeBoss/Calendar/Support/MonthlyUnit.html
|
163
|
+
- doc/TimeBoss/Calendar/Support/Navigable.html
|
164
|
+
- doc/TimeBoss/Calendar/Support/Shiftable.html
|
165
|
+
- doc/TimeBoss/Calendar/Support/Unit.html
|
166
|
+
- doc/TimeBoss/Calendar/Waypoints.html
|
167
|
+
- doc/TimeBoss/Calendar/Waypoints/Absolute.html
|
168
|
+
- doc/TimeBoss/Calendar/Waypoints/Relative.html
|
169
|
+
- doc/TimeBoss/Calendar/Week.html
|
170
|
+
- doc/TimeBoss/Calendar/Year.html
|
171
|
+
- doc/TimeBoss/Calendars.html
|
172
|
+
- doc/TimeBoss/Calendars/Broadcast.html
|
173
|
+
- doc/TimeBoss/Calendars/Broadcast/Basis.html
|
174
|
+
- doc/TimeBoss/Calendars/Entry.html
|
175
|
+
- doc/TimeBoss/Support.html
|
176
|
+
- doc/TimeBoss/Support/Shellable.html
|
177
|
+
- doc/_index.html
|
178
|
+
- doc/class_list.html
|
179
|
+
- doc/css/common.css
|
180
|
+
- doc/css/full_list.css
|
181
|
+
- doc/css/style.css
|
182
|
+
- doc/file.README.html
|
183
|
+
- doc/file_list.html
|
184
|
+
- doc/frames.html
|
185
|
+
- doc/index.html
|
186
|
+
- doc/js/app.js
|
187
|
+
- doc/js/full_list.js
|
188
|
+
- doc/js/jquery.js
|
189
|
+
- doc/method_list.html
|
190
|
+
- doc/top-level-namespace.html
|
125
191
|
- lib/tasks/calendars.rake
|
126
192
|
- lib/tasks/timeboss.rake
|
127
193
|
- lib/timeboss.rb
|
@@ -132,12 +198,16 @@ files:
|
|
132
198
|
- lib/timeboss/calendar/parser.rb
|
133
199
|
- lib/timeboss/calendar/period.rb
|
134
200
|
- lib/timeboss/calendar/quarter.rb
|
201
|
+
- lib/timeboss/calendar/support.rb
|
135
202
|
- lib/timeboss/calendar/support/formatter.rb
|
136
|
-
- lib/timeboss/calendar/support/month_based.rb
|
137
203
|
- lib/timeboss/calendar/support/month_basis.rb
|
204
|
+
- lib/timeboss/calendar/support/monthly_unit.rb
|
205
|
+
- lib/timeboss/calendar/support/navigable.rb
|
138
206
|
- lib/timeboss/calendar/support/shiftable.rb
|
139
207
|
- lib/timeboss/calendar/support/unit.rb
|
140
208
|
- lib/timeboss/calendar/waypoints.rb
|
209
|
+
- lib/timeboss/calendar/waypoints/absolute.rb
|
210
|
+
- lib/timeboss/calendar/waypoints/relative.rb
|
141
211
|
- lib/timeboss/calendar/week.rb
|
142
212
|
- lib/timeboss/calendar/year.rb
|
143
213
|
- lib/timeboss/calendars.rb
|
@@ -146,7 +216,7 @@ files:
|
|
146
216
|
- lib/timeboss/version.rb
|
147
217
|
- spec/calendar/day_spec.rb
|
148
218
|
- spec/calendar/quarter_spec.rb
|
149
|
-
- spec/calendar/support/
|
219
|
+
- spec/calendar/support/monthly_unit_spec.rb
|
150
220
|
- spec/calendar/support/unit_spec.rb
|
151
221
|
- spec/calendar/week_spec.rb
|
152
222
|
- spec/calendars/broadcast_spec.rb
|
@@ -172,15 +242,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
242
|
- !ruby/object:Gem::Version
|
173
243
|
version: '0'
|
174
244
|
requirements: []
|
175
|
-
|
176
|
-
rubygems_version: 2.7.7
|
245
|
+
rubygems_version: 3.0.8
|
177
246
|
signing_key:
|
178
247
|
specification_version: 4
|
179
248
|
summary: Broadcast Calendar navigation in Ruby made simple
|
180
249
|
test_files:
|
181
250
|
- spec/calendar/day_spec.rb
|
182
251
|
- spec/calendar/quarter_spec.rb
|
183
|
-
- spec/calendar/support/
|
252
|
+
- spec/calendar/support/monthly_unit_spec.rb
|
184
253
|
- spec/calendar/support/unit_spec.rb
|
185
254
|
- spec/calendar/week_spec.rb
|
186
255
|
- spec/calendars/broadcast_spec.rb
|