montrose 0.8.2 → 0.9.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
- SHA1:
3
- metadata.gz: 64686c4f9d89dce6369bcee10e33c33a353ed1ce
4
- data.tar.gz: 5ab0820e474cea7b84b8f5c0e9bfa1ebb10cf738
2
+ SHA256:
3
+ metadata.gz: aea4b303d8edcae6f8273a01596ad8cef6bc44a910b14ccb386b7c31e75e9770
4
+ data.tar.gz: 542674604e253fbc5a33ecd37ad4776291d30a45263a10440d898690cb7554ca
5
5
  SHA512:
6
- metadata.gz: 5bec08f7aaabb73027e9627c2cd85813a199ef0a92bc9018305a06650ffb2a2a3a14dcebccc961b3bf0f238fc458860a0e1389a0e15d65fdb09026d9be264d88
7
- data.tar.gz: c373fa0f7e8ae214950d6252a581b65630594163fb5ab3c7a09a24dd7d09d506f18998ea837b7fc5ee65881bf1fd5c09f61daccf0eb00b1c7788f7400db2c319
6
+ metadata.gz: 9a807b48aef8b5143f7cfe45d5ccbb8192e529dbb802aed82c21c375e48889cfd447d0f29e7238004458e56806164db387ae966a5c492433808bc90a5698ec8e
7
+ data.tar.gz: 2653cfceb13a13e4941ead84dbacc1ed5ef05cad74465bd39ab738cbcd48a3cebc9e70b59d521c8c38be1aacdd120dfdb75ae6ba81e991e644039adfa2f65697
data/.gitignore CHANGED
@@ -10,3 +10,5 @@
10
10
  /profile.log
11
11
  /trace.txt
12
12
  gemfiles/*.lock
13
+ /.ruby-gemset
14
+ /.ruby-version
@@ -3,7 +3,7 @@ AllCops:
3
3
  - 'bin/**/*'
4
4
  - 'gemfiles/**/*'
5
5
  - 'tmp/**/*'
6
- TargetRubyVersion: '2.1.0'
6
+ TargetRubyVersion: '2.3.0'
7
7
 
8
8
  Lint/HandleExceptions:
9
9
  Exclude:
@@ -39,12 +39,6 @@ Metrics/BlockLength:
39
39
  Documentation:
40
40
  Enabled: false # TODO: Enable again once we have more docs
41
41
 
42
- Lint/EndAlignment:
43
- Enabled: false
44
-
45
- Lint/DefEndAlignment:
46
- Enabled: false
47
-
48
42
  Lint/HandleExceptions:
49
43
  Enabled: false
50
44
 
@@ -52,6 +46,9 @@ Style/GlobalVars:
52
46
  Exclude:
53
47
  - spec/support/trace.rb
54
48
 
49
+ Style/SafeNavigation:
50
+ Enabled: false
51
+
55
52
  Style/SpecialGlobalVars:
56
53
  Enabled: false
57
54
 
@@ -79,6 +76,12 @@ Style/StringLiteralsInInterpolation:
79
76
  Layout/ClosingParenthesisIndentation:
80
77
  Enabled: false
81
78
 
79
+ Layout/EndAlignment:
80
+ Enabled: false
81
+
82
+ Layout/DefEndAlignment:
83
+ Enabled: false
84
+
82
85
  Style/OneLineConditional:
83
86
  Enabled: false
84
87
 
@@ -1,6 +1,7 @@
1
1
  bundler_args: "--jobs 4 --retry 3"
2
2
  cache: bundler
3
3
  gemfile:
4
+ - gemfiles/activesupport_6.0.gemfile
4
5
  - gemfiles/activesupport_5.2.gemfile
5
6
  - gemfiles/activesupport_5.1.gemfile
6
7
  - gemfiles/activesupport_5.0.gemfile
@@ -9,23 +10,22 @@ gemfile:
9
10
  language: ruby
10
11
  matrix:
11
12
  exclude:
12
- - rvm: 2.1
13
- gemfile: gemfiles/activesupport_5.0.gemfile # Requires Ruby 2.2+
14
- - rvm: 2.1
15
- gemfile: gemfiles/activesupport_5.1.gemfile # Requires Ruby 2.2+
16
- - rvm: 2.1
17
- gemfile: gemfiles/activesupport_5.2.gemfile # Requires Ruby 2.2+
13
+ - rvm: 2.3
14
+ gemfile: gemfiles/activesupport_6.0.gemfile # Requires ruby 2.5+
18
15
  - rvm: 2.4
