repeatable 1.0.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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +72 -0
  3. data/CHANGELOG.md +18 -1
  4. data/CODE_OF_CONDUCT.md +128 -0
  5. data/Gemfile +2 -0
  6. data/Gemfile.lock +24 -5
  7. data/README.md +27 -8
  8. data/Rakefile +5 -1
  9. data/lib/repeatable/conversions.rb +5 -1
  10. data/lib/repeatable/expression/base.rb +21 -11
  11. data/lib/repeatable/expression/biweekly.rb +14 -6
  12. data/lib/repeatable/expression/date.rb +10 -6
  13. data/lib/repeatable/expression/day_in_month.rb +4 -0
  14. data/lib/repeatable/expression/difference.rb +14 -5
  15. data/lib/repeatable/expression/exact_date.rb +5 -1
  16. data/lib/repeatable/expression/intersection.rb +6 -2
  17. data/lib/repeatable/expression/range_in_year.rb +33 -9
  18. data/lib/repeatable/expression/set.rb +15 -5
  19. data/lib/repeatable/expression/union.rb +5 -1
  20. data/lib/repeatable/expression/weekday.rb +4 -0
  21. data/lib/repeatable/expression/weekday_in_month.rb +14 -1
  22. data/lib/repeatable/expression.rb +1 -0
  23. data/lib/repeatable/last_date_of_month.rb +4 -0
  24. data/lib/repeatable/parse_error.rb +1 -0
  25. data/lib/repeatable/parser.rb +7 -1
  26. data/lib/repeatable/schedule.rb +18 -4
  27. data/lib/repeatable/types.rb +6 -0
  28. data/lib/repeatable/version.rb +2 -1
  29. data/lib/repeatable.rb +4 -0
  30. data/rbi/repeatable.rbi +310 -0
  31. data/repeatable.gemspec +3 -0
  32. data/sorbet/config +3 -0
  33. data/sorbet/rbi/gems/ast.rbi +49 -0
  34. data/sorbet/rbi/gems/coderay.rbi +285 -0
  35. data/sorbet/rbi/gems/commander.rbi +197 -0
  36. data/sorbet/rbi/gems/docile.rbi +36 -0
  37. data/sorbet/rbi/gems/highline.rbi +577 -0
  38. data/sorbet/rbi/gems/method_source.rbi +64 -0
  39. data/sorbet/rbi/gems/parallel.rbi +83 -0
  40. data/sorbet/rbi/gems/parlour.rbi +840 -0
  41. data/sorbet/rbi/gems/parser.rbi +1950 -0
  42. data/sorbet/rbi/gems/pry.rbi +1898 -0
  43. data/sorbet/rbi/gems/rainbow.rbi +118 -0
  44. data/sorbet/rbi/gems/rake.rbi +646 -0
  45. data/sorbet/rbi/gems/regexp_parser.rbi +926 -0
  46. data/sorbet/rbi/gems/repeatable.rbi +13 -0
  47. data/sorbet/rbi/gems/rexml.rbi +583 -0
  48. data/sorbet/rbi/gems/rspec-core.rbi +1919 -0
  49. data/sorbet/rbi/gems/rspec-expectations.rbi +1150 -0
  50. data/sorbet/rbi/gems/rspec-mocks.rbi +1100 -0
  51. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  52. data/sorbet/rbi/gems/rspec.rbi +15 -0
  53. data/sorbet/rbi/gems/rubocop-ast.rbi +1356 -0
  54. data/sorbet/rbi/gems/rubocop-performance.rbi +487 -0
  55. data/sorbet/rbi/gems/rubocop.rbi +7923 -0
  56. data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
  57. data/sorbet/rbi/gems/simplecov-html.rbi +35 -0
  58. data/sorbet/rbi/gems/simplecov.rbi +419 -0
  59. data/sorbet/rbi/gems/simplecov_json_formatter.rbi +47 -0
  60. data/sorbet/rbi/gems/standard.rbi +130 -0
  61. data/sorbet/rbi/gems/unicode-display_width.rbi +20 -0
  62. data/sorbet/rbi/hidden-definitions/errors.txt +4273 -0
  63. data/sorbet/rbi/hidden-definitions/hidden.rbi +9013 -0
  64. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +276 -0
  65. data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
  66. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +24 -0
  67. data/sorbet/rbi/sorbet-typed/lib/rubocop/>=1.8/rubocop.rbi +12 -0
  68. data/sorbet/rbi/sorbet-typed/lib/rubocop-performance/~>1.6/rubocop-performance.rbi +149 -0
  69. metadata +61 -6
  70. data/.travis.yml +0 -18
@@ -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,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: repeatable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mo Lawson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-25 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2022-02-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sorbet-runtime
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  description: Ruby implementation of Martin Fowler's 'Recurring Events for Calendars'
14
28
  paper.
15
29
  email:
@@ -19,11 +33,12 @@ extensions: []
19
33
  extra_rdoc_files: []
20
34
  files:
21
35
  - ".git-blame-ignore-revs"
36
+ - ".github/workflows/ci.yml"
22
37
  - ".gitignore"
23
38
  - ".rspec"
24
39
  - ".standard.yml"
25
- - ".travis.yml"
26
40
  - CHANGELOG.md
41
+ - CODE_OF_CONDUCT.md
27
42
  - Gemfile
28
43
  - Gemfile.lock
29
44
  - LICENSE.txt
@@ -50,12 +65,52 @@ files:
50
65
  - lib/repeatable/parse_error.rb
51
66
  - lib/repeatable/parser.rb
52
67
  - lib/repeatable/schedule.rb
68
+ - lib/repeatable/types.rb
53
69
  - lib/repeatable/version.rb
70
+ - rbi/repeatable.rbi
54
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
55
109
  homepage: https://github.com/molawson/repeatable
56
110
  licenses:
57
111
  - MIT
58
- metadata: {}
112
+ metadata:
113
+ changelog_uri: https://github.com/molawson/repeatable/blob/main/CHANGELOG.md
59
114
  post_install_message:
60
115
  rdoc_options: []
61
116
  require_paths:
@@ -71,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
126
  - !ruby/object:Gem::Version
72
127
  version: '0'
73
128
  requirements: []
74
- rubygems_version: 3.1.4
129
+ rubygems_version: 3.1.6
75
130
  signing_key:
76
131
  specification_version: 4
77
132
  summary: Describe recurring event schedules and calculate their occurrences
data/.travis.yml DELETED
@@ -1,18 +0,0 @@
1
- language: ruby
2
- env:
3
- global:
4
- - COVERAGE=true
5
- rvm:
6
- - 2.5
7
- - 2.6
8
- - 2.7
9
- - 3.0
10
- before_install:
11
- - yes | gem update --system --force
12
- - gem install bundler
13
- before_script:
14
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
15
- - chmod +x ./cc-test-reporter
16
- - ./cc-test-reporter before-build
17
- after_script:
18
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT