subroutine 4.1.1 → 4.1.3

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: f8c6ad68f331c8b2d39a2667302f3306e7885bc9081d2d39ab4330cbcf16059b
4
- data.tar.gz: 807815e357f3c06ecf7ae6949ff61521bac075fb946761196bc4b5fc6212ae27
3
+ metadata.gz: c4fef2991f9d46da2fdbe6447c7e128042e8f60d6696a562f29b38e7cab2755d
4
+ data.tar.gz: 4bd93645f7a6efbbaccfe2fd3c2049b0f6b4310cd959a9f75fc6c4d7a23d8e25
5
5
  SHA512:
6
- metadata.gz: 9980122e43941764e71e86d06f7bc2dd813b40ccc8577ab6383bf226c6da15be871f463d4662c984da22e03e3102ce23173d48b0c567272691dfc4dc6e44f278
7
- data.tar.gz: 0dc35d0a0366e57bb44e6b6a1c972692e98ed983998e7df6b373aef7efbff6c060fea25b2d2f2e3a1cd90b35a0395f59e8a801b8065e9f3a52be14bcefd36c50
6
+ metadata.gz: cc3b421c2c645c7ca205efa89104d16805320c3a9407ad3aa34330545d62e6037f713998bb483da8bf59934b3e2b090e5add1254fe19f04f888457d4ac12aa38
7
+ data.tar.gz: ee0734400bd7df20adadbbed1e565419995dca36f66e4f7d65664dac5c9ffb0a03041dc658842e307d3520825464cae6019b0e29fa843d01641e99eb35fc3bb2
data/.bundler-version ADDED
@@ -0,0 +1 @@
1
+ 2.5.22
@@ -8,7 +8,7 @@ updates:
8
8
  time: "09:00"
9
9
  timezone: "America/New_York"
10
10
  commit-message:
11
- prefix: "[github-actions] "
11
+ prefix: "[github-actions] "
12
12
  - package-ecosystem: "bundler"
13
13
  directory: "/"
14
14
  schedule:
@@ -19,6 +19,6 @@ updates:
19
19
  open-pull-requests-limit: 20
20
20
  insecure-external-code-execution: deny
21
21
  allow:
22
- - dependency-type: "all"
22
+ - dependency-type: "all"
23
23
  commit-message:
24
- prefix: "[bundler] "
24
+ prefix: "[bundler] "
@@ -2,31 +2,26 @@ name: build
2
2
  on:
3
3
  pull_request:
4
4
  push:
5
- branches:
6
- - main
5
+ branches:
6
+ - main
7
7
  jobs:
8
8
  build:
9
9
  runs-on: ubuntu-latest
10
- continue-on-error: ${{ matrix.experimental }}
11
10
  strategy:
12
11
  fail-fast: false
13
12
  matrix:
14
- ruby-version: [2.7.8]
15
- experimental: [false]
16
- include:
17
- - ruby-version: 3.0
18
- experimental: true
19
- - ruby-version: 3.1
20
- experimental: true
21
- - ruby-version: 3.2
22
- experimental: true
13
+ ruby-version: [3.0, 3.1, 3.2]
23
14
  steps:
24
15
  - uses: actions/checkout@v4
25
16
  with:
26
- show-progress: 'false'
17
+ show-progress: "false"
18
+ - name: get bundler version
19
+ run: echo "BUNDLER=$(cat .bundler-version)" >> $GITHUB_ENV
27
20
  - uses: ruby/setup-ruby@v1
28
21
  with:
29
22
  ruby-version: ${{ matrix.ruby-version }}
30
- bundler-cache: true # runs `bundle install` and caches installed gems automatically
23
+ bundler: ${{ env.BUNDLER }}
24
+ bundler-cache: true
25
+ - run: bundle install
31
26
  - run: bundle exec appraisal install
