timeboss 0.3.0 → 1.0.5

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/gem-push.yml +31 -0
  3. data/.github/workflows/ruby.yml +35 -0
  4. data/.travis.yml +3 -2
  5. data/Gemfile +2 -1
  6. data/README.md +17 -7
  7. data/Rakefile +3 -1
  8. data/bin/tbsh +2 -2
  9. data/lib/tasks/calendars.rake +5 -5
  10. data/lib/tasks/timeboss.rake +2 -2
  11. data/lib/timeboss.rb +1 -0
  12. data/lib/timeboss/calendar.rb +5 -4
  13. data/lib/timeboss/calendar/day.rb +3 -2
  14. data/lib/timeboss/calendar/half.rb +2 -1
  15. data/lib/timeboss/calendar/month.rb +2 -1
  16. data/lib/timeboss/calendar/parser.rb +9 -8
  17. data/lib/timeboss/calendar/period.rb +88 -12
  18. data/lib/timeboss/calendar/quarter.rb +2 -1
  19. data/lib/timeboss/calendar/support/formatter.rb +5 -4
  20. data/lib/timeboss/calendar/support/month_basis.rb +1 -1
  21. data/lib/timeboss/calendar/support/monthly_unit.rb +7 -6
  22. data/lib/timeboss/calendar/support/navigable.rb +2 -1
  23. data/lib/timeboss/calendar/support/shiftable.rb +12 -11
  24. data/lib/timeboss/calendar/support/translatable.rb +3 -2
  25. data/lib/timeboss/calendar/support/unit.rb +18 -13
  26. data/lib/timeboss/calendar/waypoints/absolute.rb +4 -3
  27. data/lib/timeboss/calendar/waypoints/relative.rb +14 -13
  28. data/lib/timeboss/calendar/week.rb +3 -2
  29. data/lib/timeboss/calendar/year.rb +2 -1
  30. data/lib/timeboss/calendars.rb +3 -2
  31. data/lib/timeboss/calendars/broadcast.rb +8 -7
  32. data/lib/timeboss/calendars/gregorian.rb +2 -1
  33. data/lib/timeboss/version.rb +2 -1
  34. data/spec/calendar/day_spec.rb +14 -14
  35. data/spec/calendar/quarter_spec.rb +9 -9
  36. data/spec/calendar/support/monthly_unit_spec.rb +36 -35
  37. data/spec/calendar/support/unit_spec.rb +23 -22
  38. data/spec/calendar/week_spec.rb +20 -20
  39. data/spec/calendars/broadcast_spec.rb +310 -310
  40. data/spec/calendars/gregorian_spec.rb +258 -258
  41. data/spec/calendars_spec.rb +19 -19
  42. data/spec/spec_helper.rb +2 -2
  43. data/timeboss.gemspec +16 -14
  44. metadata +33 -5
  45. data/lib/timeboss/support/shellable.rb +0 -17
@@ -1,48 +1,48 @@
1
1
  module TimeBoss
2
- describe Calendars do
3
- class MyCal < TimeBoss::Calendar
4
- def initialize
5
- super(basis: nil)
6
- end
2
+ class TestMyCal < TimeBoss::Calendar
3
+ def initialize
4
+ super(basis: nil)
7
5
  end
6
+ end
8
7
 
9
- TimeBoss::Calendars.register(:my_amazing_calendar, MyCal)
8
+ describe Calendars do
9
+ TimeBoss::Calendars.register(:my_amazing_calendar, TestMyCal)
10
10
 
11
- describe '#all' do
11
+ describe "#all" do
12
12
  let(:all) { described_class.all }
13
13
 
14
- it 'can get a list of all the registered calendars' do
14
+ it "can get a list of all the registered calendars" do
15
15
  expect(all).to be_a Array
16
16
  expect(all.length).to be > 1
17
17
  all.each { |e| expect(e).to be_a described_class::Entry }
18
18
  end
19
19
 
20
- context 'enumerability' do
21
- it 'can get a list of names' do
20
+ context "enumerability" do
21
+ it "can get a list of names" do
22
22
  expect(described_class.map(&:name)).to include(:broadcast, :my_amazing_calendar)
23
23
  end
24
24
  end
25
25
  end
26
26
 
27
- describe '#[]' do
28
- it 'can return a baked-in calendar' do
27
+ describe "#[]" do
28
+ it "can return a baked-in calendar" do
29
29
  c1 = described_class[:broadcast]
30
30
  c2 = described_class[:broadcast]
31
31
  expect(c1).to be_instance_of TimeBoss::Calendars::Broadcast
32
32
  expect(c1).to be c2
33
33
 
34
- expect(c1.name).to eq 'broadcast'
35
- expect(c1.title).to eq 'Broadcast'
34
+ expect(c1.name).to eq "broadcast"
35
+ expect(c1.title).to eq "Broadcast"
36
36
  end
