montrose 0.11.0 → 0.13.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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +66 -0
  3. data/Appraisals +8 -12
  4. data/CHANGELOG.md +24 -0
  5. data/Guardfile +2 -2
  6. data/README.md +27 -15
  7. data/Rakefile +2 -4
  8. data/bin/setup +1 -0
  9. data/bin/standardrb +29 -0
  10. data/gemfiles/activesupport_5.2.gemfile +5 -1
  11. data/gemfiles/activesupport_6.0.gemfile +5 -1
  12. data/gemfiles/{activesupport_4.2.gemfile → activesupport_6.1.gemfile} +5 -1
  13. data/gemfiles/{activesupport_5.0.gemfile → activesupport_7.0.gemfile} +5 -1
  14. data/lib/montrose/chainable.rb +26 -10
  15. data/lib/montrose/clock.rb +4 -4
  16. data/lib/montrose/day.rb +83 -0
  17. data/lib/montrose/frequency.rb +58 -25
  18. data/lib/montrose/hour.rb +22 -0
  19. data/lib/montrose/ical.rb +128 -0
  20. data/lib/montrose/minute.rb +22 -0
  21. data/lib/montrose/month.rb +47 -0
  22. data/lib/montrose/month_day.rb +25 -0
  23. data/lib/montrose/options.rb +73 -79
  24. data/lib/montrose/recurrence.rb +40 -13
  25. data/lib/montrose/rule/between.rb +1 -1
  26. data/lib/montrose/rule/covering.rb +40 -0
  27. data/lib/montrose/rule/during.rb +7 -15
  28. data/lib/montrose/rule/minute_of_hour.rb +25 -0
  29. data/lib/montrose/rule/nth_day_of_month.rb +0 -2
  30. data/lib/montrose/rule/nth_day_of_year.rb +0 -2
  31. data/lib/montrose/rule/time_of_day.rb +1 -1
  32. data/lib/montrose/rule/until.rb +1 -1
  33. data/lib/montrose/rule.rb +18 -16
  34. data/lib/montrose/schedule.rb +6 -8
  35. data/lib/montrose/stack.rb +3 -4
  36. data/lib/montrose/time_of_day.rb +48 -0
  37. data/lib/montrose/utils.rb +2 -40
  38. data/lib/montrose/version.rb +1 -1
  39. data/lib/montrose/week.rb +20 -0
  40. data/lib/montrose/year_day.rb +25 -0
  41. data/lib/montrose.rb +43 -11
  42. data/montrose.gemspec +17 -17
  43. metadata +43 -36
  44. data/.rubocop.yml +0 -136
  45. data/.travis.yml +0 -33
  46. data/bin/rubocop +0 -16
  47. data/gemfiles/activesupport_4.1.gemfile +0 -12
  48. data/gemfiles/activesupport_5.1.gemfile +0 -12
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: montrose
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ross Kaffenberger
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-16 00:00:00.000000000 Z
11
+ date: 2022-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,48 +16,48 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.1'
19
+ version: '5.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.0'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '4.1'
29
+ version: '5.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.0'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: appraisal
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 2.2.0
39
+ version: '0'
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 2.2.0
46
+ version: '0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: m
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - "~>"
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: '1.5'
53
+ version: '0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '1.5'
60
+ version: '0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: minitest
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -76,30 +76,30 @@ dependencies:
76
76
  name: rake
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '11.0'
81
+ version: 12.3.3
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - "~>"
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: '11.0'
88
+ version: 12.3.3
89
89
  - !ruby/object:Gem::Dependency
90
- name: rubocop
90
+ name: standard
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - "~>"
93
+ - - ">="
94
94
  - !ruby/object:Gem::Version
95
- version: 0.64.0
95
+ version: '0'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - "~>"
100
+ - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 0.64.0
102
+ version: '0'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: timecop
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -122,10 +122,9 @@ executables: []
122
122
  extensions: []
123
123
  extra_rdoc_files: []
124
124
  files:
125
+ - ".circleci/config.yml"
125
126
  - ".codeclimate.yml"
126
127
  - ".gitignore"
127
- - ".rubocop.yml"
128
- - ".travis.yml"
129
128
  - Appraisals
130
129
  - CHANGELOG.md
131
130
  - CODE_OF_CONDUCT.md
@@ -140,17 +139,16 @@ files:
140
139
  - bin/guard
141
140
  - bin/m
142
141
  - bin/rake
143
- - bin/rubocop
144
142
  - bin/setup
145
- - gemfiles/activesupport_4.1.gemfile
146
- - gemfiles/activesupport_4.2.gemfile
147
- - gemfiles/activesupport_5.0.gemfile
148
- - gemfiles/activesupport_5.1.gemfile
143
+ - bin/standardrb
149
144
  - gemfiles/activesupport_5.2.gemfile
