timely 0.5.0 → 0.6.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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +22 -2
  3. data/.travis.yml +0 -6
  4. data/CHANGELOG.md +6 -0
  5. data/Gemfile +2 -0
  6. data/Rakefile +6 -4
  7. data/gemfiles/rails5.gemfile +4 -2
  8. data/gemfiles/rails6.gemfile +3 -1
  9. data/lib/timely/date.rb +6 -2
  10. data/lib/timely/date_chooser.rb +29 -30
  11. data/lib/timely/date_range.rb +17 -19
  12. data/lib/timely/date_time.rb +3 -1
  13. data/lib/timely/rails/calendar_tag.rb +3 -3
  14. data/lib/timely/rails/date.rb +3 -1
  15. data/lib/timely/rails/date_group.rb +24 -24
  16. data/lib/timely/rails/date_range_validity_module.rb +8 -6
  17. data/lib/timely/rails/date_time.rb +5 -3
  18. data/lib/timely/rails/extensions.rb +12 -37
  19. data/lib/timely/rails/period.rb +14 -12
  20. data/lib/timely/rails/season.rb +14 -33
  21. data/lib/timely/rails/time.rb +7 -3
  22. data/lib/timely/rails.rb +2 -0
  23. data/lib/timely/railtie.rb +2 -0
  24. data/lib/timely/range.rb +4 -2
  25. data/lib/timely/string.rb +4 -2
  26. data/lib/timely/time.rb +7 -3
  27. data/lib/timely/time_since.rb +5 -3
  28. data/lib/timely/trackable_date_set.rb +21 -21
  29. data/lib/timely/version.rb +3 -1
  30. data/lib/timely/week_days.rb +14 -16
  31. data/lib/timely.rb +2 -0
  32. data/rails/init.rb +2 -0
  33. data/spec/calendar_tag_spec.rb +11 -10
  34. data/spec/date_chooser_spec.rb +67 -62
  35. data/spec/date_group_spec.rb +18 -15
  36. data/spec/date_range_spec.rb +29 -19
  37. data/spec/date_spec.rb +3 -1
  38. data/spec/extensions_spec.rb +5 -9
  39. data/spec/rails/date_spec.rb +5 -3
  40. data/spec/rails/date_time_spec.rb +9 -7
  41. data/spec/rails/period_spec.rb +2 -0
  42. data/spec/rails/time_spec.rb +6 -4
  43. data/spec/schema.rb +4 -3
  44. data/spec/season_spec.rb +23 -26
  45. data/spec/spec_helper.rb +3 -1
  46. data/spec/support/coverage_loader.rb +3 -1
  47. data/spec/temporal_patterns_spec.rb +5 -5
  48. data/spec/time_since_spec.rb +6 -4
  49. data/spec/time_spec.rb +6 -4
  50. data/spec/trackable_date_set_spec.rb +20 -18
  51. data/spec/week_days_spec.rb +24 -22
  52. data/timely.gemspec +20 -18
  53. metadata +32 -20
  54. data/spec/string_spec.rb +0 -14
@@ -1,30 +1,32 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  RSpec.describe Timely::WeekDays do
4
6
  before do
5
- @weekdays = Timely::WeekDays.new(:tue => true, :thu => true)
7
+ @weekdays = Timely::WeekDays.new(tue: true, thu: true)
6
8
  end
7
9
 
8
10
  it 'should create via hash, integer and array' do
9
11
  # 0 0 1 0 1 0 0
10
12
  # Sat Fri Thu Wed Tue Mon Sun
11
- expect(Timely::WeekDays.new(0b0010100).weekdays).to eq [:tue, :thu]
12
- expect(Timely::WeekDays.new(%w(0 0 1 0 1 0 0)).weekdays).to eq [:tue, :thu]
13
- expect(Timely::WeekDays.new(:tue => true, :thu => true).weekdays).to eq [:tue, :thu]
13
+ expect(Timely::WeekDays.new(0b0010100).weekdays).to eq %i[tue thu]
14
+ expect(Timely::WeekDays.new(%w[0 0 1 0 1 0 0]).weekdays).to eq %i[tue thu]
15
+ expect(Timely::WeekDays.new(tue: true, thu: true).weekdays).to eq %i[tue thu]
14
16
  end
15
17
 
16
18
  it 'should be able to set/unset days' do
17
19
  @weekdays[:mon] = true
18
- expect(@weekdays.weekdays).to eq [:mon, :tue, :thu]
20
+ expect(@weekdays.weekdays).to eq %i[mon tue thu]
19
21
  @weekdays[:tue] = false
