montrose 0.13.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
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")