150
145
  - gemfiles/activesupport_6.0.gemfile
146
+ - gemfiles/activesupport_6.1.gemfile
147
+ - gemfiles/activesupport_7.0.gemfile
151
148
  - lib/montrose.rb
152
149
  - lib/montrose/chainable.rb
153
150
  - lib/montrose/clock.rb
151
+ - lib/montrose/day.rb
154
152
  - lib/montrose/errors.rb
155
153
  - lib/montrose/frequency.rb
156
154
  - lib/montrose/frequency/daily.rb
@@ -160,18 +158,25 @@ files:
160
158
  - lib/montrose/frequency/secondly.rb
161
159
  - lib/montrose/frequency/weekly.rb
162
160
  - lib/montrose/frequency/yearly.rb
161
+ - lib/montrose/hour.rb
162
+ - lib/montrose/ical.rb
163
+ - lib/montrose/minute.rb
164
+ - lib/montrose/month.rb
165
+ - lib/montrose/month_day.rb
163
166
  - lib/montrose/options.rb
164
167
  - lib/montrose/recurrence.rb
165
168
  - lib/montrose/refinements/array_concat.rb
166
169
  - lib/montrose/rule.rb
167
170
  - lib/montrose/rule/after.rb
168
171
  - lib/montrose/rule/between.rb
172
+ - lib/montrose/rule/covering.rb
169
173
  - lib/montrose/rule/day_of_month.rb
170
174
  - lib/montrose/rule/day_of_week.rb
171
175
  - lib/montrose/rule/day_of_year.rb
172
176
  - lib/montrose/rule/during.rb
173
177
  - lib/montrose/rule/except.rb
174
178
  - lib/montrose/rule/hour_of_day.rb
179
+ - lib/montrose/rule/minute_of_hour.rb
175
180
  - lib/montrose/rule/month_of_year.rb
176
181
  - lib/montrose/rule/nth_day_matcher.rb
177
182
  - lib/montrose/rule/nth_day_of_month.rb
@@ -182,14 +187,17 @@ files:
182
187
  - lib/montrose/rule/week_of_year.rb
183
188
  - lib/montrose/schedule.rb
184
189
  - lib/montrose/stack.rb
190
+ - lib/montrose/time_of_day.rb
185
191
  - lib/montrose/utils.rb
186
192
  - lib/montrose/version.rb
193
+ - lib/montrose/week.rb
194
+ - lib/montrose/year_day.rb
187
195
  - montrose.gemspec
188
196
  homepage: https://github.com/rossta/montrose
189
197
  licenses:
190
198
  - MIT
191
199
  metadata: {}
192
- post_install_message:
200
+ post_install_message:
193
201
  rdoc_options: []
194
202
  require_paths:
195
203
  - lib
@@ -197,16 +205,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
197
205
  requirements:
198
206
  - - ">="
199
207
  - !ruby/object:Gem::Version
200
- version: 2.3.0
208
+ version: 2.6.0
201
209
  required_rubygems_version: !ruby/object:Gem::Requirement
202
210
  requirements:
203
211
  - - ">="
204
212
  - !ruby/object:Gem::Version
205
213
  version: '0'
206
214
  requirements: []
207
- rubyforge_project:
208
- rubygems_version: 2.7.6
209
- signing_key:
215
+ rubygems_version: 3.2.32
216
+ signing_key:
210
217
  specification_version: 4
211
218
  summary: Recurring events in Ruby
212
219
  test_files: []