32
27
  - run: bundle exec appraisal rake test
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.8
1
+ 3.2.6
data/Appraisals CHANGED
@@ -7,3 +7,13 @@ appraise "rails-7.0" do
7
7
  gem 'activemodel', '~> 7.0.0'
8
8
  gem 'actionpack', '~> 7.0.0'
9
9
  end
10
+
11
+ appraise "rails-7.1" do
12
+ gem 'activemodel', '~> 7.1.0'
13
+ gem 'actionpack', '~> 7.1.0'
14
+ end
15
+
16
+ appraise "rails-7.2" do
17
+ gem 'activemodel', '~> 7.2.0'
18
+ gem 'actionpack', '~> 7.2.0'
19
+ end
data/CHANGELOG.MD CHANGED
@@ -1,3 +1,9 @@
1
+ ## Subroutine 4.1.1
2
+
3
+ Fields using the time/timestamp/datetime caster will now return exactly the passed in value
4
+ if it acts like a time object (`acts_like?(:time)`/`acts_like_time?`), instead of serializing
5
+ to string and re-parsing to a Time object. This fixes issues with losing usec precision.
6
+
1
7
  ## Subroutine 4.1.0
2
8
 
3
9
  A field can no opt out of the natural assignment behavior of ActiveSupport::HashWithIndifferentAccess. Top level param groups are still accessible via indifferent access but if a field sets the `bypass_indifferent_assignment` option to `true` the HashWithIndifferentAccess assignment behavior will be bypassed in favor of direct Hash-like assignment.
data/Gemfile CHANGED
@@ -5,7 +5,4 @@ source "https://rubygems.org"
5
5
  # Specify your gem's dependencies in subroutine.gemspec
6
6
  gemspec
7
7
 
8
- # Locking to specific git sha to work around
9
- # https://github.com/thoughtbot/appraisal/issues/211
10
- # until appraisal v3 is released
11
- gem "appraisal", github: "thoughtbot/appraisal", ref: "b200e636903"
8
+ gem "appraisal"
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "appraisal", github: "thoughtbot/appraisal", ref: "b200e636903"
5
+ gem "appraisal"
6
6
  gem "activemodel", "~> 6.1.0"
7
7
  gem "actionpack", "~> 6.1.0"
8
8
 
@@ -1,95 +1,91 @@
1
- GIT
2
- remote: https://github.com/thoughtbot/appraisal.git
3
- revision: b200e636903700098bef25f4f51dbc4c46e4c04c
4
- ref: b200e636903
5
- specs:
6
- appraisal (2.4.1)
7
- bundler
8
- rake
9
- thor (>= 0.14.0)
10
-
11
1
  PATH
12
2
  remote: ..
13
3
  specs:
14
- subroutine (3.0.0)
4
+ subroutine (4.1.0)
15
5
  activemodel (>= 6.1)
16
6
  activesupport (>= 6.1)
17
7
 
18
8
  GEM
19
9
  remote: https://rubygems.org/
20
10
  specs:
21
- actionpack (6.1.7.4)
22
- actionview (= 6.1.7.4)
23
- activesupport (= 6.1.7.4)
11
+ actionpack (6.1.7.8)
12
+ actionview (= 6.1.7.8)
13
+ activesupport (= 6.1.7.8)
24
14
  rack (~> 2.0, >= 2.0.9)
25
15
  rack-test (>= 0.6.3)
26
16
  rails-dom-testing (~> 2.0)
27
17
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
28
- actionview (6.1.7.4)
29
- activesupport (= 6.1.7.4)
18
+ actionview (6.1.7.8)
19
+ activesupport (= 6.1.7.8)
30
20
  builder (~> 3.1)
31
21
  erubi (~> 1.4)
32
22
  rails-dom-testing (~> 2.0)
33
23
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
34
- activemodel (6.1.7.4)
35
- activesupport (= 6.1.7.4)
36
- activesupport (6.1.7.4)
24
+ activemodel (6.1.7.8)
25
+ activesupport (= 6.1.7.8)
26
+ activesupport (6.1.7.8)
37
27
  concurrent-ruby (~> 1.0, >= 1.0.2)
38
28
  i18n (>= 1.6, < 2)
39
29
  minitest (>= 5.1)
40
30
  tzinfo (~> 2.0)
41
31
  zeitwerk (~> 2.3)
42
32
  ansi (1.5.0)
43
- builder (3.2.4)
33
+ appraisal (2.5.0)
34
+ bundler
35
+ rake
36
+ thor (>= 0.14.0)
37
+ builder (3.3.0)
44
38
  byebug (11.1.3)
45
- concurrent-ruby (1.2.2)
39
+ concurrent-ruby (1.3.4)
46
40
  crass (1.0.6)
47
- erubi (1.12.0)
48
- i18n (1.14.1)
41
+ erubi (1.13.0)
42
+ i18n (1.14.6)
49
43
  concurrent-ruby (~> 1.0)
50
- loofah (2.21.3)
44
+ loofah (2.22.0)
51
45
  crass (~> 1.0.2)
52
46
  nokogiri (>= 1.12.0)
53
- m (1.6.1)
47
+ m (1.6.2)
54
48
  method_source (>= 0.6.7)
55
49
  rake (>= 0.9.2.2)
56
- method_source (1.0.0)
57
- minitest (5.18.1)
58
- minitest-reporters (1.6.0)
50
+ method_source (1.1.0)
51
+ mini_portile2 (2.8.7)
52
+ minitest (5.25.1)
53
+ minitest-reporters (1.7.1)
59
54
  ansi
60
55
  builder
61
56
  minitest (>= 5.0)
62
57
  ruby-progressbar
63
- mocha (2.0.4)
58
+ mocha (2.4.5)
64
59
  ruby2_keywords (>= 0.0.5)
65
- nokogiri (1.15.2-arm64-darwin)
60
+ nokogiri (1.16.7)
61
+ mini_portile2 (~> 2.8.2)
66
62
  racc (~> 1.4)
67
- racc (1.7.1)
68
- rack (2.2.7)
63
+ racc (1.8.1)
64
+ rack (2.2.9)
69
65
  rack-test (2.1.0)
70
66
  rack (>= 1.3)
71
- rails-dom-testing (2.0.3)
72
- activesupport (>= 4.2.0)
67
+ rails-dom-testing (2.2.0)
68
+ activesupport (>= 5.0.0)
69
+ minitest
73
70
  nokogiri (>= 1.6)
74
71
  rails-html-sanitizer (1.6.0)
75
72
  loofah (~> 2.21)
76
73
  nokogiri (~> 1.14)
77
- rake (13.0.6)
74
+ rake (13.2.1)
78
75
  ruby-progressbar (1.13.0)
79
76
  ruby2_keywords (0.0.5)
80
- thor (1.2.2)
77
+ thor (1.3.2)
81
78
  tzinfo (2.0.6)
82
79
  concurrent-ruby (~> 1.0)
83
- zeitwerk (2.6.8)
80
+ zeitwerk (2.6.18)
84
81
 
85
82
  PLATFORMS
86
- arm64-darwin-22
83
+ ruby
87
84
 
88
85
  DEPENDENCIES
89
86
  actionpack (~> 6.1.0)
90
87
  activemodel (~> 6.1.0)
91
- appraisal!
92
- bundler
88
+ appraisal
93
89
  byebug
94
90
  m
95
91
  minitest
@@ -99,4 +95,4 @@ DEPENDENCIES
99
95
  subroutine!
100
96
 
101
97
  BUNDLED WITH
102
- 2.4.7
98
+ 2.5.22
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "appraisal", github: "thoughtbot/appraisal", ref: "b200e636903"
5
+ gem "appraisal"
6
6
  gem "activemodel", "~> 7.0.0"
7
7
  gem "actionpack", "~> 7.0.0"
8
8
 
@@ -1,93 +1,89 @@
1
- GIT
2
- remote: https://github.com/thoughtbot/appraisal.git
3
- revision: b200e636903700098bef25f4f51dbc4c46e4c04c
4
- ref: b200e636903
5
- specs:
6
- appraisal (2.4.1)
7
- bundler
8
- rake
9
- thor (>= 0.14.0)
10
-
11
1
  PATH
12
2
  remote: ..
13
3
  specs:
14
- subroutine (3.0.0)
4
+ subroutine (4.1.0)
15
5
  activemodel (>= 6.1)
16
6
  activesupport (>= 6.1)
17
7
 
18
8
  GEM
19
9
  remote: https://rubygems.org/
20
10
  specs:
21
- actionpack (7.0.5.1)
22
- actionview (= 7.0.5.1)
23
- activesupport (= 7.0.5.1)
11
+ actionpack (7.0.8.4)
12
+ actionview (= 7.0.8.4)
13
+ activesupport (= 7.0.8.4)
24
14
  rack (~> 2.0, >= 2.2.4)
25
15
  rack-test (>= 0.6.3)
26
16
  rails-dom-testing (~> 2.0)
27
17
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
28
- actionview (7.0.5.1)
29
- activesupport (= 7.0.5.1)
18
+ actionview (7.0.8.4)
19
+ activesupport (= 7.0.8.4)
30
20
  builder (~> 3.1)
31
21
  erubi (~> 1.4)
32
22
  rails-dom-testing (~> 2.0)
33
23
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
34
- activemodel (7.0.5.1)
35
- activesupport (= 7.0.5.1)
36
- activesupport (7.0.5.1)
24
+ activemodel (7.0.8.4)
25
+ activesupport (= 7.0.8.4)
26
+ activesupport (7.0.8.4)
37
27
  concurrent-ruby (~> 1.0, >= 1.0.2)
38
28
  i18n (>= 1.6, < 2)
39
29
  minitest (>= 5.1)
40
30
  tzinfo (~> 2.0)
41
31
  ansi (1.5.0)
42
- builder (3.2.4)
32
+ appraisal (2.5.0)
33
+ bundler
34
+ rake
35
+ thor (>= 0.14.0)
36
+ builder (3.3.0)
43
37
  byebug (11.1.3)
44
- concurrent-ruby (1.2.2)
38
+ concurrent-ruby (1.3.4)
45
39
  crass (1.0.6)
46
- erubi (1.12.0)
47
- i18n (1.14.1)
40
+ erubi (1.13.0)
41
+ i18n (1.14.6)
48
42
  concurrent-ruby (~> 1.0)
49
- loofah (2.21.3)
43
+ loofah (2.22.0)
50
44
  crass (~> 1.0.2)
51
45
  nokogiri (>= 1.12.0)
52
- m (1.6.1)
46
+ m (1.6.2)
53
47
  method_source (>= 0.6.7)
54
48
  rake (>= 0.9.2.2)
55
- method_source (1.0.0)
56
- minitest (5.18.1)
57
- minitest-reporters (1.6.0)
49
+ method_source (1.1.0)
50
+ mini_portile2 (2.8.7)
51
+ minitest (5.25.1)
52
+ minitest-reporters (1.7.1)
58
53
  ansi
59
54
  builder
60
55
  minitest (>= 5.0)
61
56
  ruby-progressbar
62
- mocha (2.0.4)
57
+ mocha (2.4.5)
63
58
  ruby2_keywords (>= 0.0.5)
64
- nokogiri (1.15.2-arm64-darwin)
59
+ nokogiri (1.16.7)
60
+ mini_portile2 (~> 2.8.2)
65
61
  racc (~> 1.4)
66
- racc (1.7.1)
67
- rack (2.2.7)
62
+ racc (1.8.1)
63
+ rack (2.2.9)
68
64
  rack-test (2.1.0)
