montrose 0.13.0 → 0.14.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4b7914b70270912f8acf6757a8f130112d9137c50c34b933714f0edf97ac3c1
4
- data.tar.gz: d70713d758bf62b45a7a74196f3d2c5bcc0a4bcf48b899164d7b5d4e2afe6b4a
3
+ metadata.gz: d6f7ea1fd6222db409b16db79037e8fcdae1d3d2d974fe767ba1cc14e7751d15
4
+ data.tar.gz: 7006787072b5ccd1d5bd1e37991fea4ee0539ff2c6b6e62a317194066b4ecb5d
5
5
  SHA512:
6
- metadata.gz: 5ea9a0877d09b1d360c3de7dc9b68a4fd9b6f64047728991d0398333777c18afa06f12fba1b2e178f53bd412f054314b125a174099a896c554cc53a337672fb5
7
- data.tar.gz: f0b7431307846f0fa969352cfb98101ae2542ad37dd443e8324dd1480b01edfa81f8c06f92b6dc96f4278410f7cb221b7a1c1a487241a0faf8f5ee07fd763db3
6
+ metadata.gz: a0bf23b3af8e63c66f4bf8b81873f5869c88dd206cfe185f26b926f9eba4ab5895fb50aa318621949551d7d99ffa6d17b73e54509a4431230f048515f4554678
7
+ data.tar.gz: af35726d60626e59eaab28ad6a4c3bda1a570405f2c8d47efbba42b6efd452eb61b66007385ce030bf303a1ad5c49b65280d0db9e20cab1c82fc07c88812ebce
data/.circleci/config.yml CHANGED
@@ -1,33 +1,18 @@
1
1
  version: 2.1
2
2
  orbs:
3
- ruby: circleci/ruby@1.3.0
3
+ ruby: circleci/ruby@2.1.0
4
+
5
+
4
6
  commands:
5
7
  run-tests:
6
8
  description: Run tests
7
9
  steps:
8
10
  - run: bundle exec rake test
9
- restore:
10
- description: Restore cache
11
- steps:
12
- - restore_cache:
13
- keys:
14
- - v1_bundler_deps-
15
- save:
16
- description: Save cache
17
- steps:
18
- - save_cache:
19
- paths:
20
- - ./vendor/bundle
21
- key: v1-bundler-deps-{{ .Environment.CIRCLE_JOB }}
22
- bundle:
23
- description: Install dependencies
11
+
12
+ run-lint:
13
+ description: Run standardrb lint check
24
14
  steps:
25
- - run:
26
- echo "export BUNDLE_JOBS=4" >> $BASH_ENV
27
- echo "export BUNDLE_RETRY=3" >> $BASH_ENV
28
- echo "export BUNDLE_PATH=$(pwd)/vendor/bundle" >> $BASH_ENV
29
- echo "export BUNDLE_GEMFILE=$(pwd)/${GEMFILE_NAME}" >> $BASH_ENV
30
- - run: bundle install
15
+ - run: bundle exec rake standard
31
16
 
32
17
  jobs:
33
18
  test:
@@ -38,18 +23,24 @@ jobs:
38
23
  type: string
39
24
  docker:
40
25
  - image: 'cimg/ruby:<< parameters.ruby_version >>'
41
- environment:
42
- GEMFILE_NAME: <<parameters.gemfile>>
43
26
  steps:
44
27
  - checkout
45
- - restore
46
- - bundle
47
- - save
28
+ - ruby/install-deps:
29
+ gemfile: <<parameters.gemfile>>
48
30
  - run-tests
49
31
 
32
+ lint:
33
+ docker:
34
+ - image: cimg/ruby:2.7
35
+ steps:
36
+ - checkout
37
+ - ruby/install-deps
38
+ - run-lint
39
+
50
40
  workflows:
51
41
  all-tests:
52
42
  jobs:
43
+ - lint
53
44
  - test:
54
45
  matrix:
55
46
  parameters:
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
@@ -9,6 +8,4 @@
9
8
  /tmp/
10
9
  /profile.log
11
10
  /trace.txt