37
37
 
38
- it 'can return a new calendar' do
38
+ it "can return a new calendar" do
39
39
  c1 = described_class[:my_amazing_calendar]
40
- expect(c1).to be_instance_of MyCal
41
- expect(c1.name).to eq 'my_cal'
42
- expect(c1.title).to eq 'My Cal'
40
+ expect(c1).to be_instance_of TestMyCal
41
+ expect(c1.name).to eq "test_my_cal"
42
+ expect(c1.title).to eq "Test My Cal"
43
43
  end
44
44
 
45
- it 'can graceully give you nothing' do
45
+ it "can graceully give you nothing" do
46
46
  expect(described_class[:missing]).to be nil
47
47
  end
48
48
  end
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
- require 'timeboss'
2
- require 'timeboss/calendars'
1
+ require "timeboss"
2
+ require "timeboss/calendars"
3
3
 
4
4
  RSpec.configure do |config|
5
5
  config.expect_with :rspec do |expectations|
data/timeboss.gemspec CHANGED
@@ -1,22 +1,22 @@
1
1
  # frozen_string_literal: true
2
- # coding: utf-8
3
- lib = File.expand_path('../lib', __FILE__)
2
+
3
+ lib = File.expand_path("../lib", __FILE__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'timeboss/version'
5
+ require "timeboss/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "timeboss"
9
- spec.version = TimeBoss::VERSION
10
- spec.authors = ["Kevin McDonald"]
11
- spec.email = ["kevinstuffandthings@gmail.com"]
12
- spec.summary = %q{Broadcast Calendar navigation in Ruby made simple}
13
- spec.description = spec.summary
14
- spec.homepage = "https://github.com/kevinstuffandthings/timeboss"
15
- spec.license = "MIT"
8
+ spec.name = "timeboss"
9
+ spec.version = TimeBoss::VERSION
10
+ spec.authors = ["Kevin McDonald"]
11
+ spec.email = ["kevinstuffandthings@gmail.com"]
12
+ spec.summary = "Broadcast Calendar navigation in Ruby made simple"
13
+ spec.description = spec.summary
14
+ spec.homepage = "https://github.com/kevinstuffandthings/timeboss"
15
+ spec.license = "MIT"
16
16
 
17
- spec.files = `git ls-files -z`.split("\x0")
18
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
+ spec.files = `git ls-files -z`.split("\x0")
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ["lib"]
21
21
 
22
22
  spec.add_dependency "activesupport"
@@ -27,5 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency "rack-test"
28
28
  spec.add_development_dependency "rake"
29
29
  spec.add_development_dependency "rspec"
30
+ spec.add_development_dependency "shellable"
31
+ spec.add_development_dependency "standard"
30
32
  spec.add_development_dependency "yard"
31
33
  end
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.3.0
4
+ version: 1.0.5
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-21 00:00:00.000000000 Z
11
+ date: 2021-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -108,6 +108,34 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: shellable
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'
125
+ - !ruby/object:Gem::Dependency
126
+ name: standard
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: yard
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -132,6 +160,8 @@ extra_rdoc_files: []
132
160
  files:
133
161
  - ".github/ISSUE_TEMPLATE/bug_report.md"
134
162
  - ".github/ISSUE_TEMPLATE/feature_request.md"
163
+ - ".github/workflows/gem-push.yml"
164
+ - ".github/workflows/ruby.yml"
135
165
  - ".gitignore"
136
166
  - ".replit"
137
167
  - ".rspec"
@@ -168,7 +198,6 @@ files:
168
198
  - lib/timeboss/calendars.rb
169
199
  - lib/timeboss/calendars/broadcast.rb
170
200
  - lib/timeboss/calendars/gregorian.rb
171
- - lib/timeboss/support/shellable.rb
172
201
  - lib/timeboss/version.rb
173
202
  - spec/calendar/day_spec.rb
174
203
  - spec/calendar/quarter_spec.rb
@@ -199,8 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
228
  - !ruby/object:Gem::Version
200
229
  version: '0'
201
230
  requirements: []
202
- rubyforge_project:
203
- rubygems_version: 2.7.7
231
+ rubygems_version: 3.0.3.1
204
232
  signing_key:
205
233
  specification_version: 4
206
234
  summary: Broadcast Calendar navigation in Ruby made simple
@@ -1,17 +0,0 @@
1
- module TimeBoss
2
- module Support
3
- module Shellable
4
- def self.open(context)
5
- context.extend(self).open_shell
6
- end
7
-
8
- def open_shell
9
- require 'irb'
10
- IRB.setup nil
11
- IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
12
- require 'irb/ext/multi-irb'
13
- IRB.irb nil, self
14
- end
15
- end
16
- end
17
- end