69
65
  rack (>= 1.3)
70
- rails-dom-testing (2.0.3)
71
- activesupport (>= 4.2.0)
66
+ rails-dom-testing (2.2.0)
67
+ activesupport (>= 5.0.0)
68
+ minitest
72
69
  nokogiri (>= 1.6)
73
70
  rails-html-sanitizer (1.6.0)
74
71
  loofah (~> 2.21)
75
72
  nokogiri (~> 1.14)
76
- rake (13.0.6)
73
+ rake (13.2.1)
77
74
  ruby-progressbar (1.13.0)
78
75
  ruby2_keywords (0.0.5)
79
- thor (1.2.2)
76
+ thor (1.3.2)
80
77
  tzinfo (2.0.6)
81
78
  concurrent-ruby (~> 1.0)
82
79
 
83
80
  PLATFORMS
84
- arm64-darwin-22
81
+ ruby
85
82
 
86
83
  DEPENDENCIES
87
84
  actionpack (~> 7.0.0)
88
85
  activemodel (~> 7.0.0)
89
- appraisal!
90
- bundler
86
+ appraisal
91
87
  byebug
92
88
  m
93
89
  minitest
@@ -97,4 +93,4 @@ DEPENDENCIES
97
93
  subroutine!
98
94
 
99
95
  BUNDLED WITH