12
- gemfiles/*.lock
13
11
  /.ruby-gemset
14
- /.ruby-version
data/.rubocop.yml ADDED
@@ -0,0 +1,5 @@
1
+ require:
2
+ - standard
3
+
4
+ inherit_gem:
5
+ standard: config/base.yml
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7
data/Gemfile CHANGED
@@ -5,13 +5,8 @@ source "https://rubygems.org"
5
5
  gemspec
6
6
 
7
7
  group :development do
8
- gem "coveralls"
9
- gem "yard"
10
-
11
- unless ENV["CI"]
12
- gem "guard"
13
- gem "guard-minitest"
14
- gem "guard-rubocop"
15
- gem "pry-byebug"
16
- end
8
+ gem "guard"
9
+ gem "guard-minitest"
10
+ gem "guard-rubocop"
11
+ gem "pry-byebug"
17
12
  end
data/Gemfile.lock ADDED
@@ -0,0 +1,148 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ montrose (0.14.0)
5
+ activesupport (>= 5.2, < 7.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ activesupport (7.0.7.2)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ i18n (>= 1.6, < 2)
13
+ minitest (>= 5.1)
14
+ tzinfo (~> 2.0)
15
+ ast (2.4.2)
16
+ base64 (0.1.1)
17
+ byebug (11.1.3)
18
+ coderay (1.1.3)
19
+ concurrent-ruby (1.2.2)
20
+ coveralls (0.8.23)
21
+ json (>= 1.8, < 3)
22
+ simplecov (~> 0.16.1)
23
+ term-ansicolor (~> 1.3)
24
+ thor (>= 0.19.4, < 2.0)
25
+ tins (~> 1.6)
26
+ docile (1.4.0)
27
+ ffi (1.15.5)
28
+ formatador (1.1.0)
29
+ guard (2.18.0)
30
+ formatador (>= 0.2.4)
31
+ listen (>= 2.7, < 4.0)
32
+ lumberjack (>= 1.0.12, < 2.0)
33
+ nenv (~> 0.1)
34
+ notiffany (~> 0.0)
35
+ pry (>= 0.13.0)
36
+ shellany (~> 0.0)
37
+ thor (>= 0.18.1)
38
+ guard-compat (1.2.1)
39
+ guard-minitest (2.4.6)
40
+ guard-compat (~> 1.2)
41
+ minitest (>= 3.0)
42
+ guard-rubocop (1.5.0)
43
+ guard (~> 2.0)
44
+ rubocop (< 2.0)
45
+ i18n (1.14.1)
46
+ concurrent-ruby (~> 1.0)
47
+ json (2.6.3)
48
+ language_server-protocol (3.17.0.3)
49
+ lint_roller (1.1.0)
50
+ listen (3.8.0)
51
+ rb-fsevent (~> 0.10, >= 0.10.3)
52
+ rb-inotify (~> 0.9, >= 0.9.10)
53
+ lumberjack (1.2.9)
54
+ m (1.6.1)
55
+ method_source (>= 0.6.7)
56
+ rake (>= 0.9.2.2)
57
+ method_source (1.0.0)
58
+ minitest (5.19.0)
59
+ nenv (0.3.0)
60
+ notiffany (0.1.3)
61
+ nenv (~> 0.1)
62
+ shellany (~> 0.0)
63
+ parallel (1.23.0)
64
+ parser (3.2.2.3)
65
+ ast (~> 2.4.1)
66
+ racc
67
+ pry (0.14.2)
68
+ coderay (~> 1.1)
69
+ method_source (~> 1.0)
70
+ pry-byebug (3.10.1)
71
+ byebug (~> 11.0)
72
+ pry (>= 0.13, < 0.15)
73
+ racc (1.7.1)
74
+ rainbow (3.1.1)
75
+ rake (13.0.6)
76
+ rb-fsevent (0.11.2)
77
+ rb-inotify (0.10.1)
78
+ ffi (~> 1.0)
79
+ regexp_parser (2.8.1)
80
+ rexml (3.2.6)
81
+ rubocop (1.56.1)
82
+ base64 (~> 0.1.1)
83
+ json (~> 2.3)
84
+ language_server-protocol (>= 3.17.0)
85
+ parallel (~> 1.10)
86
+ parser (>= 3.2.2.3)
87
+ rainbow (>= 2.2.2, < 4.0)
88
+ regexp_parser (>= 1.8, < 3.0)
89
+ rexml (>= 3.2.5, < 4.0)
90
+ rubocop-ast (>= 1.28.1, < 2.0)
91
+ ruby-progressbar (~> 1.7)
92
+ unicode-display_width (>= 2.4.0, < 3.0)
93
+ rubocop-ast (1.29.0)
94
+ parser (>= 3.2.1.0)
95
+ rubocop-performance (1.19.0)
96
+ rubocop (>= 1.7.0, < 2.0)
97
+ rubocop-ast (>= 0.4.0)
98
+ ruby-progressbar (1.13.0)
99
+ shellany (0.0.1)
100
+ simplecov (0.16.1)
101
+ docile (~> 1.1)
102
+ json (>= 1.8, < 3)
103
+ simplecov-html (~> 0.10.0)
104
+ simplecov-html (0.10.2)
105
+ standard (1.31.0)
106
+ language_server-protocol (~> 3.17.0.2)
107
+ lint_roller (~> 1.0)
108
+ rubocop (~> 1.56.0)
109
+ standard-custom (~> 1.0.0)
110
+ standard-performance (~> 1.2)
111
+ standard-custom (1.0.2)
112
+ lint_roller (~> 1.0)
113
+ rubocop (~> 1.50)
114
+ standard-performance (1.2.0)
115
+ lint_roller (~> 1.1)
116
+ rubocop-performance (~> 1.19.0)
117
+ sync (0.5.0)
118
+ term-ansicolor (1.7.1)
119
+ tins (~> 1.0)
120
+ thor (1.2.2)
121
+ timecop (0.9.8)
122
+ tins (1.32.1)
123
+ sync
124
+ tzinfo (2.0.6)
125
+ concurrent-ruby (~> 1.0)
126
+ unicode-display_width (2.4.2)
127
+ yard (0.9.34)
128
+
129
+ PLATFORMS
130
+ arm64-darwin-22
131
+ x86_64-linux
132
+
133
+ DEPENDENCIES
134
+ coveralls
135
+ guard
136
+ guard-minitest
137
+ guard-rubocop
138
+ m
139
+ minitest
140
+ montrose!
141
+ pry-byebug
142
+ rake (>= 12.3.3)
143
+ standard
144
+ timecop
145
+ yard
146
+
147
+ BUNDLED WITH
148
+ 2.4.10
data/README.md CHANGED
@@ -451,13 +451,6 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
451
451
 
452
452
  You can also run `bin/console` for an interactive prompt that will allow you to experiment.
453
453
 
454
- To run tests against multiple versions of activesupport, use the Appraisals:
455
-
456
- ```sh
457
- bin/appraisal install
458
- bin/appraisal rake test
459
- ```
460
-
461
454
  ## Contributing
462
455
 
463
456
  Bug reports and pull requests are welcome on GitHub at https://github.com/rossta/montrose. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
data/bin/bundle-all ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir["gemfiles/*.gemfile"].each do |gemfile|
4
+ system({"BUNDLE_GEMFILE" => gemfile}, "bundle")
5
+ end
@@ -1,16 +1,5 @@
1
- # This file was generated by Appraisal
2
-
3
1
  source "https://rubygems.org"
4
2
 
5
3
  gem "activesupport", "~> 5.2"
6
4
 
7
- group :development do
8
- gem "coveralls"
9
- gem "yard"
10
- gem "guard"
11
- gem "guard-minitest"
12
- gem "guard-rubocop"
13
- gem "pry-byebug"
14
- end
15
-
16
5
  gemspec path: "../"
@@ -0,0 +1,107 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ montrose (0.13.0)
5
+ activesupport (>= 5.2, < 7.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ activesupport (5.2.8.1)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ i18n (>= 0.7, < 2)
13
+ minitest (~> 5.1)
14
+ tzinfo (~> 1.1)
15
+ ast (2.4.2)
16
+ base64 (0.1.1)
17
+ concurrent-ruby (1.2.2)
18
+ coveralls (0.8.23)
19
+ json (>= 1.8, < 3)
20
+ simplecov (~> 0.16.1)
21
+ term-ansicolor (~> 1.3)
22
+ thor (>= 0.19.4, < 2.0)
23
+ tins (~> 1.6)
24
+ docile (1.4.0)
25
+ i18n (1.14.1)
26
+ concurrent-ruby (~> 1.0)
27
+ json (2.6.3)
28
+ language_server-protocol (3.17.0.3)
29
+ lint_roller (1.1.0)
30
+ m (1.6.1)
31
+ method_source (>= 0.6.7)
32
+ rake (>= 0.9.2.2)
33
+ method_source (1.0.0)
34
+ minitest (5.19.0)
35
+ parallel (1.23.0)
36
+ parser (3.2.2.3)
37
+ ast (~> 2.4.1)
38
+ racc
39
+ racc (1.7.1)
40
+ rainbow (3.1.1)
41
+ rake (13.0.6)
42
+ regexp_parser (2.8.1)
43
+ rexml (3.2.6)
44
+ rubocop (1.56.1)
45
+ base64 (~> 0.1.1)
46
+ json (~> 2.3)
47
+ language_server-protocol (>= 3.17.0)
48
+ parallel (~> 1.10)
49
+ parser (>= 3.2.2.3)
50
+ rainbow (>= 2.2.2, < 4.0)
51
+ regexp_parser (>= 1.8, < 3.0)
52
+ rexml (>= 3.2.5, < 4.0)
53
+ rubocop-ast (>= 1.28.1, < 2.0)
54
+ ruby-progressbar (~> 1.7)
55
+ unicode-display_width (>= 2.4.0, < 3.0)
56
+ rubocop-ast (1.29.0)
57
+ parser (>= 3.2.1.0)
58
+ rubocop-performance (1.19.0)
59
+ rubocop (>= 1.7.0, < 2.0)
60
+ rubocop-ast (>= 0.4.0)
61
+ ruby-progressbar (1.13.0)
62
+ simplecov (0.16.1)
63
+ docile (~> 1.1)
64
+ json (>= 1.8, < 3)
65
+ simplecov-html (~> 0.10.0)
66
+ simplecov-html (0.10.2)
67
+ standard (1.31.0)
68
+ language_server-protocol (~> 3.17.0.2)
69
+ lint_roller (~> 1.0)
70
+ rubocop (~> 1.56.0)
71
+ standard-custom (~> 1.0.0)
72
+ standard-performance (~> 1.2)
73
+ standard-custom (1.0.2)
74
+ lint_roller (~> 1.0)
75
+ rubocop (~> 1.50)
76
+ standard-performance (1.2.0)
77
+ lint_roller (~> 1.1)
78
+ rubocop-performance (~> 1.19.0)
79
+ sync (0.5.0)
80
+ term-ansicolor (1.7.1)
81
+ tins (~> 1.0)
82
+ thor (1.2.2)
83
+ thread_safe (0.3.6)
84
+ timecop (0.9.8)
85
+ tins (1.32.1)
86
+ sync
87
+ tzinfo (1.2.11)
88
+ thread_safe (~> 0.1)
89
+ unicode-display_width (2.4.2)
90
+ yard (0.9.34)
91
+
92
+ PLATFORMS
93
+ arm64-darwin-22
94
+
95
+ DEPENDENCIES
96
+ activesupport (~> 5.2)
97
+ coveralls
98
+ m
99
+ minitest
100
+ montrose!
101
+ rake (>= 12.3.3)
102
+ standard
103
+ timecop
104
+ yard
105
+
106
+ BUNDLED WITH
107
+ 2.4.10
@@ -1,16 +1,5 @@
1
- # This file was generated by Appraisal
2
-
3
1
  source "https://rubygems.org"
4
2
 
5
3
  gem "activesupport", "~> 6.0"
6
4
 
7
- group :development do
8
- gem "coveralls"
9
- gem "yard"
10
- gem "guard"
11
- gem "guard-minitest"
12
- gem "guard-rubocop"
13
- gem "pry-byebug"
14
- end
15
-
16
5
  gemspec path: "../"
@@ -0,0 +1,108 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ montrose (0.13.0)
5
+ activesupport (>= 5.2, < 7.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ activesupport (6.1.7.6)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ i18n (>= 1.6, < 2)
13
+ minitest (>= 5.1)
14
+ tzinfo (~> 2.0)
15
+ zeitwerk (~> 2.3)
16
+ ast (2.4.2)
17
+ base64 (0.1.1)
18
+ concurrent-ruby (1.2.2)
19
+ coveralls (0.8.23)
20
+ json (>= 1.8, < 3)
21
+ simplecov (~> 0.16.1)
22
+ term-ansicolor (~> 1.3)
23
+ thor (>= 0.19.4, < 2.0)
24
+ tins (~> 1.6)
25
+ docile (1.4.0)
26
+ i18n (1.14.1)
27
+ concurrent-ruby (~> 1.0)
28
+ json (2.6.3)
29
+ language_server-protocol (3.17.0.3)
30
+ lint_roller (1.1.0)
31
+ m (1.6.1)
32
+ method_source (>= 0.6.7)
33
+ rake (>= 0.9.2.2)
34
+ method_source (1.0.0)
35
+ minitest (5.19.0)
36
+ parallel (1.23.0)
37
+ parser (3.2.2.3)
38
+ ast (~> 2.4.1)
39
+ racc
40
+ racc (1.7.1)
41
+ rainbow (3.1.1)
42
+ rake (13.0.6)
43
+ regexp_parser (2.8.1)
44
+ rexml (3.2.6)
45
+ rubocop (1.56.1)
46
+ base64 (~> 0.1.1)
47
+ json (~> 2.3)
48
+ language_server-protocol (>= 3.17.0)
49
+ parallel (~> 1.10)
50
+ parser (>= 3.2.2.3)
51
+ rainbow (>= 2.2.2, < 4.0)
52
+ regexp_parser (>= 1.8, < 3.0)
53
+ rexml (>= 3.2.5, < 4.0)
54
+ rubocop-ast (>= 1.28.1, < 2.0)
55
+ ruby-progressbar (~> 1.7)
56
+ unicode-display_width (>= 2.4.0, < 3.0)
57
+ rubocop-ast (1.29.0)
58
+ parser (>= 3.2.1.0)
59
+ rubocop-performance (1.19.0)
60
+ rubocop (>= 1.7.0, < 2.0)
61
+ rubocop-ast (>= 0.4.0)
62
+ ruby-progressbar (1.13.0)
63
+ simplecov (0.16.1)
64
+ docile (~> 1.1)
65
+ json (>= 1.8, < 3)
66
+ simplecov-html (~> 0.10.0)
67
+ simplecov-html (0.10.2)
68
+ standard (1.31.0)
69
+ language_server-protocol (~> 3.17.0.2)
70
+ lint_roller (~> 1.0)
71
+ rubocop (~> 1.56.0)
72
+ standard-custom (~> 1.0.0)
73
+ standard-performance (~> 1.2)
74
+ standard-custom (1.0.2)
75
+ lint_roller (~> 1.0)
76
+ rubocop (~> 1.50)
77
+ standard-performance (1.2.0)
78
+ lint_roller (~> 1.1)
79
+ rubocop-performance (~> 1.19.0)
80
+ sync (0.5.0)
81
+ term-ansicolor (1.7.1)
82
+ tins (~> 1.0)
83
+ thor (1.2.2)
84
+ timecop (0.9.8)
85
+ tins (1.32.1)
86
+ sync
87
+ tzinfo (2.0.6)
88
+ concurrent-ruby (~> 1.0)
89
+ unicode-display_width (2.4.2)
90
+ yard (0.9.34)
91
+ zeitwerk (2.6.11)
92
+
93
+ PLATFORMS
94
+ arm64-darwin-22
95
+
96
+ DEPENDENCIES
97
+ activesupport (~> 6.0)
98
+ coveralls
99
+ m
100
+ minitest
101
+ montrose!
102
+ rake (>= 12.3.3)
103
+ standard
104
+ timecop
105
+ yard
106
+
107
+ BUNDLED WITH
108
+ 2.4.10
@@ -1,16 +1,5 @@
1
- # This file was generated by Appraisal
2
-
3
1
  source "https://rubygems.org"
4
2
 
5
3
  gem "activesupport", "~> 6.1"
6
4
 
7
- group :development do
8
- gem "coveralls"
9
- gem "yard"
10
- gem "guard"
11
- gem "guard-minitest"
12
- gem "guard-rubocop"
13
- gem "pry-byebug"
14
- end
15
-
16
5
  gemspec path: "../"
@@ -0,0 +1,108 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ montrose (0.13.0)
5
+ activesupport (>= 5.2, < 7.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ activesupport (6.1.7.6)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ i18n (>= 1.6, < 2)
13
+ minitest (>= 5.1)
14
+ tzinfo (~> 2.0)
15
+ zeitwerk (~> 2.3)
16
+ ast (2.4.2)
17
+ base64 (0.1.1)
18
+ concurrent-ruby (1.2.2)
19
+ coveralls (0.8.23)
20
+ json (>= 1.8, < 3)
21
+ simplecov (~> 0.16.1)
22
+ term-ansicolor (~> 1.3)
23
+ thor (>= 0.19.4, < 2.0)
24
+ tins (~> 1.6)
25
+ docile (1.4.0)
26
+ i18n (1.14.1)
27
+ concurrent-ruby (~> 1.0)
28
+ json (2.6.3)
29
+ language_server-protocol (3.17.0.3)
30
+ lint_roller (1.1.0)
31
+ m (1.6.1)
32
+ method_source (>= 0.6.7)
33
+ rake (>= 0.9.2.2)
34
+ method_source (1.0.0)
35
+ minitest (5.19.0)
36
+ parallel (1.23.0)
37
+ parser (3.2.2.3)
38
+ ast (~> 2.4.1)
39
+ racc
40
+ racc (1.7.1)
41
+ rainbow (3.1.1)
42
+ rake (13.0.6)
43
+ regexp_parser (2.8.1)
44
+ rexml (3.2.6)
45
+ rubocop (1.56.1)
46
+ base64 (~> 0.1.1)
47
+ json (~> 2.3)
48
+ language_server-protocol (>= 3.17.0)
49
+ parallel (~> 1.10)
50
+ parser (>= 3.2.2.3)
51
+ rainbow (>= 2.2.2, < 4.0)
52
+ regexp_parser (>= 1.8, < 3.0)
53
+ rexml (>= 3.2.5, < 4.0)
54
+ rubocop-ast (>= 1.28.1, < 2.0)
55
+ ruby-progressbar (~> 1.7)
56
+ unicode-display_width (>= 2.4.0, < 3.0)
57
+ rubocop-ast (1.29.0)
58
+ parser (>= 3.2.1.0)
59
+ rubocop-performance (1.19.0)
60
+ rubocop (>= 1.7.0, < 2.0)
61
+ rubocop-ast (>= 0.4.0)
62
+ ruby-progressbar (1.13.0)
63
+ simplecov (0.16.1)
64
+ docile (~> 1.1)
65
+ json (>= 1.8, < 3)
66
+ simplecov-html (~> 0.10.0)
67
+ simplecov-html (0.10.2)
68
+ standard (1.31.0)
69
+ language_server-protocol (~> 3.17.0.2)
70
+ lint_roller (~> 1.0)
71
+ rubocop (~> 1.56.0)
72
+ standard-custom (~> 1.0.0)
73
+ standard-performance (~> 1.2)
74
+ standard-custom (1.0.2)
75
+ lint_roller (~> 1.0)
76
+ rubocop (~> 1.50)
77
+ standard-performance (1.2.0)
78
+ lint_roller (~> 1.1)
79
+ rubocop-performance (~> 1.19.0)
80
+ sync (0.5.0)
81
+ term-ansicolor (1.7.1)
82
+ tins (~> 1.0)
83
+ thor (1.2.2)
84
+ timecop (0.9.8)
85
+ tins (1.32.1)
86
+ sync
87
+ tzinfo (2.0.6)
88
+ concurrent-ruby (~> 1.0)
89
+ unicode-display_width (2.4.2)
90
+ yard (0.9.34)
91
+ zeitwerk (2.6.11)
92
+
93
+ PLATFORMS
94
+ arm64-darwin-22
95
+
96
+ DEPENDENCIES
97
+ activesupport (~> 6.1)
98
+ coveralls
99
+ m
100
+ minitest
101
+ montrose!
102
+ rake (>= 12.3.3)
103
+ standard
104
+ timecop
105
+ yard
106
+
107
+ BUNDLED WITH
108
+ 2.4.10
@@ -1,16 +1,5 @@
1
- # This file was generated by Appraisal
2
-
3
1
  source "https://rubygems.org"
4
2
 
5
3
  gem "activesupport", "~> 7.0"
6
4
 
7
- group :development do
8
- gem "coveralls"
9
- gem "yard"
10
- gem "guard"
11
- gem "guard-minitest"
12
- gem "guard-rubocop"
13
- gem "pry-byebug"
14
- end
15
-
16
5
  gemspec path: "../"
@@ -0,0 +1,106 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ montrose (0.13.0)
5
+ activesupport (>= 5.2, < 7.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ activesupport (7.0.7.2)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ i18n (>= 1.6, < 2)
13
+ minitest (>= 5.1)
14
+ tzinfo (~> 2.0)
15
+ ast (2.4.2)
16
+ base64 (0.1.1)
17
+ concurrent-ruby (1.2.2)
18
+ coveralls (0.8.23)
19
+ json (>= 1.8, < 3)
20
+ simplecov (~> 0.16.1)
21
+ term-ansicolor (~> 1.3)
22
+ thor (>= 0.19.4, < 2.0)
23
+ tins (~> 1.6)
24
+ docile (1.4.0)
25
+ i18n (1.14.1)
26
+ concurrent-ruby (~> 1.0)
27
+ json (2.6.3)
28
+ language_server-protocol (3.17.0.3)
29
+ lint_roller (1.1.0)
30
+ m (1.6.1)
31
+ method_source (>= 0.6.7)
32
+ rake (>= 0.9.2.2)
33
+ method_source (1.0.0)
34
+ minitest (5.19.0)
35
+ parallel (1.23.0)
36
+ parser (3.2.2.3)
37
+ ast (~> 2.4.1)
38
+ racc
39
+ racc (1.7.1)
40
+ rainbow (3.1.1)
41
+ rake (13.0.6)
42
+ regexp_parser (2.8.1)
43
+ rexml (3.2.6)
44
+ rubocop (1.56.1)
45
+ base64 (~> 0.1.1)
46
+ json (~> 2.3)
47
+ language_server-protocol (>= 3.17.0)
48
+ parallel (~> 1.10)
49
+ parser (>= 3.2.2.3)
50
+ rainbow (>= 2.2.2, < 4.0)
51
+ regexp_parser (>= 1.8, < 3.0)
52
+ rexml (>= 3.2.5, < 4.0)
53
+ rubocop-ast (>= 1.28.1, < 2.0)
54
+ ruby-progressbar (~> 1.7)
55
+ unicode-display_width (>= 2.4.0, < 3.0)
56
+ rubocop-ast (1.29.0)
57
+ parser (>= 3.2.1.0)
58
+ rubocop-performance (1.19.0)
59
+ rubocop (>= 1.7.0, < 2.0)
60
+ rubocop-ast (>= 0.4.0)
61
+ ruby-progressbar (1.13.0)
62
+ simplecov (0.16.1)
63
+ docile (~> 1.1)
64
+ json (>= 1.8, < 3)
65
+ simplecov-html (~> 0.10.0)
66
+ simplecov-html (0.10.2)
67
+ standard (1.31.0)
68
+ language_server-protocol (~> 3.17.0.2)
69
+ lint_roller (~> 1.0)
70
+ rubocop (~> 1.56.0)
71
+ standard-custom (~> 1.0.0)
72
+ standard-performance (~> 1.2)
73
+ standard-custom (1.0.2)
74
+ lint_roller (~> 1.0)
75
+ rubocop (~> 1.50)
76
+ standard-performance (1.2.0)
77
+ lint_roller (~> 1.1)
78
+ rubocop-performance (~> 1.19.0)
79
+ sync (0.5.0)
80
+ term-ansicolor (1.7.1)
81
+ tins (~> 1.0)
82
+ thor (1.2.2)
83
+ timecop (0.9.8)
84
+ tins (1.32.1)
85
+ sync
86
+ tzinfo (2.0.6)
87
+ concurrent-ruby (~> 1.0)
88
+ unicode-display_width (2.4.2)
89
+ yard (0.9.34)
90
+
91
+ PLATFORMS
92
+ arm64-darwin-22
93
+
94
+ DEPENDENCIES
95
+ activesupport (~> 7.0)
96
+ coveralls
97
+ m
98
+ minitest
99
+ montrose!
100
+ rake (>= 12.3.3)
101
+ standard
102
+ timecop
103
+ yard
104
+
105
+ BUNDLED WITH
106
+ 2.4.10
@@ -10,32 +10,32 @@ module Montrose
10
10
  @every = @options.fetch(:every) { fail ConfigurationError, "Required option :every not provided" }
11
11
  @interval = @options.fetch(:interval)
12
12
  @start_time = @options.fetch(:start_time)
13
- @at = @options.fetch(:at, nil)
13
+ @at = @options.fetch(:at, []).sort
14
14
  end
15
15
 
16
16
  # Advances time to new unit by increment and sets
17
17
  # new time as "current" time for next tick
18
18
  #
19
19
  def tick
20
- @time = peek
20
+ @time = next_time(true)
21
21
  end
22
22
 
23
23
  def peek
24
- return @start_time if @time.nil?
24
+ next_time(false)
25
+ end
25
26
 
26
- if @at
27
- times = @at.map { |hour, min, sec = 0| @time.change(hour: hour, min: min, sec: sec) }
27
+ private
28
28
 
29
- (min_next = times.select { |t| t > @time }.min) && (return min_next)
29
+ def next_time(tick)
30
+ return @start_time if @time.nil?
30
31
 
31
- advance_step(times.min || @time)
32
+ if @at.present?
33
+ next_time_at(@time, tick)
32
34
  else
33
35
  advance_step(@time)
34
36
  end
35
37
  end
36
38
 
37
- private
38
-
39
39
  def advance_step(time)
40
40
  time.advance(step)
41
41
  end
@@ -54,6 +54,51 @@ module Montrose
54
54
  unit_step(:year)
55
55
  end
56
56
 
57
+ # @private
58
+ #
59
+ # Returns next time using :at option. Tries to calculate
60
+ # a time for the current date by incrementing the index
61
+ # of the :at option. Once all items have been exhausted
62
+ # the minimum time is generated for the current date and
63
+ # we advance to the next date based on interval
64
+ #
65
+ def next_time_at(time, tick)
66
+ if current_at_index && (next_time = time_at(time, current_at_index + 1))
67
+ @current_at_index += 1 if tick
68
+
69
+ next_time
70
+ else
71
+ min_time = time_at(time, 0)
72
+ @current_at_index = 0 if tick
73
+
74
+ advance_step(min_time)
75
+ end
76
+ end
77
+
78
+ # @private
79
+ #
80
+ # Returns time with hour, minute and second from :at option
81
+ # at specified index
82
+ #
83
+ def time_at(time, index)
84
+ parts = @at[index]
85
+
86
+ return unless parts
87
+
88
+ hour, min, sec = parts
89
+ time.change(hour: hour, min: min, sec: sec || 0)
90
+ end
91
+
92
+ # @private
93
+ #
94
+ # Keep track of which index we are currently at for :at option.
95
+ #
96
+ def current_at_index
97
+ @current_at_index ||= @at.index do |hour, min, sec = 0|
98
+ @start_time.hour == hour && @start_time.min == min && @start_time.sec == sec
99
+ end
100
+ end
101
+
57
102
  # @private
58
103
  #
59
104
  # Returns hash representing unit and amount to advance time
@@ -104,7 +104,7 @@ module Montrose
104
104
  protected
105
105
 
106
106
  def interval_str
107
- @interval != 1 ? "*/#{@interval}" : "*"
107
+ (@interval != 1) ? "*/#{@interval}" : "*"
108
108
  end
109
109
  end
110
110
  end
data/lib/montrose/ical.rb CHANGED
@@ -71,9 +71,9 @@ module Montrose
71
71
  end
72
72
 
73
73
  def parse_timezone(time_string)
74
- time_zone_rule, _ = time_string.split(":")
75
- _label, time_zone = (time_zone_rule || "").split("=")
76
- time_zone
74
+ time_zone_rule, _ = time_string.split(":")
75
+ _label, time_zone = (time_zone_rule || "").split("=")
76
+ time_zone
77
77
  end
78
78
 
79
79
  def parse_time(time_string)
@@ -227,13 +227,13 @@ module Montrose
227
227
  return dump(load(obj)) if obj.is_a?(String)
228
228
 
229
229
  hash = case obj
230
- when Hash
231
- obj
232
- when self
233
- obj.to_hash
234
- else
235
- fail SerializationError,
236
- "Object was supposed to be a #{self}, but was a #{obj.class}. -- #{obj.inspect}"
230
+ when Hash
231
+ obj
232
+ when self
233
+ obj.to_hash
234
+ else
235
+ fail SerializationError,
236
+ "Object was supposed to be a #{self}, but was a #{obj.class}. -- #{obj.inspect}"
237
237
  end
238
238
 
239
239
  JSON.dump(hash)