20
- expect(@weekdays.weekdays).to eq [:mon, :thu]
22
+ expect(@weekdays.weekdays).to eq %i[mon thu]
21
23
  end
22
24
 
23
- it 'should output days nicely' do
24
- expect(Timely::WeekDays.new(%w(1 0 0 0 0 0 0)).to_s).to eq "Sun"
25
- expect(Timely::WeekDays.new(%w(1 0 1 0 0 0 0)).to_s).to eq "Sun, and Tue"
26
- expect(Timely::WeekDays.new(%w(1 0 1 1 0 0 0)).to_s).to eq "Sun, Tue, and Wed"
27
- expect(Timely::WeekDays.new(%w(1 0 1 1 0 1 0)).to_s).to eq "Sun, Tue, Wed, and Fri"
25
+ it 'should output days nicely' do
26
+ expect(Timely::WeekDays.new(%w[1 0 0 0 0 0 0]).to_s).to eq 'Sun'
27
+ expect(Timely::WeekDays.new(%w[1 0 1 0 0 0 0]).to_s).to eq 'Sun, and Tue'
28
+ expect(Timely::WeekDays.new(%w[1 0 1 1 0 0 0]).to_s).to eq 'Sun, Tue, and Wed'
29
+ expect(Timely::WeekDays.new(%w[1 0 1 1 0 1 0]).to_s).to eq 'Sun, Tue, Wed, and Fri'
28
30
  end
29
31
 
30
32
  it 'should be able to determine if days of the week are selected' do
@@ -36,8 +38,8 @@ RSpec.describe Timely::WeekDays do
36
38
  end
37
39
 
38
40
  it 'should be able to determine if it would be applicable on a date' do
39
- expect(@weekdays.applies_for_date?(Date.new(2012, 04, 22))).to be false # Sunday
40
- expect(@weekdays.applies_for_date?(Date.new(2012, 04, 24))).to be true # Tuesday
41
+ expect(@weekdays.applies_for_date?(Date.new(2012, 0o4, 22))).to be false # Sunday
42
+ expect(@weekdays.applies_for_date?(Date.new(2012, 0o4, 24))).to be true # Tuesday
41
43
  end
42
44
 
43
45
  it 'should be able to convert to integer for use in databases, etc.' do
@@ -45,23 +47,23 @@ RSpec.describe Timely::WeekDays do
45
47
  end
46
48
 
47
49
  it 'should be able to determine if all days are selected' do
48
- expect(Timely::WeekDays.new(%w(1 1 1 1 1 1 1)).all_days?).to be true
49
- expect(Timely::WeekDays.new(%w(1 1 1 1 1 0 1)).all_days?).to be false
50
+ expect(Timely::WeekDays.new(%w[1 1 1 1 1 1 1]).all_days?).to be true
51
+ expect(Timely::WeekDays.new(%w[1 1 1 1 1 0 1]).all_days?).to be false
50
52
  end
51
53
  end
52
54
 
53
55
  RSpec.describe 'Timely::WeekDays.from_range' do
