activerecord-time 0.20.0 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +6 -19
- data/.gitignore +1 -2
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +20 -26
- data/Gemfile +2 -0
- data/activerecord-time.gemspec +1 -8
- data/gemfiles/common.gemfile +1 -25
- data/gemfiles/gems_ar70.rb +12 -0
- data/gemfiles/gems_ar71.rb +18 -0
- data/lib/activerecord-time/extension.rb +5 -4
- data/lib/activerecord-time/version.rb +1 -1
- data/lib/time_of_day/core_ext.rb +1 -0
- data/lib/time_of_day.rb +34 -29
- data/matrix_test.rb +34 -32
- data/test/test_helper.rb +1 -1
- data/test/time_of_day_test.rb +7 -2
- metadata +6 -37
- data/.travis.yml +0 -29
- data/gemfiles/ar51.gemfile +0 -3
- data/gemfiles/ar52.gemfile +0 -3
- data/gemfiles/ar60.gemfile +0 -3
- data/gemfiles/ar61.gemfile +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 871778cc70f4d4da9385d3d38e9d8e5b945e459ffe0e78c7e340b8e12f795ef6
|
4
|
+
data.tar.gz: 9d9dfbc6e0256c8b91db7a788ace40cd9ffd583cd5dda8713907545b776ea97f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9965445d6ca087fe9e860b75be161f3ecf22c949d7c44c5c521e5d50938f8d7cb7f9f15af1972766f753c5b1abe748eae4a51a99d57ef12be786cca5c322a347
|
7
|
+
data.tar.gz: 6662a72e566791c18d8439685f1202e12a7ed32ac60917cc1aa64384e1de53ea6ed5b89cb73f5091435ebe5656eaeb16c0466eb01d073eccd2196f9adc5c13f3
|
data/.github/workflows/test.yml
CHANGED
@@ -1,14 +1,5 @@
|
|
1
1
|
name: Test
|
2
2
|
on:
|
3
|
-
workflow_dispatch:
|
4
|
-
inputs:
|
5
|
-
logLevel:
|
6
|
-
description: 'Log level'
|
7
|
-
required: true
|
8
|
-
default: 'warning'
|
9
|
-
tags:
|
10
|
-
description: 'Test scenario tags'
|
11
|
-
required: false
|
12
3
|
push:
|
13
4
|
branches: [ master ]
|
14
5
|
pull_request:
|
@@ -27,12 +18,12 @@ jobs:
|
|
27
18
|
- uses: actions/checkout@v2
|
28
19
|
- uses: ruby/setup-ruby@v1
|
29
20
|
with:
|
30
|
-
ruby-version: '3.
|
21
|
+
ruby-version: '3.3'
|
31
22
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
32
23
|
- name: Rubocop
|
33
24
|
run: bundle exec rubocop --auto-correct-all
|
34
25
|
Test:
|
35
|
-
runs-on: ubuntu-
|
26
|
+
runs-on: ubuntu-latest
|
36
27
|
services:
|
37
28
|
postgres:
|
38
29
|
image: postgres
|
@@ -46,19 +37,15 @@ jobs:
|
|
46
37
|
fail-fast: false
|
47
38
|
matrix:
|
48
39
|
# Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
|
49
|
-
ruby: [
|
50
|
-
gemfile: [
|
40
|
+
ruby: [ 3.3, 3.2, 3.1, jruby, truffleruby ]
|
41
|
+
gemfile: [ ar71, ar70 ]
|
51
42
|
adapter: [ postgresql, sqlite3 ]
|
52
43
|
exclude:
|
53
|
-
- ruby: '3.0'
|
54
|
-
gemfile: ar52
|
55
|
-
- ruby: '3.0'
|
56
|
-
gemfile: ar51
|
57
44
|
- ruby: jruby
|
58
|
-
|
45
|
+
- ruby: truffleruby
|
59
46
|
env:
|
60
47
|
ADAPTER: ${{ matrix.adapter }}
|
61
|
-
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles
|
48
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/gems_${{ matrix.gemfile }}.rb
|
62
49
|
steps:
|
63
50
|
- uses: actions/checkout@v2
|
64
51
|
- uses: ruby/setup-ruby@v1
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2024-04-28 21:09:41 UTC using RuboCop version 1.63.4.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -17,38 +17,33 @@ Lint/DuplicateBranch:
|
|
17
17
|
Exclude:
|
18
18
|
- 'lib/time_of_day.rb'
|
19
19
|
|
20
|
-
# Offense count:
|
21
|
-
# Configuration parameters:
|
20
|
+
# Offense count: 4
|
21
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
|
22
22
|
Metrics/AbcSize:
|
23
|
-
Max:
|
24
|
-
|
25
|
-
# Offense count: 1
|
26
|
-
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
27
|
-
# IgnoredMethods: refine
|
28
|
-
Metrics/BlockLength:
|
29
|
-
Max: 28
|
23
|
+
Max: 32
|
30
24
|
|
31
25
|
# Offense count: 2
|
32
26
|
# Configuration parameters: CountComments, CountAsOne.
|
33
27
|
Metrics/ClassLength:
|
34
|
-
Max:
|
28
|
+
Max: 189
|
35
29
|
|
36
|
-
# Offense count:
|
37
|
-
# Configuration parameters:
|
30
|
+
# Offense count: 2
|
31
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns.
|
38
32
|
Metrics/CyclomaticComplexity:
|
39
33
|
Max: 10
|
40
34
|
|
41
35
|
# Offense count: 3
|
42
|
-
# Configuration parameters: CountComments, CountAsOne,
|
36
|
+
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
|
43
37
|
Metrics/MethodLength:
|
44
38
|
Max: 13
|
45
39
|
|
46
|
-
# Offense count:
|
47
|
-
# Configuration parameters:
|
40
|
+
# Offense count: 2
|
41
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns.
|
48
42
|
Metrics/PerceivedComplexity:
|
49
43
|
Max: 11
|
50
44
|
|
51
45
|
# Offense count: 2
|
46
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
52
47
|
# Configuration parameters: EnforcedStyle, AllowToTime.
|
53
48
|
# SupportedStyles: strict, flexible
|
54
49
|
Rails/Date:
|
@@ -56,32 +51,31 @@ Rails/Date:
|
|
56
51
|
- 'lib/time_of_day.rb'
|
57
52
|
|
58
53
|
# Offense count: 1
|
59
|
-
#
|
54
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
60
55
|
Rails/WhereEquals:
|
61
56
|
Exclude:
|
62
57
|
- 'test/time_of_day_test.rb'
|
63
58
|
|
64
59
|
# Offense count: 1
|
65
|
-
#
|
60
|
+
# This cop supports safe autocorrection (--autocorrect).
|
66
61
|
Rails/WhereNot:
|
67
62
|
Exclude:
|
68
63
|
- 'test/time_of_day_test.rb'
|
69
64
|
|
70
|
-
# Offense count:
|
71
|
-
|
72
|
-
Security/YAMLLoad:
|
65
|
+
# Offense count: 1
|
66
|
+
Security/CompoundHash:
|
73
67
|
Exclude:
|
74
|
-
- '
|
75
|
-
- 'test/time_of_day_test.rb'
|
68
|
+
- 'lib/time_of_day.rb'
|
76
69
|
|
77
70
|
# Offense count: 1
|
71
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
78
72
|
# Configuration parameters: AllowModifiersOnSymbols.
|
79
73
|
# SupportedStyles: inline, group
|
80
74
|
Style/AccessModifierDeclarations:
|
81
75
|
EnforcedStyle: inline
|
82
76
|
|
83
77
|
# Offense count: 3
|
84
|
-
#
|
78
|
+
# This cop supports safe autocorrection (--autocorrect).
|
85
79
|
# Configuration parameters: EnforcedStyle.
|
86
80
|
# SupportedStyles: separated, grouped
|
87
81
|
Style/AccessorGrouping:
|
@@ -89,7 +83,7 @@ Style/AccessorGrouping:
|
|
89
83
|
- 'lib/time_of_day.rb'
|
90
84
|
|
91
85
|
# Offense count: 1
|
92
|
-
#
|
86
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
93
87
|
# Configuration parameters: EnforcedStyle.
|
94
88
|
# SupportedStyles: nested, compact
|
95
89
|
Style/ClassAndModuleChildren:
|
@@ -104,7 +98,7 @@ Style/OptionalBooleanParameter:
|
|
104
98
|
- 'lib/time_of_day.rb'
|
105
99
|
|
106
100
|
# Offense count: 5
|
107
|
-
#
|
101
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
108
102
|
# Configuration parameters: Mode.
|
109
103
|
Style/StringConcatenation:
|
110
104
|
Exclude:
|
data/Gemfile
CHANGED
data/activerecord-time.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.summary = 'A handler for storing TimeOfDay objects in ActiveRecord objects as sql time values.'
|
17
17
|
gem.homepage = 'https://github.com/donv/activerecord-time'
|
18
18
|
gem.license = 'MIT'
|
19
|
-
gem.required_ruby_version = '>=
|
19
|
+
gem.required_ruby_version = '>= 3.1'
|
20
20
|
|
21
21
|
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
22
22
|
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
@@ -25,13 +25,6 @@ Gem::Specification.new do |gem|
|
|
25
25
|
|
26
26
|
gem.add_runtime_dependency 'activerecord', '~>7.0'
|
27
27
|
|
28
|
-
if defined? JRUBY_VERSION
|
29
|
-
gem.add_development_dependency 'activerecord-jdbcpostgresql-adapter'
|
30
|
-
gem.add_development_dependency 'activerecord-jdbcsqlite3-adapter'
|
31
|
-
else
|
32
|
-
gem.add_development_dependency 'pg'
|
33
|
-
gem.add_development_dependency 'sqlite3'
|
34
|
-
end
|
35
28
|
gem.add_development_dependency 'rake'
|
36
29
|
gem.add_development_dependency 'rubocop'
|
37
30
|
gem.add_development_dependency 'rubocop-performance'
|
data/gemfiles/common.gemfile
CHANGED
@@ -1,32 +1,8 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
unless defined?(SKIP_JRUBY)
|
4
|
-
platform :jruby do
|
5
|
-
if defined?(RAILS_5)
|
6
|
-
git_source(:github) do |repo_name|
|
7
|
-
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?('/')
|
8
|
-
"https://github.com/#{repo_name}.git"
|
9
|
-
end
|
10
|
-
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter'
|
11
|
-
gem 'activerecord-jdbcderby-adapter', github: 'jruby/activerecord-jdbc-adapter'
|
12
|
-
gem 'activerecord-jdbcpostgresql-adapter', github: 'jruby/activerecord-jdbc-adapter'
|
13
|
-
gem 'activerecord-jdbcsqlite3-adapter', github: 'jruby/activerecord-jdbc-adapter'
|
14
|
-
gem 'jdbc-postgres', github: 'jruby/activerecord-jdbc-adapter'
|
15
|
-
gem 'jdbc-sqlite3', github: 'jruby/activerecord-jdbc-adapter'
|
16
|
-
else
|
17
|
-
# rubocop: disable Bundler/DuplicatedGem
|
18
|
-
gem 'activerecord-jdbc-adapter'
|
19
|
-
gem 'activerecord-jdbcderby-adapter'
|
20
|
-
gem 'activerecord-jdbcpostgresql-adapter'
|
21
|
-
gem 'activerecord-jdbcsqlite3-adapter'
|
22
|
-
# rubocop: enable Bundler/DuplicatedGem
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
3
|
platform :ruby do
|
28
4
|
gem 'pg'
|
29
|
-
gem 'sqlite3'
|
5
|
+
gem 'sqlite3', '<2'
|
30
6
|
end
|
31
7
|
|
32
8
|
gem 'minitest-reporters'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
eval File.read("#{File.dirname __FILE__}/common.gemfile")
|
4
|
+
|
5
|
+
platform :jruby do
|
6
|
+
# gem 'activerecord-jdbc-adapter'
|
7
|
+
# gem 'activerecord-jdbcderby-adapter'
|
8
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
9
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
10
|
+
end
|
11
|
+
|
12
|
+
gem 'activerecord', '~>7.0.0'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
eval File.read("#{File.dirname __FILE__}/common.gemfile")
|
4
|
+
|
5
|
+
platform :jruby do
|
6
|
+
git_source(:github) do |repo_name|
|
7
|
+
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?('/')
|
8
|
+
"https://github.com/#{repo_name}.git"
|
9
|
+
end
|
10
|
+
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter'
|
11
|
+
# gem 'activerecord-jdbcderby-adapter', github: 'jruby/activerecord-jdbc-adapter'
|
12
|
+
gem 'activerecord-jdbcpostgresql-adapter', github: 'jruby/activerecord-jdbc-adapter'
|
13
|
+
gem 'activerecord-jdbcsqlite3-adapter', github: 'jruby/activerecord-jdbc-adapter'
|
14
|
+
gem 'jdbc-postgres', github: 'jruby/activerecord-jdbc-adapter'
|
15
|
+
gem 'jdbc-sqlite3', github: 'jruby/activerecord-jdbc-adapter'
|
16
|
+
end
|
17
|
+
|
18
|
+
gem 'activerecord', '~>7.1.0'
|
@@ -20,11 +20,11 @@ module Activerecord
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
ActiveRecord::ConnectionAdapters::
|
23
|
+
ActiveRecord::ConnectionAdapters::AbstractAdapter.prepend Activerecord::Time::Quoting
|
24
24
|
|
25
|
-
module
|
26
|
-
module
|
27
|
-
|
25
|
+
module Activerecord
|
26
|
+
module Time
|
27
|
+
module Casting
|
28
28
|
private def cast_value(value)
|
29
29
|
return value.time_of_day if value.is_a?(::DateTime) || value.is_a?(::Time)
|
30
30
|
return value unless value.is_a?(::String)
|
@@ -35,3 +35,4 @@ module ActiveRecord
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
38
|
+
ActiveRecord::Type::Time.prepend Activerecord::Time::Casting
|
data/lib/time_of_day/core_ext.rb
CHANGED
data/lib/time_of_day.rb
CHANGED
@@ -9,32 +9,6 @@ class TimeOfDay
|
|
9
9
|
attr_accessor :minute # 0 - 59
|
10
10
|
attr_accessor :second # 0 - 59
|
11
11
|
|
12
|
-
def initialize(hour, minute = 0, second = 0)
|
13
|
-
if hour == 24
|
14
|
-
unless minute == 0 && second == 0
|
15
|
-
raise "Invalid TimeOfDay. #{hour}:#{minute}:#{second} given, but highest allowed value is 24:00:00"
|
16
|
-
end
|
17
|
-
else
|
18
|
-
raise "Invalid hour: #{hour}" unless hour >= 0 && hour <= 23
|
19
|
-
end
|
20
|
-
raise "Invalid minute: #{minute}" unless minute >= 0 && minute <= 59
|
21
|
-
raise "Invalid second: #{second}" unless second >= 0 && second <= 59
|
22
|
-
|
23
|
-
@hour = hour
|
24
|
-
@minute = minute
|
25
|
-
@second = second
|
26
|
-
end
|
27
|
-
|
28
|
-
def init_with(coder)
|
29
|
-
parts = self.class.parse_parts(coder.scalar)
|
30
|
-
initialize(*parts)
|
31
|
-
end
|
32
|
-
|
33
|
-
def encode_with(coder)
|
34
|
-
coder.tag = 'tag:yaml.org,2002:time'
|
35
|
-
coder.scalar = to_s
|
36
|
-
end
|
37
|
-
|
38
12
|
def self.now
|
39
13
|
Time.now.time_of_day # rubocop: disable Rails/TimeZone
|
40
14
|
end
|
@@ -62,8 +36,30 @@ class TimeOfDay
|
|
62
36
|
[hours.to_i, minutes.to_i, seconds.to_i]
|
63
37
|
end
|
64
38
|
|
65
|
-
def
|
66
|
-
|
39
|
+
def initialize(hour, minute = 0, second = 0)
|
40
|
+
if hour == 24
|
41
|
+
unless minute == 0 && second == 0
|
42
|
+
raise "Invalid TimeOfDay. #{hour}:#{minute}:#{second} given, but highest allowed value is 24:00:00"
|
43
|
+
end
|
44
|
+
else
|
45
|
+
raise "Invalid hour: #{hour}" unless hour >= 0 && hour <= 23
|
46
|
+
end
|
47
|
+
raise "Invalid minute: #{minute}" unless minute >= 0 && minute <= 59
|
48
|
+
raise "Invalid second: #{second}" unless second >= 0 && second <= 59
|
49
|
+
|
50
|
+
@hour = hour
|
51
|
+
@minute = minute
|
52
|
+
@second = second
|
53
|
+
end
|
54
|
+
|
55
|
+
def init_with(coder)
|
56
|
+
parts = self.class.parse_parts(coder.scalar)
|
57
|
+
initialize(*parts)
|
58
|
+
end
|
59
|
+
|
60
|
+
def encode_with(coder)
|
61
|
+
coder.tag = 'tag:yaml.org,2002:time'
|
62
|
+
coder.scalar = to_s
|
67
63
|
end
|
68
64
|
|
69
65
|
def in_time_zone(*)
|
@@ -78,6 +74,14 @@ class TimeOfDay
|
|
78
74
|
Time.local(date.year, date.month, date.day, hour, minute, second) # rubocop: disable Rails/TimeZone
|
79
75
|
end
|
80
76
|
|
77
|
+
def change(*)
|
78
|
+
self
|
79
|
+
end
|
80
|
+
|
81
|
+
def year
|
82
|
+
2000
|
83
|
+
end
|
84
|
+
|
81
85
|
def +(other)
|
82
86
|
raise "Illegal argument: #{other.inspect}" unless other.is_a? Numeric
|
83
87
|
|
@@ -93,7 +97,7 @@ class TimeOfDay
|
|
93
97
|
t2 = Time.local(0, 1, 1, other.hour, other.minute, other.second) # rubocop: disable Rails/TimeZone
|
94
98
|
(t1 - t2).seconds
|
95
99
|
when Numeric
|
96
|
-
self
|
100
|
+
self + -other
|
97
101
|
else
|
98
102
|
raise "Illegal argument: #{other.inspect}"
|
99
103
|
end
|
@@ -137,6 +141,7 @@ class TimeOfDay
|
|
137
141
|
rescue
|
138
142
|
"#{@hour.inspect}:#{@minute.inspect}:#{@second.inspect}"
|
139
143
|
end
|
144
|
+
alias to_fs to_s
|
140
145
|
|
141
146
|
def inspect
|
142
147
|
"#<#{self.class} hour=#{@hour}, minute=#{@minute}, second=#{@second}>"
|
data/matrix_test.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
#!/usr/bin/env ruby -w
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
system('rubocop --
|
4
|
+
system('rubocop --autocorrect-all') || exit(1)
|
5
5
|
|
6
6
|
update_gemfiles = ARGV.delete('--update')
|
7
7
|
|
8
8
|
require 'yaml'
|
9
|
-
|
9
|
+
actions = YAML.safe_load_file('.github/workflows/test.yml')
|
10
10
|
|
11
11
|
def run_script(ruby, env, gemfile)
|
12
|
-
env.
|
13
|
-
ENV[key] = value
|
12
|
+
env.each do |key, value|
|
13
|
+
ENV[key.to_s] = value
|
14
14
|
end
|
15
15
|
puts '*' * 80
|
16
16
|
puts "Testing #{ruby} #{gemfile} #{env}"
|
@@ -24,10 +24,9 @@ def use_gemfile(ruby, gemfile, update_gemfiles)
|
|
24
24
|
puts '$' * 80
|
25
25
|
puts "Testing #{gemfile}"
|
26
26
|
puts
|
27
|
-
ENV['BUNDLE_GEMFILE'] = gemfile
|
28
|
-
system "chruby-exec #{ruby} -- bundle -v"
|
27
|
+
ENV['BUNDLE_GEMFILE'] = "gemfiles/gems_#{gemfile}.rb"
|
29
28
|
if update_gemfiles
|
30
|
-
system "chruby-exec #{ruby} -- bundle update"
|
29
|
+
system "chruby-exec #{ruby} -- bundle update && chruby-exec #{ruby} -- bundle update --bundler"
|
31
30
|
else
|
32
31
|
system "chruby-exec #{ruby} -- bundle check || chruby-exec #{ruby} -- bundle install"
|
33
32
|
end || exit(1)
|
@@ -36,39 +35,42 @@ def use_gemfile(ruby, gemfile, update_gemfiles)
|
|
36
35
|
puts '$' * 80
|
37
36
|
end
|
38
37
|
|
39
|
-
bad_variants =
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
def bad_variant?(bad_variants, ruby, gemfile = nil, adapter = nil)
|
39
|
+
bad_variants.find do |f|
|
40
|
+
!(ruby.nil? ^ f['ruby'].nil?) && f['ruby'] == ruby &&
|
41
|
+
!(gemfile.nil? ^ f['gemfile'].nil?) && f['gemfile'] == gemfile &&
|
42
|
+
!(adapter.nil? ^ f['adapter'].nil?) && f['adapter'] == adapter
|
44
43
|
end
|
45
44
|
end
|
46
45
|
|
47
|
-
|
48
|
-
|
46
|
+
actions['env'].each do |key, value|
|
47
|
+
ENV[key] = value
|
48
|
+
end
|
49
|
+
|
50
|
+
matrix = actions['jobs']['Test']['strategy']['matrix']
|
51
|
+
bad_variants = matrix['exclude']
|
52
|
+
|
53
|
+
matrix['ruby'].each do |ruby|
|
54
|
+
next if bad_variant?(bad_variants, ruby)
|
49
55
|
|
50
56
|
puts '#' * 80
|
51
57
|
puts "Testing #{ruby}"
|
52
58
|
puts
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
if bad_variant
|
68
|
-
puts 'Skipping known failure.'
|
69
|
-
next
|
59
|
+
Bundler.with_unbundled_env do
|
60
|
+
system("ruby-install --no-reinstall #{ruby}") || exit(1)
|
61
|
+
matrix['gemfile'].each do |gemfile|
|
62
|
+
next if bad_variant?(bad_variants, ruby, gemfile)
|
63
|
+
|
64
|
+
use_gemfile(ruby, gemfile, update_gemfiles) do
|
65
|
+
matrix['adapter'].each do |adapter|
|
66
|
+
next if bad_variant?(bad_variants, ruby, gemfile, adapter)
|
67
|
+
|
68
|
+
puts '-' * 80
|
69
|
+
puts "Testing #{adapter}"
|
70
|
+
puts
|
71
|
+
|
72
|
+
run_script(ruby, { ADAPTER: adapter }, gemfile)
|
70
73
|
end
|
71
|
-
run_script(ruby, env, gemfile)
|
72
74
|
end
|
73
75
|
end
|
74
76
|
end
|
data/test/test_helper.rb
CHANGED
@@ -19,7 +19,7 @@ if defined?(Rake) && (RUBY_ENGINE != 'jruby' || org.jruby.RubyInstanceConfig.FUL
|
|
19
19
|
end
|
20
20
|
|
21
21
|
FileUtils.rm_rf File.expand_path(':memory:', File.dirname(__FILE__))
|
22
|
-
config = YAML.
|
22
|
+
config = YAML.load_file(File.dirname(__FILE__) + '/database.yml')
|
23
23
|
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + '/test.log')
|
24
24
|
adapter = ENV['ADAPTER'] || 'sqlite3'
|
25
25
|
if adapter != 'sqlite3'
|
data/test/time_of_day_test.rb
CHANGED
@@ -81,7 +81,11 @@ class TimeOfDayTest < Minitest::Test
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def test_yaml_load
|
84
|
-
hash =
|
84
|
+
hash = if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.1')
|
85
|
+
YAML.load('start_at: !!time 12:34:56')
|
86
|
+
else
|
87
|
+
YAML.load('start_at: !!time 12:34:56', permitted_classes: [:TimeOfDay])
|
88
|
+
end
|
85
89
|
assert_equal({ 'start_at' => TimeOfDay.parse('12:34:56') }, hash)
|
86
90
|
end
|
87
91
|
|
@@ -95,8 +99,9 @@ class TimeOfDayTest < Minitest::Test
|
|
95
99
|
end
|
96
100
|
|
97
101
|
def test_activerecord
|
98
|
-
Event.create! name: 'Bored meeting', start_at: @twelve_o_clock
|
102
|
+
t0 = Event.create! name: 'Bored meeting', start_at: @twelve_o_clock
|
99
103
|
t = Event.where(start_at: '12:00:00').first
|
104
|
+
assert_equal t0, t
|
100
105
|
assert_equal TimeOfDay, t.start_at.class
|
101
106
|
assert_equal t, Event.where(start_at: @twelve_o_clock).first
|
102
107
|
assert_equal t, Event.where('start_at = ?', @twelve_o_clock).first
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-time
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.22.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Uwe Kubosch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -24,34 +24,6 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '7.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: pg
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: sqlite3
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
27
|
- !ruby/object:Gem::Dependency
|
56
28
|
name: rake
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,18 +120,15 @@ files:
|
|
148
120
|
- ".gitignore"
|
149
121
|
- ".rubocop.yml"
|
150
122
|
- ".rubocop_todo.yml"
|
151
|
-
- ".travis.yml"
|
152
123
|
- Gemfile
|
153
124
|
- LICENSE
|
154
125
|
- LICENSE.txt
|
155
126
|
- README.md
|
156
127
|
- Rakefile
|
157
128
|
- activerecord-time.gemspec
|
158
|
-
- gemfiles/ar51.gemfile
|
159
|
-
- gemfiles/ar52.gemfile
|
160
|
-
- gemfiles/ar60.gemfile
|
161
|
-
- gemfiles/ar61.gemfile
|
162
129
|
- gemfiles/common.gemfile
|
130
|
+
- gemfiles/gems_ar70.rb
|
131
|
+
- gemfiles/gems_ar71.rb
|
163
132
|
- lib/activerecord-time.rb
|
164
133
|
- lib/activerecord-time/extension.rb
|
165
134
|
- lib/activerecord-time/version.rb
|
@@ -182,14 +151,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
182
151
|
requirements:
|
183
152
|
- - ">="
|
184
153
|
- !ruby/object:Gem::Version
|
185
|
-
version: '
|
154
|
+
version: '3.1'
|
186
155
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
156
|
requirements:
|
188
157
|
- - ">="
|
189
158
|
- !ruby/object:Gem::Version
|
190
159
|
version: '0'
|
191
160
|
requirements: []
|
192
|
-
rubygems_version: 3.
|
161
|
+
rubygems_version: 3.5.9
|
193
162
|
signing_key:
|
194
163
|
specification_version: 4
|
195
164
|
summary: A handler for storing TimeOfDay objects in ActiveRecord objects as sql time
|
data/.travis.yml
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
sudo: false
|
3
|
-
cache: bundler
|
4
|
-
services:
|
5
|
-
- postgresql
|
6
|
-
jdk:
|
7
|
-
- openjdk11
|
8
|
-
rvm:
|
9
|
-
- ruby-3.0
|
10
|
-
- ruby-2.7
|
11
|
-
- ruby-2.6
|
12
|
-
- ruby-2.5
|
13
|
-
- jruby
|
14
|
-
gemfile:
|
15
|
-
- gemfiles/ar61.gemfile
|
16
|
-
- gemfiles/ar60.gemfile
|
17
|
-
- gemfiles/ar52.gemfile
|
18
|
-
- gemfiles/ar51.gemfile
|
19
|
-
env:
|
20
|
-
global:
|
21
|
-
- JRUBY_OPTS="--dev --debug"
|
22
|
-
matrix:
|
23
|
-
- ADAPTER="postgresql"
|
24
|
-
- ADAPTER="sqlite3"
|
25
|
-
matrix:
|
26
|
-
allow_failures:
|
27
|
-
- rvm: jruby
|
28
|
-
env: ADAPTER="sqlite3"
|
29
|
-
- rvm: ruby-2.7
|
data/gemfiles/ar51.gemfile
DELETED
data/gemfiles/ar52.gemfile
DELETED
data/gemfiles/ar60.gemfile
DELETED
data/gemfiles/ar61.gemfile
DELETED