@@ -35,13 +35,13 @@ module Montrose
35
35
  return dump(load(obj)) if obj.is_a?(String)
36
36
 
37
37
  array = case obj
38
- when Array
39
- new(obj).to_a
40
- when self
41
- obj.to_a
42
- else
43
- fail SerializationError,
44
- "Object was supposed to be a #{self}, but was a #{obj.class}. -- #{obj.inspect}"
38
+ when Array
39
+ new(obj).to_a
40
+ when self
41
+ obj.to_a
42
+ else
43
+ fail SerializationError,
44
+ "Object was supposed to be a #{self}, but was a #{obj.class}. -- #{obj.inspect}"
45
45
  end
46
46
 
47
47
  JSON.dump(array)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Montrose
4
- VERSION = "0.13.0"
4
+ VERSION = "0.14.0"
5
5
  end
data/montrose.gemspec CHANGED
@@ -24,10 +24,11 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_dependency "activesupport", ">= 5.2", "< 7.1"
26
26
 
27
- spec.add_development_dependency "appraisal"
27
+ spec.add_development_dependency "coveralls"
28
28
  spec.add_development_dependency "m"
29
29
  spec.add_development_dependency "minitest"
30
30
  spec.add_development_dependency "rake", ">= 12.3.3"
31
31
  spec.add_development_dependency "standard"
