repeatable 0.5.0 → 1.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.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/.git-blame-ignore-revs +13 -0
  3. data/.github/workflows/ci.yml +72 -0
  4. data/.gitignore +0 -1
  5. data/.rspec +0 -1
  6. data/.standard.yml +3 -0
  7. data/CHANGELOG.md +58 -3
  8. data/CODE_OF_CONDUCT.md +128 -0
  9. data/Gemfile +11 -3
  10. data/Gemfile.lock +95 -0
  11. data/README.md +49 -9
  12. data/Rakefile +9 -3
  13. data/lib/repeatable/conversions.rb +5 -1
  14. data/lib/repeatable/expression/base.rb +37 -11
  15. data/lib/repeatable/expression/biweekly.rb +14 -6
  16. data/lib/repeatable/expression/date.rb +11 -8
  17. data/lib/repeatable/expression/day_in_month.rb +11 -1
  18. data/lib/repeatable/expression/difference.rb +37 -0
  19. data/lib/repeatable/expression/exact_date.rb +21 -0
  20. data/lib/repeatable/expression/intersection.rb +9 -0
  21. data/lib/repeatable/expression/range_in_year.rb +39 -9
  22. data/lib/repeatable/expression/set.rb +15 -7
  23. data/lib/repeatable/expression/union.rb +9 -0
  24. data/lib/repeatable/expression/weekday.rb +4 -0
  25. data/lib/repeatable/expression/weekday_in_month.rb +35 -4
  26. data/lib/repeatable/expression.rb +1 -0
  27. data/lib/repeatable/last_date_of_month.rb +11 -0
  28. data/lib/repeatable/parse_error.rb +1 -0
  29. data/lib/repeatable/parser.rb +14 -2
  30. data/lib/repeatable/schedule.rb +23 -9
  31. data/lib/repeatable/types.rb +6 -0
  32. data/lib/repeatable/version.rb +2 -1
  33. data/lib/repeatable.rb +25 -19
  34. data/rbi/repeatable.rbi +310 -0
  35. data/repeatable.gemspec +15 -15
  36. data/sorbet/config +3 -0
  37. data/sorbet/rbi/gems/ast.rbi +49 -0
  38. data/sorbet/rbi/gems/coderay.rbi +285 -0
  39. data/sorbet/rbi/gems/commander.rbi +197 -0
  40. data/sorbet/rbi/gems/docile.rbi +36 -0
  41. data/sorbet/rbi/gems/highline.rbi +577 -0
  42. data/sorbet/rbi/gems/method_source.rbi +64 -0
  43. data/sorbet/rbi/gems/parallel.rbi +83 -0
  44. data/sorbet/rbi/gems/parlour.rbi +840 -0
  45. data/sorbet/rbi/gems/parser.rbi +1950 -0
  46. data/sorbet/rbi/gems/pry.rbi +1898 -0
  47. data/sorbet/rbi/gems/rainbow.rbi +118 -0
  48. data/sorbet/rbi/gems/rake.rbi +646 -0
  49. data/sorbet/rbi/gems/regexp_parser.rbi +926 -0
  50. data/sorbet/rbi/gems/repeatable.rbi +13 -0
  51. data/sorbet/rbi/gems/rexml.rbi +583 -0
  52. data/sorbet/rbi/gems/rspec-core.rbi +1919 -0
  53. data/sorbet/rbi/gems/rspec-expectations.rbi +1150 -0
  54. data/sorbet/rbi/gems/rspec-mocks.rbi +1100 -0
  55. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  56. data/sorbet/rbi/gems/rspec.rbi +15 -0
  57. data/sorbet/rbi/gems/rubocop-ast.rbi +1356 -0
  58. data/sorbet/rbi/gems/rubocop-performance.rbi +487 -0
  59. data/sorbet/rbi/gems/rubocop.rbi +7923 -0
  60. data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
  61. data/sorbet/rbi/gems/simplecov-html.rbi +35 -0
  62. data/sorbet/rbi/gems/simplecov.rbi +419 -0
  63. data/sorbet/rbi/gems/simplecov_json_formatter.rbi +47 -0
  64. data/sorbet/rbi/gems/standard.rbi +130 -0
  65. data/sorbet/rbi/gems/unicode-display_width.rbi +20 -0
  66. data/sorbet/rbi/hidden-definitions/errors.txt +4273 -0
  67. data/sorbet/rbi/hidden-definitions/hidden.rbi +9013 -0
  68. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +276 -0
  69. data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
  70. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +24 -0
  71. data/sorbet/rbi/sorbet-typed/lib/rubocop/>=1.8/rubocop.rbi +12 -0
  72. data/sorbet/rbi/sorbet-typed/lib/rubocop-performance/~>1.6/rubocop-performance.rbi +149 -0
  73. metadata +62 -45
  74. data/.travis.yml +0 -10