54
56
  {
55
- 'single date as string': { date_range: '2019-10-17', expected_weekdays: [ :thu ] },
56
- 'single date as object': { date_range: '2019-10-17'.to_date, expected_weekdays: [ :thu ] },
57
- 'range with strings': {
57
+ 'single date as string': { date_range: '2019-10-17', expected_weekdays: [:thu] },
58
+ 'single date as object': { date_range: '2019-10-17'.to_date, expected_weekdays: [:thu] },
59
+ 'range with strings': {
58
60
  date_range: '2019-10-17'..'2019-10-18',
59
- expected_weekdays: [ :thu, :fri ],
61
+ expected_weekdays: %i[thu fri]
60
62
  },
61
- 'range with objects': {
63
+ 'range with objects': {
62
64
  date_range: ('2019-10-17'.to_date)..('2019-10-18'.to_date),
63
- expected_weekdays: [ :thu, :fri ],
64
- },
65
+ expected_weekdays: %i[thu fri]
66
+ }
65
67
  }.each do |type, data|
66
68
  it "#{type} has correct weekdays and applies for dates" do
67
69
  weekdays = Timely::WeekDays.from_range(data[:date_range])
data/timely.gemspec CHANGED
@@ -1,36 +1,38 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'timely/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
- spec.name = "timely"
8
+ spec.name = 'timely'
8
9
  spec.version = Timely::VERSION
9
- spec.authors = ["Michael Noack"]
10
- spec.email = ["support@travellink.com.au"]
11
- spec.description = %q{Set of time, date, weekday related methods.}
12
- spec.summary = %q{Set of time, date, weekday related methods.}
10
+ spec.authors = ['Michael Noack']
11
+ spec.email = ['support@travellink.com.au']
12
+ spec.description = 'Set of time, date, weekday related methods.'
13
+ spec.summary = 'Set of time, date, weekday related methods.'
13
14
  spec.homepage = 'http://github.com/sealink/timely'
14
15
 
15
- spec.license = "MIT"
16
+ spec.license = 'MIT'
16
17
 
17
- spec.files = `git ls-files`.split($/)
18
+ spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
18
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
- spec.require_paths = ["lib"]
21
+ spec.require_paths = ['lib']
21
22
 
22
- spec.add_development_dependency "bundler", "~> 2.0.1"
23
- spec.add_development_dependency "rake"
24
- spec.add_development_dependency 'rspec'
25
- spec.add_development_dependency 'rspec-its'
23
+ spec.add_development_dependency 'actionpack'
24
+ spec.add_development_dependency 'activerecord'
25
+ spec.add_development_dependency 'activesupport'
26
+ spec.add_development_dependency 'bundler', '~> 2.0.1'
26
27
  spec.add_development_dependency 'coverage-kit'
27
- spec.add_development_dependency 'simplecov-rcov'
28
28
  spec.add_development_dependency 'coveralls'
29
+ spec.add_development_dependency 'rake'
30
+ spec.add_development_dependency 'rspec'
31
+ spec.add_development_dependency 'rspec-its'
29
32
  spec.add_development_dependency 'rubocop'
33
+ spec.add_development_dependency 'rubocop-rails'
34
+ spec.add_development_dependency 'simplecov-rcov'
30
35
  spec.add_development_dependency 'sqlite3'
31
- spec.add_development_dependency 'activesupport'
32
- spec.add_development_dependency 'activerecord'
33
- spec.add_development_dependency 'actionpack'
34
36
  spec.add_development_dependency 'timecop'
35
37
  spec.add_development_dependency 'travis'
36
38
  end
metadata CHANGED
@@ -1,31 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timely
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Noack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-22 00:00:00.000000000 Z
11
+ date: 2019-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: actionpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.1
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 2.0.1
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,21 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec-its
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.0.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.0.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: coverage-kit
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -67,7 +81,7 @@ dependencies:
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
- name: coverage-kit
84
+ name: coveralls
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - ">="
@@ -81,7 +95,7 @@ dependencies:
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
- name: simplecov-rcov
98
+ name: rake
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - ">="
@@ -95,7 +109,7 @@ dependencies:
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
- name: coveralls
112
+ name: rspec
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - ">="
@@ -109,7 +123,7 @@ dependencies:
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
- name: rubocop
126
+ name: rspec-its
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - ">="
@@ -123,7 +137,7 @@ dependencies:
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
- name: sqlite3
140
+ name: rubocop
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - ">="
@@ -137,7 +151,7 @@ dependencies:
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
- name: activesupport
154
+ name: rubocop-rails
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - ">="
@@ -151,7 +165,7 @@ dependencies:
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
167
  - !ruby/object:Gem::Dependency
154
- name: activerecord
168
+ name: simplecov-rcov
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - ">="
@@ -165,7 +179,7 @@ dependencies:
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
- name: actionpack
182
+ name: sqlite3
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - ">="
@@ -266,7 +280,6 @@ files:
266
280
  - spec/schema.rb
267
281
  - spec/season_spec.rb
268
282
  - spec/spec_helper.rb
269
- - spec/string_spec.rb
270
283
  - spec/support/coverage_loader.rb
271
284
  - spec/temporal_patterns_spec.rb
272
285
  - spec/time_since_spec.rb
@@ -311,7 +324,6 @@ test_files:
311
324
  - spec/schema.rb
312
325
  - spec/season_spec.rb
313
326
  - spec/spec_helper.rb
314
- - spec/string_spec.rb
315
327
  - spec/support/coverage_loader.rb
316
328
  - spec/temporal_patterns_spec.rb
317
329
  - spec/time_since_spec.rb
data/spec/string_spec.rb DELETED
@@ -1,14 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe String do
4
- # Spec currently doesn't work
5
- #it "should convert to date" do
6
- # "10-2010-01".to_date('%d-%Y-%m').should eql Date.parse("2010-01-10")
7
- #end
8
-
9
- # Spec currently doesn't work
10
- #it 'should handle rails date formats' do
11
- # Date::DATE_FORMATS[:db] = '%m-%Y-%d'
12
- # "01-2010-10".to_date(:db).should eql Date.parse("2010-01-10")
13
- #end
14
- end