32
32
  spec.add_development_dependency "timecop"
33
+ spec.add_development_dependency "yard"
33
34
  end
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.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ross Kaffenberger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-14 00:00:00.000000000 Z
11
+ date: 2023-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -31,7 +31,7 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
- name: appraisal
34
+ name: coveralls
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
@@ -114,6 +114,20 @@ dependencies:
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: yard
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
117
131
  description: A library for specifying, quering, and enumerating recurring events for
118
132
  calendars in Ruby.
119
133
  email:
@@ -125,16 +139,18 @@ files:
125
139
  - ".circleci/config.yml"
126
140
  - ".codeclimate.yml"
127
141
  - ".gitignore"
128
- - Appraisals
142
+ - ".rubocop.yml"
143
+ - ".ruby-version"
129
144
  - CHANGELOG.md
130
145
  - CODE_OF_CONDUCT.md
131
146
  - Gemfile
147
+ - Gemfile.lock
132
148
  - Guardfile
133
149
  - LICENSE.txt
134
150
  - README.md
135
151
  - Rakefile
136
152
  - bin/_guard-core
137
- - bin/appraisal
153
+ - bin/bundle-all
138
154
  - bin/console
139
155
  - bin/guard
140
156
  - bin/m
@@ -142,9 +158,13 @@ files:
142
158
  - bin/setup