@@ -0,0 +1,149 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi sorbet-typed
3
+ #
4
+ # If you would like to make changes to this file, great! Please upstream any changes you make here:
5
+ #
6
+ # https://github.com/sorbet/sorbet-typed/edit/master/lib/rubocop-performance/~>1.6/rubocop-performance.rbi
7
+ #
8
+ # typed: strict
9
+
10
+ module RuboCop::Performance
11
+ CONFIG = ::T.let(nil, ::T.untyped)
12
+ end
13
+
14
+ module RuboCop::Performance::Version
15
+ STRING = ::T.let(nil, ::T.untyped)
16
+ end
17
+
18
+ class RuboCop::Cop::Performance::BindCall
19
+ MSG = ::T.let(nil, ::T.untyped)
20
+ end
21
+
22
+ class RuboCop::Cop::Performance::Caller
23
+ MSG_BRACE = ::T.let(nil, ::T.untyped)
24
+ MSG_FIRST = ::T.let(nil, ::T.untyped)
25
+ end
26
+
27
+ class RuboCop::Cop::Performance::CaseWhenSplat
28
+ ARRAY_MSG = ::T.let(nil, ::T.untyped)
29
+ MSG = ::T.let(nil, ::T.untyped)
30
+ end
31
+
32
+ class RuboCop::Cop::Performance::Casecmp
33
+ CASE_METHODS = ::T.let(nil, ::T.untyped)
34
+ MSG = ::T.let(nil, ::T.untyped)
35
+ end
36
+
37
+ class RuboCop::Cop::Performance::ChainArrayAllocation
38
+ ALWAYS_RETURNS_NEW_ARRAY = ::T.let(nil, ::T.untyped)
39
+ HAS_MUTATION_ALTERNATIVE = ::T.let(nil, ::T.untyped)
40
+ MSG = ::T.let(nil, ::T.untyped)
41
+ RETURNS_NEW_ARRAY_WHEN_NO_BLOCK = ::T.let(nil, ::T.untyped)
42
+ RETURN_NEW_ARRAY_WHEN_ARGS = ::T.let(nil, ::T.untyped)
43
+ end
44
+
45
+ class RuboCop::Cop::Performance::CompareWithBlock
46
+ MSG = ::T.let(nil, ::T.untyped)
47
+ end
48
+
49
+ class RuboCop::Cop::Performance::Count
50
+ MSG = ::T.let(nil, ::T.untyped)
51
+ end
52
+
53
+ class RuboCop::Cop::Performance::DeletePrefix
54
+ MSG = ::T.let(nil, ::T.untyped)
55
+ PREFERRED_METHODS = ::T.let(nil, ::T.untyped)
56
+ end
57
+
58
+ class RuboCop::Cop::Performance::DeleteSuffix
59
+ MSG = ::T.let(nil, ::T.untyped)
60
+ PREFERRED_METHODS = ::T.let(nil, ::T.untyped)
61
+ end
62
+
63
+ class RuboCop::Cop::Performance::Detect
64
+ MSG = ::T.let(nil, ::T.untyped)
65
+ REVERSE_MSG = ::T.let(nil, ::T.untyped)
66
+ end
67
+
68
+ class RuboCop::Cop::Performance::DoubleStartEndWith
69
+ MSG = ::T.let(nil, ::T.untyped)
70
+ end
71
+
72
+ class RuboCop::Cop::Performance::EndWith
73
+ MSG = ::T.let(nil, ::T.untyped)
74
+ end
75
+
76
+ class RuboCop::Cop::Performance::FixedSize
77
+ MSG = ::T.let(nil, ::T.untyped)
78
+ end
79
+
80
+ class RuboCop::Cop::Performance::FlatMap
81
+ FLATTEN_MULTIPLE_LEVELS = ::T.let(nil, ::T.untyped)
82
+ MSG = ::T.let(nil, ::T.untyped)
83
+ end
84
+
85
+ class RuboCop::Cop::Performance::OpenStruct
86
+ MSG = ::T.let(nil, ::T.untyped)
87
+ end
88
+
89
+ class RuboCop::Cop::Performance::RangeInclude
90
+ MSG = ::T.let(nil, ::T.untyped)
91
+ end
92
+
93
+ class RuboCop::Cop::Performance::RedundantBlockCall
94
+ CLOSE_PAREN = ::T.let(nil, ::T.untyped)
95
+ MSG = ::T.let(nil, ::T.untyped)
96
+ OPEN_PAREN = ::T.let(nil, ::T.untyped)
97
+ SPACE = ::T.let(nil, ::T.untyped)
98
+ YIELD = ::T.let(nil, ::T.untyped)
99
+ end
100
+
101
+ class RuboCop::Cop::Performance::RedundantMatch
102
+ MSG = ::T.let(nil, ::T.untyped)
103
+ end
104
+
105
+ class RuboCop::Cop::Performance::RedundantMerge
106
+ AREF_ASGN = ::T.let(nil, ::T.untyped)
107
+ MSG = ::T.let(nil, ::T.untyped)
108
+ WITH_MODIFIER_CORRECTION = ::T.let(nil, ::T.untyped)
109
+ end
110
+
111
+ class RuboCop::Cop::Performance::RegexpMatch
112
+ MATCH_NODE_PATTERN = ::T.let(nil, ::T.untyped)
113
+ MSG = ::T.let(nil, ::T.untyped)
114
+ TYPES_IMPLEMENTING_MATCH = ::T.let(nil, ::T.untyped)
115
+ end
116
+
117
+ class RuboCop::Cop::Performance::ReverseEach
118
+ MSG = ::T.let(nil, ::T.untyped)
119
+ UNDERSCORE = ::T.let(nil, ::T.untyped)
120
+ end
121
+
122
+ class RuboCop::Cop::Performance::Size
123
+ MSG = ::T.let(nil, ::T.untyped)
124
+ end
125
+
126
+ class RuboCop::Cop::Performance::StartWith
127
+ MSG = ::T.let(nil, ::T.untyped)
128
+ end
129
+
130
+ class RuboCop::Cop::Performance::StringReplacement
131
+ BANG = ::T.let(nil, ::T.untyped)
132
+ DELETE = ::T.let(nil, ::T.untyped)
133
+ DETERMINISTIC_REGEX = ::T.let(nil, ::T.untyped)
134
+ MSG = ::T.let(nil, ::T.untyped)
135
+ TR = ::T.let(nil, ::T.untyped)
136
+ end
137
+
138
+ class RuboCop::Cop::Performance::TimesMap
139
+ MESSAGE = ::T.let(nil, ::T.untyped)
140
+ MESSAGE_ONLY_IF = ::T.let(nil, ::T.untyped)
141
+ end
142
+
143
+ class RuboCop::Cop::Performance::UnfreezeString
144
+ MSG = ::T.let(nil, ::T.untyped)
145
+ end
146
+
147
+ class RuboCop::Cop::Performance::UriDefaultParser
148
+ MSG = ::T.let(nil, ::T.untyped)
149
+ end
metadata CHANGED
@@ -1,57 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: repeatable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mo Lawson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-27 00:00:00.000000000 Z
11
+ date: 2022-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: sorbet-runtime
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
19
+ version: '0'
20
+ type: :runtime
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: '1.6'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '10.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.0'
26
+ version: '0'
55
27
  description: Ruby implementation of Martin Fowler's 'Recurring Events for Calendars'