19
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+
20
19
  - rvm: 2.5
21
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+
22
23
  fast_finish: true
23
24
  rvm:
24
- - 2.1
25
- - 2.2
26
25
  - 2.3
27
26
  - 2.4
28
27
  - 2.5
28
+ - 2.6
29
29
  sudo: false
30
30
  before_install:
31
31
  - gem update --system
@@ -1,3 +1,16 @@
1
+ ### 0.9.0 - (2019-03-11)
2
+
3
+ * enhancements
4
+ * enables support for ActiveRecord 6
5
+
6
+ * bug fixes
7
+ * Fixes bug for nth day of month when used with yearly interval
8
+
9
+ * breaking changes
10
+ * using selected with :month with :day as a Hash will now enforce the
11
+ `NthDayOfMonth` recurrence rule
12
+ * drops official support for Ruby 2.1 and 2.2
13
+
1
14
  ### 0.8.2 - (2018-08-02)
2
15
 
3
16
  * bug fixes
data/Gemfile CHANGED
@@ -6,9 +6,12 @@ gemspec
6
6
 
7
7
  group :development do
8
8
  gem "coveralls"
9
- gem "guard", platforms: %i[ruby_22 ruby_23] # Guard no longer supports ruby 2.1
10
- gem "guard-minitest", platforms: %i[ruby_22 ruby_23]
11
- gem "guard-rubocop", platforms: %i[ruby_22 ruby_23]
12
- gem "pry-byebug", platforms: %i[ruby_21 ruby_22 ruby_23 ruby_24]
13
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
14
17
  end
data/README.md CHANGED
@@ -34,7 +34,7 @@ More specifically, this project intends to:
34
34
 
35
35
  * model recurring events in Ruby
36
36
  * embrace Ruby idioms
37
- * support Ruby 2.1+
37
+ * support recent Rubies
38
38
  * be reasonably performant
39
39
  * serialize to yaml, hash, and [ical](http://www.kanzaki.com/docs/ical/rrule.html#basic) formats
40
40
  * be suitable for integration with persistence libraries
@@ -271,9 +271,6 @@ Montrose.every(4.years, month: :november, on: { tuesday: 2..8 })
271
271
  date = Date.new(2016, 9, 1)
272
272
  Montrose.hourly(between: date..(date+1), hour: 9..17, interval: 3)
273
273
 
274
- # every 15 minutes for 6 occurrences
275
- Montrose.every(90.minutes, total: 6)
276
-
277
274
  # every hour and a half for four occurrences
278
275
  Montrose.every(90.minutes, total: 4)
279
276
 
@@ -6,10 +6,6 @@ gem "activesupport", "~> 4.1.0"
6
6
 
7
7
  group :development do
8
8
  gem "coveralls"
9
- gem "guard", platforms: [:ruby_22, :ruby_23]
10
- gem "guard-minitest", platforms: [:ruby_22, :ruby_23]
11
- gem "guard-rubocop", platforms: [:ruby_22, :ruby_23]
12
- gem "pry-byebug", platforms: [:ruby_21, :ruby_22, :ruby_23]
13
9
  gem "yard"
14
10
  end
15
11
 
@@ -6,10 +6,6 @@ gem "activesupport", "~> 4.2.0"
6
6
 
7
7
  group :development do
8
8
  gem "coveralls"
9
- gem "guard", platforms: [:ruby_22, :ruby_23]
10
- gem "guard-minitest", platforms: [:ruby_22, :ruby_23]
11
- gem "guard-rubocop", platforms: [:ruby_22, :ruby_23]
12
- gem "pry-byebug", platforms: [:ruby_21, :ruby_22, :ruby_23]
13
9
  gem "yard"
14
10
  end
15
11
 
@@ -6,10 +6,6 @@ gem "activesupport", "~> 5.0.0"
6
6
 
7
7
  group :development do
8
8
  gem "coveralls"
9
- gem "guard", platforms: [:ruby_22, :ruby_23]
10
- gem "guard-minitest", platforms: [:ruby_22, :ruby_23]
11
- gem "guard-rubocop", platforms: [:ruby_22, :ruby_23]
12
- gem "pry-byebug", platforms: [:ruby_21, :ruby_22, :ruby_23]
13
9
  gem "yard"
14
10
  end
15
11
 
@@ -6,10 +6,6 @@ gem "activesupport", "~> 5.1.0"
6
6
 
7
7
  group :development do
8
8
  gem "coveralls"
9
- gem "guard", platforms: [:ruby_22, :ruby_23]
10
- gem "guard-minitest", platforms: [:ruby_22, :ruby_23]
11
- gem "guard-rubocop", platforms: [:ruby_22, :ruby_23]
12
- gem "pry-byebug", platforms: [:ruby_21, :ruby_22, :ruby_23]
13
9
  gem "yard"
14
10
  end
15
11
 
@@ -6,10 +6,6 @@ gem "activesupport", "~> 5.2.0"
6
6
 
7
7
  group :development do
8
8
  gem "coveralls"
9
- gem "guard", platforms: [:ruby_22, :ruby_23]
10
- gem "guard-minitest", platforms: [:ruby_22, :ruby_23]
11
- gem "guard-rubocop", platforms: [:ruby_22, :ruby_23]
12
- gem "pry-byebug", platforms: [:ruby_21, :ruby_22, :ruby_23]
13
9
  gem "yard"
14
10
  end
15
11
 
@@ -0,0 +1,12 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activesupport", "~> 6.0.0.beta2"
6
+
7
+ group :development do
8
+ gem "coveralls"
9
+ gem "yard"
10
+ end
11
+
12
+ gemspec path: "../"
@@ -9,6 +9,7 @@ module Montrose
9
9
 
10
10
  def to_cron
11
11
  raise "Intervals unsupported" unless @interval == 1
12
+
12
13
  "#{@starts.min} #{@starts.hour} * * #{@starts.wday}"
13
14
  end
14
15
 
@@ -9,6 +9,7 @@ module Montrose
9
9
 
10
10
  def to_cron
11
11
  raise "Intervals unsupported" unless @interval == 1
12
+
12
13
  "#{@starts.min} #{@starts.hour} #{@starts.day} #{@starts.month} *"
13
14
  end
14
15
  end
@@ -11,6 +11,7 @@ module Montrose
11
11
  class << self
12
12
  def new(options = {})
13
13
  return options if options.is_a?(self)
14
+
14
15
  super
15
16
  end
16
17
 
@@ -142,6 +143,7 @@ module Montrose
142
143
 
143
144
  def fetch(key, *args, &_block)
144
145
  fail ArgumentError, "wrong number of arguments (#{args.length} for 1..2)" if args.length > 1
146
+
145
147
  found = send(key)
146
148
  return found if found
147
149
  return args.first if args.length == 1
@@ -305,8 +307,10 @@ module Montrose
305
307
  def month_or_day(key)
306
308
  month = month_number(key)
307
309
  return [:month, month] if month
310
+
308
311
  day = day_number(key)
309
312
  return [:day, day] if day
313
+
310
314
  fail ConfigurationError, "Did not recognize #{key} as a month or day"
311
315
  end
312
316
 
@@ -222,6 +222,7 @@ module Montrose
222
222
  class << self
223
223
  def new(options = {})
224
224
  return options if options.is_a?(self)
225
+
225
226
  super
226
227
  end
227
228
 
@@ -8,7 +8,7 @@ module Montrose
8
8
  include Montrose::Rule
9
9
 
10
10
  def self.apply_options?(opts)
11
- opts[:every] == :month && opts[:day].is_a?(Hash)
11
+ (opts[:every] == :month || opts[:month]) && opts[:day].is_a?(Hash)
12
12
  end
13
13
 
14
14
  def self.apply_options(opts)
@@ -8,7 +8,7 @@ module Montrose
8
8
  include Montrose::Rule
9
9
 
10
10
  def self.apply_options?(opts)
11
- opts[:every] == :year && opts[:day].is_a?(Hash)
11
+ opts[:every] == :year && !opts[:month] && opts[:day].is_a?(Hash)
12
12
  end
13
13
 
14
14
  def self.apply_options(opts)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Montrose
4
- VERSION = "0.8.2"
4
+ VERSION = "0.9.0"
5
5
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path("../lib", __FILE__)
3
+ lib = File.expand_path("lib", __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require "montrose/version"
6
6
 
@@ -20,15 +20,14 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.required_ruby_version = ">= 2.1.0"
23
+ spec.required_ruby_version = ">= 2.3.0"
24
24
 
25
- spec.add_dependency "activesupport", ">= 4.1", "< 5.3"
25
+ spec.add_dependency "activesupport", ">= 4.1", "< 6.0"
26
26
 
27
27
  spec.add_development_dependency "appraisal", "~> 2.2.0"
28
- spec.add_development_dependency "bundler", "~> 1.13"
29
28
  spec.add_development_dependency "m", "~> 1.5"
30
- spec.add_development_dependency "minitest", "~> 5.10"
29
+ spec.add_development_dependency "minitest"
31
30
  spec.add_development_dependency "rake", "~> 11.0"
32
- spec.add_development_dependency "rubocop", "~> 0.52.1"
31
+ spec.add_development_dependency "rubocop", "~> 0.64.0"
33
32
  spec.add_development_dependency "timecop"
34
33
  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.8.2
4
+ version: 0.9.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: 2018-08-03 00:00:00.000000000 Z
11
+ date: 2019-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '4.1'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.3'
22
+ version: '6.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '4.1'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5.3'
32
+ version: '6.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: appraisal
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -44,20 +44,6 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: 2.2.0
47
- - !ruby/object:Gem::Dependency
48
- name: bundler
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '1.13'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '1.13'
61
47
  - !ruby/object:Gem::Dependency
62
48
  name: m
63
49
  requirement: !ruby/object:Gem::Requirement
@@ -76,16 +62,16 @@ dependencies:
76
62
  name: minitest
77
63
  requirement: !ruby/object:Gem::Requirement
78
64
  requirements:
79
- - - "~>"
65
+ - - ">="
80
66
  - !ruby/object:Gem::Version
81
- version: '5.10'
67
+ version: '0'
82
68
  type: :development
83
69
  prerelease: false
84
70
  version_requirements: !ruby/object:Gem::Requirement
85
71
  requirements:
86
- - - "~>"
72
+ - - ">="
87
73
  - !ruby/object:Gem::Version
88
- version: '5.10'
74
+ version: '0'
89
75
  - !ruby/object:Gem::Dependency
90
76
  name: rake
91
77
  requirement: !ruby/object:Gem::Requirement
@@ -106,14 +92,14 @@ dependencies:
106
92
  requirements:
107
93
  - - "~>"
108
94
  - !ruby/object:Gem::Version
109
- version: 0.52.1
95
+ version: 0.64.0
110
96
  type: :development
111
97
  prerelease: false
112
98
  version_requirements: !ruby/object:Gem::Requirement
113
99
  requirements:
114
100
  - - "~>"
115
101
  - !ruby/object:Gem::Version
116
- version: 0.52.1
102
+ version: 0.64.0
117
103
  - !ruby/object:Gem::Dependency
118
104
  name: timecop
119
105
  requirement: !ruby/object:Gem::Requirement
@@ -161,6 +147,7 @@ files:
161
147
  - gemfiles/activesupport_5.0.gemfile
162
148
  - gemfiles/activesupport_5.1.gemfile
163
149
  - gemfiles/activesupport_5.2.gemfile
150
+ - gemfiles/activesupport_6.0.gemfile
164
151
  - lib/montrose.rb
165
152
  - lib/montrose/chainable.rb
166
153
  - lib/montrose/clock.rb
@@ -209,15 +196,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
196
  requirements:
210
197
  - - ">="
211
198
  - !ruby/object:Gem::Version
212
- version: 2.1.0
199
+ version: 2.3.0
213
200
  required_rubygems_version: !ruby/object:Gem::Requirement
214
201
  requirements:
215
202
  - - ">="
216
203
  - !ruby/object:Gem::Version
217
204
  version: '0'
218
205
  requirements: []
219
- rubyforge_project:
220
- rubygems_version: 2.6.13
206
+ rubygems_version: 3.0.3
221
207
  signing_key:
222
208
  specification_version: 4
223
209
  summary: Recurring events in Ruby