100
- 2.4.7
96
+ 2.5.22
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal"
6
+ gem "activemodel", "~> 7.1.0"
7
+ gem "actionpack", "~> 7.1.0"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,109 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ subroutine (4.1.0)
5
+ activemodel (>= 6.1)
6
+ activesupport (>= 6.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actionpack (7.1.4)
12
+ actionview (= 7.1.4)
13
+ activesupport (= 7.1.4)
14
+ nokogiri (>= 1.8.5)
15
+ racc
16
+ rack (>= 2.2.4)
17
+ rack-session (>= 1.0.1)
18
+ rack-test (>= 0.6.3)
19
+ rails-dom-testing (~> 2.2)
20
+ rails-html-sanitizer (~> 1.6)
21
+ actionview (7.1.4)
22
+ activesupport (= 7.1.4)
23
+ builder (~> 3.1)
24
+ erubi (~> 1.11)
25
+ rails-dom-testing (~> 2.2)
26
+ rails-html-sanitizer (~> 1.6)
27
+ activemodel (7.1.4)
28
+ activesupport (= 7.1.4)
29
+ activesupport (7.1.4)
30
+ base64
31
+ bigdecimal
32
+ concurrent-ruby (~> 1.0, >= 1.0.2)
33
+ connection_pool (>= 2.2.5)
34
+ drb
35
+ i18n (>= 1.6, < 2)
36
+ minitest (>= 5.1)
37
+ mutex_m
38
+ tzinfo (~> 2.0)
39
+ ansi (1.5.0)
40
+ appraisal (2.5.0)
41
+ bundler
42
+ rake
43
+ thor (>= 0.14.0)
44
+ base64 (0.2.0)
45
+ bigdecimal (3.1.8)
46
+ builder (3.3.0)
47
+ byebug (11.1.3)
48
+ concurrent-ruby (1.3.4)
49
+ connection_pool (2.4.1)
50
+ crass (1.0.6)
51
+ drb (2.2.1)
52
+ erubi (1.13.0)
53
+ i18n (1.14.6)
54
+ concurrent-ruby (~> 1.0)
55
+ loofah (2.22.0)
56
+ crass (~> 1.0.2)
57
+ nokogiri (>= 1.12.0)
58
+ m (1.6.2)
59
+ method_source (>= 0.6.7)
60
+ rake (>= 0.9.2.2)
61
+ method_source (1.1.0)
62
+ minitest (5.25.1)
63
+ minitest-reporters (1.7.1)
64
+ ansi
65
+ builder
66
+ minitest (>= 5.0)
67
+ ruby-progressbar
68
+ mocha (2.4.5)
69
+ ruby2_keywords (>= 0.0.5)
70
+ mutex_m (0.2.0)
71
+ nokogiri (1.16.7-arm64-darwin)
72
+ racc (~> 1.4)
73
+ racc (1.8.1)
74
+ rack (3.1.7)
75
+ rack-session (2.0.0)
76
+ rack (>= 3.0.0)
77
+ rack-test (2.1.0)
78
+ rack (>= 1.3)
79
+ rails-dom-testing (2.2.0)
80
+ activesupport (>= 5.0.0)
81
+ minitest
82
+ nokogiri (>= 1.6)
83
+ rails-html-sanitizer (1.6.0)
84
+ loofah (~> 2.21)
85
+ nokogiri (~> 1.14)
86
+ rake (13.2.1)
87
+ ruby-progressbar (1.13.0)
88
+ ruby2_keywords (0.0.5)
89
+ thor (1.3.2)
90
+ tzinfo (2.0.6)
91
+ concurrent-ruby (~> 1.0)
92
+
93
+ PLATFORMS
94
+ arm64-darwin
95
+
96
+ DEPENDENCIES
97
+ actionpack (~> 7.1.0)
98
+ activemodel (~> 7.1.0)
99
+ appraisal
100
+ byebug
101
+ m
102
+ minitest
103
+ minitest-reporters
104
+ mocha
105
+ rake
106
+ subroutine!
107
+
108
+ BUNDLED WITH
109
+ 2.5.22
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal"
6
+ gem "activemodel", "~> 7.2.0"
7
+ gem "actionpack", "~> 7.2.0"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,113 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ subroutine (4.1.0)
5
+ activemodel (>= 6.1)
6
+ activesupport (>= 6.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actionpack (7.2.1)
12
+ actionview (= 7.2.1)
13
+ activesupport (= 7.2.1)
14
+ nokogiri (>= 1.8.5)
15
+ racc
16
+ rack (>= 2.2.4, < 3.2)
17
+ rack-session (>= 1.0.1)
18
+ rack-test (>= 0.6.3)
19
+ rails-dom-testing (~> 2.2)
20
+ rails-html-sanitizer (~> 1.6)
21
+ useragent (~> 0.16)
22
+ actionview (7.2.1)
23
+ activesupport (= 7.2.1)
24
+ builder (~> 3.1)
25
+ erubi (~> 1.11)
26
+ rails-dom-testing (~> 2.2)
27
+ rails-html-sanitizer (~> 1.6)
28
+ activemodel (7.2.1)
29
+ activesupport (= 7.2.1)
30
+ activesupport (7.2.1)
31
+ base64
32
+ bigdecimal
33
+ concurrent-ruby (~> 1.0, >= 1.3.1)
34
+ connection_pool (>= 2.2.5)
35
+ drb
36
+ i18n (>= 1.6, < 2)
37
+ logger (>= 1.4.2)
38
+ minitest (>= 5.1)
39
+ securerandom (>= 0.3)
40
+ tzinfo (~> 2.0, >= 2.0.5)
41
+ ansi (1.5.0)
42
+ appraisal (2.5.0)
43
+ bundler
44
+ rake
45
+ thor (>= 0.14.0)
46
+ base64 (0.2.0)
47
+ bigdecimal (3.1.8)
48
+ builder (3.3.0)
49
+ byebug (11.1.3)
50
+ concurrent-ruby (1.3.4)
51
+ connection_pool (2.4.1)
52
+ crass (1.0.6)
53
+ drb (2.2.1)
54
+ erubi (1.13.0)
55
+ i18n (1.14.6)
56
+ concurrent-ruby (~> 1.0)
57
+ logger (1.6.1)
58
+ loofah (2.22.0)
59
+ crass (~> 1.0.2)
60
+ nokogiri (>= 1.12.0)
61
+ m (1.6.2)
62
+ method_source (>= 0.6.7)
63
+ rake (>= 0.9.2.2)
64
+ method_source (1.1.0)
65
+ minitest (5.25.1)
66
+ minitest-reporters (1.7.1)
67
+ ansi
68
+ builder
69
+ minitest (>= 5.0)
70
+ ruby-progressbar
71
+ mocha (2.4.5)
72
+ ruby2_keywords (>= 0.0.5)
73
+ nokogiri (1.16.7-arm64-darwin)
74
+ racc (~> 1.4)
75
+ racc (1.8.1)
76
+ rack (3.1.7)
77
+ rack-session (2.0.0)
78
+ rack (>= 3.0.0)
79
+ rack-test (2.1.0)
80
+ rack (>= 1.3)
81
+ rails-dom-testing (2.2.0)
82
+ activesupport (>= 5.0.0)
83
+ minitest
84
+ nokogiri (>= 1.6)
85
+ rails-html-sanitizer (1.6.0)
86
+ loofah (~> 2.21)
87
+ nokogiri (~> 1.14)
88
+ rake (13.2.1)
89
+ ruby-progressbar (1.13.0)
90
+ ruby2_keywords (0.0.5)
91
+ securerandom (0.3.1)
92
+ thor (1.3.2)
93
+ tzinfo (2.0.6)
94
+ concurrent-ruby (~> 1.0)
95
+ useragent (0.16.10)
96
+
97
+ PLATFORMS
98
+ arm64-darwin
99
+
100
+ DEPENDENCIES
101
+ actionpack (~> 7.2.0)
102
+ activemodel (~> 7.2.0)
103
+ appraisal
104
+ byebug
105
+ m
106
+ minitest
107
+ minitest-reporters
108
+ mocha
109
+ rake
110
+ subroutine!
111
+
112
+ BUNDLED WITH
113
+ 2.5.22
@@ -4,9 +4,11 @@ require 'date'
4
4
  require 'time'
5
5
  require 'bigdecimal'
6
6
  require 'securerandom'
7
+ require 'active_support/core_ext/object/acts_like'
7
8
  require 'active_support/core_ext/object/blank'
8
9
  require 'active_support/core_ext/object/try'
9
10
  require 'active_support/core_ext/array/wrap'
11
+ require 'active_support/core_ext/time/acts_like'
10
12
 
11
13
  module Subroutine
12
14
  module TypeCaster
@@ -118,7 +120,11 @@ end
118
120
  ::Subroutine::TypeCaster.register :time, :timestamp, :datetime do |value, _options = {}|
119
121
  next nil unless value.present?
120
122
 
121
- ::Time.parse(String(value))
123
+ if value.try(:acts_like?, :time)
124
+ value
125
+ else
126
+ ::Time.parse(String(value))
127
+ end
122
128
  end
123
129
 
124
130
  ::Subroutine::TypeCaster.register :hash, :object, :hashmap, :dict do |value, _options = {}|
@@ -4,7 +4,7 @@ module Subroutine
4
4
 
5
5
  MAJOR = 4
6
6
  MINOR = 1
7
- PATCH = 1
7
+ PATCH = 3
8
8
  PRE = nil
9
9
 
10
10
  VERSION = [MAJOR, MINOR, PATCH, PRE].compact.join(".")
data/lib/subroutine.rb CHANGED
@@ -26,8 +26,7 @@ module Subroutine
26
26
  end
27
27
 
28
28
  def self.inheritable_field_options=(opts)
29
- inheritable_field_options
30
- @inheritable_field_options |= opts.map(&:to_sym)
29
+ @inheritable_field_options = opts.map(&:to_sym)
31
30
  end
32
31
 
33
32
  def self.inheritable_field_options
data/subroutine.gemspec CHANGED
@@ -23,7 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "activesupport", ">= 6.1"
24
24
 
25
25
  spec.add_development_dependency "actionpack", ">= 6.1"
26
- spec.add_development_dependency "bundler"
27
26
  spec.add_development_dependency "byebug"
28
27
  spec.add_development_dependency "m"
29
28
  spec.add_development_dependency "minitest"
@@ -345,5 +345,20 @@ module Subroutine
345
345
  assert_nil op.user
346
346
  end
347
347
 
348
+ def test_inheritable_options_are_inherited_by_child_fields
349
+ Subroutine.stubs(:inheritable_field_options).returns(%i[foo bar])
350
+ klass = Class.new(OpWithAssociation) do
351
+ association :buster, foo: true, bar: false, baz: true
352
+ association :mister, polymorphic: true, foo: true, bar: false, baz: true
353
+ end
354
+
355
+ %i[buster_id mister_id mister_type].each do |field_name|
356
+ field = klass.field_configurations.fetch(field_name)
357
+ assert_equal true, field[:foo]
358
+ assert_equal false, field[:bar]
359
+ assert_equal false, field.config.key?(:baz)
360
+ end
361
+ end
362
+
348
363
  end
349
364
  end
@@ -284,7 +284,7 @@ module Subroutine
284
284
  assert_equal 0, op.time_input.min
285
285
  assert_equal 0, op.time_input.sec
286
286
 
287
- op.time_input = '2023-05-05T10:00:30Z'
287
+ op.time_input = '2023-05-05T10:00:30.123456Z'
288
288
  assert_equal ::Time, op.time_input.class
289
289
  refute_equal ::DateTime, op.time_input.class
290
290
 
@@ -294,6 +294,12 @@ module Subroutine
294
294
  assert_equal 10, op.time_input.hour
295
295
  assert_equal 0, op.time_input.min
296
296
  assert_equal 30, op.time_input.sec
297
+ assert_equal 123456, op.time_input.usec
298
+
299
+ time = Time.at(1678741605.123456)
300
+ op.time_input = time
301
+ assert_equal time, op.time_input
302
+ assert_equal time.object_id, op.time_input.object_id
297
303
  end
298
304
 
299
305
  def test_iso_date_inputs
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: subroutine
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 4.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Nelson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-30 00:00:00.000000000 Z
11
+ date: 2024-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '6.1'
55
- - !ruby/object:Gem::Dependency
56
- name: bundler
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: byebug
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -157,6 +143,7 @@ executables: []
157
143
  extensions: []
158
144
  extra_rdoc_files: []
159
145
  files:
146
+ - ".bundler-version"
160
147
  - ".github/CODEOWNERS"
161
148
  - ".github/dependabot.yml"
162
149
  - ".github/workflows/build.yml"
@@ -173,6 +160,10 @@ files:
173
160
  - gemfiles/rails_6.1.gemfile.lock
174
161
  - gemfiles/rails_7.0.gemfile
175
162
  - gemfiles/rails_7.0.gemfile.lock
163
+ - gemfiles/rails_7.1.gemfile
164
+ - gemfiles/rails_7.1.gemfile.lock
165
+ - gemfiles/rails_7.2.gemfile
166
+ - gemfiles/rails_7.2.gemfile.lock
176
167
  - lib/subroutine.rb
177
168
  - lib/subroutine/association_fields.rb
178
169
  - lib/subroutine/association_fields/association_type_mismatch_error.rb
@@ -230,6 +221,10 @@ test_files:
230
221
  - gemfiles/rails_6.1.gemfile.lock
231
222
  - gemfiles/rails_7.0.gemfile
232
223
  - gemfiles/rails_7.0.gemfile.lock
224
+ - gemfiles/rails_7.1.gemfile
225
+ - gemfiles/rails_7.1.gemfile.lock
226
+ - gemfiles/rails_7.2.gemfile
227
+ - gemfiles/rails_7.2.gemfile.lock
233
228
  - test/subroutine/association_test.rb
234
229
  - test/subroutine/auth_test.rb
235
230
  - test/subroutine/base_test.rb