143
159
  - bin/standardrb
144
160
  - gemfiles/activesupport_5.2.gemfile
161
+ - gemfiles/activesupport_5.2.gemfile.lock
145
162
  - gemfiles/activesupport_6.0.gemfile
163
+ - gemfiles/activesupport_6.0.gemfile.lock
146
164
  - gemfiles/activesupport_6.1.gemfile
165
+ - gemfiles/activesupport_6.1.gemfile.lock
147
166
  - gemfiles/activesupport_7.0.gemfile
167
+ - gemfiles/activesupport_7.0.gemfile.lock
148
168
  - lib/montrose.rb
149
169
  - lib/montrose/chainable.rb
150
170
  - lib/montrose/clock.rb
@@ -212,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
232
  - !ruby/object:Gem::Version
213
233
  version: '0'
214
234
  requirements: []
215
- rubygems_version: 3.2.32
235
+ rubygems_version: 3.1.6
216
236
  signing_key:
217
237
  specification_version: 4
218
238
  summary: Recurring events in Ruby
data/Appraisals DELETED
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- appraise "activesupport-7.0" do
4
- gem "activesupport", "~> 7.0"
5
- end
6
-
7
- appraise "activesupport-6.1" do
8
- gem "activesupport", "~> 6.1"
9
- end
10
-
11
- appraise "activesupport-6.0" do
12
- gem "activesupport", "~> 6.0"
13
- end
14
-
15
- appraise "activesupport-5.2" do
16
- gem "activesupport", "~> 5.2"
17
- end
data/bin/appraisal DELETED
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
- #
4
- # This file was generated by Bundler.
5
- #
6
- # The application 'appraisal' is installed as part of a gem, and
7
- # this file is here to facilitate running it.
8
- #
9
-
10
- require "pathname"
11
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
- Pathname.new(__FILE__).realpath)
13
-
14
- require "rubygems"
15
- require "bundler/setup"
16
-
17
- load Gem.bin_path("appraisal", "appraisal")