56
28
  paper.
57
29
  email:
@@ -60,11 +32,15 @@ executables: []
60
32
  extensions: []
61
33
  extra_rdoc_files: []
62
34
  files:
35
+ - ".git-blame-ignore-revs"
36
+ - ".github/workflows/ci.yml"
63
37
  - ".gitignore"
64
38
  - ".rspec"
65
- - ".travis.yml"
39
+ - ".standard.yml"
66
40
  - CHANGELOG.md
41
+ - CODE_OF_CONDUCT.md
67
42
  - Gemfile
43
+ - Gemfile.lock
68
44
  - LICENSE.txt
69
45
  - README.md
70
46
  - Rakefile
@@ -77,22 +53,65 @@ files:
77
53
  - lib/repeatable/expression/biweekly.rb
78
54
  - lib/repeatable/expression/date.rb
79
55
  - lib/repeatable/expression/day_in_month.rb
56
+ - lib/repeatable/expression/difference.rb
57
+ - lib/repeatable/expression/exact_date.rb
80
58
  - lib/repeatable/expression/intersection.rb
81
59
  - lib/repeatable/expression/range_in_year.rb
82
60
  - lib/repeatable/expression/set.rb
83
61
  - lib/repeatable/expression/union.rb
84
62
  - lib/repeatable/expression/weekday.rb
85
63
  - lib/repeatable/expression/weekday_in_month.rb