data/.rubocop.yml DELETED
@@ -1,136 +0,0 @@
1
- AllCops:
2
- Exclude:
3
- - 'bin/**/*'
4
- - 'gemfiles/**/*'
5
- - 'tmp/**/*'
6
- TargetRubyVersion: '2.3.0'
7
-
8
- Lint/HandleExceptions:
9
- Exclude:
10
- - 'test/test_helper.rb'
11
-
12
- Metrics/LineLength:
13
- Max: 120
14
-
15
- Metrics/ClassLength:
16
- Max: 300
17
-
18
- Metrics/ModuleLength:
19
- Max: 300
20
-
21
- Metrics/MethodLength:
22
- Max: 100
23
-
24
- Metrics/ParameterLists:
25
- Max: 8
26
-
27
- Metrics/AbcSize:
28
- Enabled: false
29
-
30
- Metrics/CyclomaticComplexity:
31
- Enabled: false
32
-
33
- Metrics/PerceivedComplexity:
34
- Enabled: false
35
-
36
- Metrics/BlockLength:
37
- Enabled: false
38
-
39
- Documentation:
40
- Enabled: false # TODO: Enable again once we have more docs
41
-
42
- Lint/HandleExceptions:
43
- Enabled: false
44
-
45
- Style/GlobalVars:
46
- Exclude:
47
- - spec/support/trace.rb
48
-
49
- Style/SafeNavigation:
50
- Enabled: false
51
-
52
- Style/SpecialGlobalVars:
53
- Enabled: false
54
-
55
- Style/TrivialAccessors:
56
- Enabled: false
57
-
58
- Style/HashSyntax:
59
- Enabled: true
60
-
61
- Naming/MethodName:
62
- Enabled: false
63
-
64
- Layout/AlignParameters:
65
- EnforcedStyle: with_fixed_indentation
66
-
67
- Layout/AccessModifierIndentation:
68
- Enabled: true
69
-
70
- Style/StringLiterals:
71
- EnforcedStyle: double_quotes
72
-
73
- Style/StringLiteralsInInterpolation:
74
- EnforcedStyle: double_quotes
75
-
76
- Layout/ClosingParenthesisIndentation:
77
- Enabled: false
78
-
79
- Layout/EndAlignment:
80
- Enabled: false
81
-
82
- Layout/DefEndAlignment:
83
- Enabled: false
84
-
85
- Style/OneLineConditional:
86
- Enabled: false
87
-
88
- Style/AndOr:
89
- Enabled: false
90
-
91
- Style/Not:
92
- Enabled: false
93
-
94
- Layout/CaseIndentation:
95
- SupportedStyles:
96
- - case
97
- - end
98
- IndentOneStep: false
99
-
100
- Style/PercentLiteralDelimiters:
101
- PreferredDelimiters:
102
- '%w': "[]"
103
- '%W': "[]"
104
-
105
- Layout/AccessModifierIndentation:
106
- EnforcedStyle: indent
107
-
108
- Style/SignalException:
109
- Enabled: false
110
-
111
- Layout/IndentationWidth:
112
- Enabled: false
113
-
114
- Style/TrivialAccessors:
115
- ExactNameMatch: true
116
-
117
- Style/RegexpLiteral:
118
- EnforcedStyle: percent_r
119
-
120
- Layout/DotPosition:
121
- EnforcedStyle: leading
122
-
123
- Naming/VariableNumber:
124
- Enabled: false
125
-
126
- Style/FormatString:
127
- Enabled: false
128
-
129
- Style/MutableConstant:
130
- Enabled: false
131
-
132
- Style/NumericPredicate:
133
- Enabled: false
134
-
135
- Style/SymbolArray:
136
- Enabled: false
data/.travis.yml DELETED
@@ -1,33 +0,0 @@
1
- bundler_args: "--jobs 4 --retry 3"
2
- cache: bundler
3
- gemfile:
4
- - gemfiles/activesupport_6.0.gemfile
5
- - gemfiles/activesupport_5.2.gemfile
6
- - gemfiles/activesupport_5.1.gemfile
7
- - gemfiles/activesupport_5.0.gemfile
8
- - gemfiles/activesupport_4.2.gemfile
9
- - gemfiles/activesupport_4.1.gemfile
10
- language: ruby
11
- matrix:
12
- exclude:
13
- - rvm: 2.3
14
- gemfile: gemfiles/activesupport_6.0.gemfile # Requires ruby 2.5+
15
- - rvm: 2.4
16
- gemfile: gemfiles/activesupport_4.1.gemfile # Requires json 1.8.5+
17
- - rvm: 2.4
18
- gemfile: gemfiles/activesupport_6.0.gemfile # Requires ruby 2.5+
19
- - rvm: 2.5
20
- gemfile: gemfiles/activesupport_4.1.gemfile # Requires json 1.8.5+
21
- - rvm: 2.6
22
- gemfile: gemfiles/activesupport_4.1.gemfile # Requires json 1.8.5+
23
- fast_finish: true
24
- rvm:
25
- - 2.3
26
- - 2.4
27
- - 2.5
28
- - 2.6
29
- sudo: false
30
- before_install:
31
- - gem update --system
32
- - gem --version
33
- - gem install bundler
data/bin/rubocop DELETED
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # This file was generated by Bundler.
4
- #
5
- # The application 'rubocop' is installed as part of a gem, and
6
- # this file is here to facilitate running it.
7
- #
8
-
9
- require 'pathname'
10
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
- Pathname.new(__FILE__).realpath)
12
-
13
- require 'rubygems'
14
- require 'bundler/setup'
15
-
16
- load Gem.bin_path('rubocop', 'rubocop')
@@ -1,12 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activesupport", "~> 4.1.0"
6
-
7
- group :development do
8
- gem "coveralls"
9
- gem "yard"
10
- end
11
-
12
- gemspec path: "../"
@@ -1,12 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activesupport", "~> 5.1.0"
6
-
7
- group :development do
8
- gem "coveralls"
9
- gem "yard"
10
- end
11
-
12
- gemspec path: "../"