64
+ - lib/repeatable/last_date_of_month.rb
86
65
  - lib/repeatable/parse_error.rb
87
66
  - lib/repeatable/parser.rb
88
67
  - lib/repeatable/schedule.rb
68
+ - lib/repeatable/types.rb
89
69
  - lib/repeatable/version.rb
70
+ - rbi/repeatable.rbi
90
71
  - repeatable.gemspec
72
+ - sorbet/config
73
+ - sorbet/rbi/gems/ast.rbi
74
+ - sorbet/rbi/gems/coderay.rbi
75
+ - sorbet/rbi/gems/commander.rbi
76
+ - sorbet/rbi/gems/docile.rbi
77
+ - sorbet/rbi/gems/highline.rbi
78
+ - sorbet/rbi/gems/method_source.rbi
79
+ - sorbet/rbi/gems/parallel.rbi
80
+ - sorbet/rbi/gems/parlour.rbi
81
+ - sorbet/rbi/gems/parser.rbi
82
+ - sorbet/rbi/gems/pry.rbi
83
+ - sorbet/rbi/gems/rainbow.rbi
84
+ - sorbet/rbi/gems/rake.rbi
85
+ - sorbet/rbi/gems/regexp_parser.rbi
86
+ - sorbet/rbi/gems/repeatable.rbi
87
+ - sorbet/rbi/gems/rexml.rbi
88
+ - sorbet/rbi/gems/rspec-core.rbi
89
+ - sorbet/rbi/gems/rspec-expectations.rbi
90
+ - sorbet/rbi/gems/rspec-mocks.rbi
91
+ - sorbet/rbi/gems/rspec-support.rbi
92
+ - sorbet/rbi/gems/rspec.rbi
93
+ - sorbet/rbi/gems/rubocop-ast.rbi
94
+ - sorbet/rbi/gems/rubocop-performance.rbi
95
+ - sorbet/rbi/gems/rubocop.rbi
96
+ - sorbet/rbi/gems/ruby-progressbar.rbi
97
+ - sorbet/rbi/gems/simplecov-html.rbi
98
+ - sorbet/rbi/gems/simplecov.rbi
99
+ - sorbet/rbi/gems/simplecov_json_formatter.rbi
100
+ - sorbet/rbi/gems/standard.rbi
101
+ - sorbet/rbi/gems/unicode-display_width.rbi
102
+ - sorbet/rbi/hidden-definitions/errors.txt
103
+ - sorbet/rbi/hidden-definitions/hidden.rbi
104
+ - sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi
105
+ - sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi
106
+ - sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi
107
+ - sorbet/rbi/sorbet-typed/lib/rubocop-performance/~>1.6/rubocop-performance.rbi
108
+ - sorbet/rbi/sorbet-typed/lib/rubocop/>=1.8/rubocop.rbi
91
109
  homepage: https://github.com/molawson/repeatable
92
110
  licenses:
93
111
  - MIT
94
- metadata: {}
95
- post_install_message:
112
+ metadata:
113
+ changelog_uri: https://github.com/molawson/repeatable/blob/main/CHANGELOG.md
114
+ post_install_message:
96
115
  rdoc_options: []
97
116
  require_paths:
98
117
  - lib
@@ -100,17 +119,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
119
  requirements:
101
120
  - - ">="
102
121
  - !ruby/object:Gem::Version
103
- version: '0'
122
+ version: 2.5.0
104
123
  required_rubygems_version: !ruby/object:Gem::Requirement
105
124
  requirements:
106
125
  - - ">="
107
126
  - !ruby/object:Gem::Version
108
127
  version: '0'
109
128
  requirements: []
110
- rubyforge_project:
111
- rubygems_version: 2.4.5
112
- signing_key:
129
+ rubygems_version: 3.1.6
130
+ signing_key:
113
131
  specification_version: 4
114
132
  summary: Describe recurring event schedules and calculate their occurrences
115
133
  test_files: []
116
- has_rdoc:
data/.travis.yml DELETED
@@ -1,10 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.8
4
- - 2.2.4
5
- - 2.3.0
6
- sudo: false
7
- addons:
8
- code_climate:
9
- repo_token:
10
- secure: fyZ7Ycc23fzfh8bBiqPUhlJGcIcnanZWqVc4nsKDJeE1G5ScW01+ot1g4miDWxo7w80gKRKP/PfoYf6lOQ1B5yJJCV0Z5fjoTW3y+EKksMuGNCFaWh8R73MIPlVtfOazGyI2t3l4zDWoik906wHHNQJFveMZawvZGrVMWF6YxKg=