activerecord_null_object 0.4.0 → 0.7.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 +4 -4
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/release.yml +59 -0
- data/.github/workflows/ruby.yml +24 -0
- data/.gitignore +1 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +12 -0
- data/README.md +14 -2
- data/activerecord_null_object.gemspec +4 -6
- data/gemfiles/{rails6.gemfile → rails60.gemfile} +0 -0
- data/gemfiles/rails61.gemfile +8 -0
- data/gemfiles/rails70.gemfile +8 -0
- data/lib/activerecord_null_object/null_object_support.rb +9 -12
- data/lib/activerecord_null_object/version.rb +1 -1
- data/lib/activerecord_null_object.rb +3 -1
- data/spec/support/coverage_loader.rb +1 -2
- metadata +22 -48
- data/.travis.yml +0 -17
- data/VERSION +0 -1
- data/gemfiles/rails52.gemfile +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa23b2c732398128415abe41a0dbf35a19785eb6fffce4f74c3bb373cdb3603e
|
4
|
+
data.tar.gz: 0c9bcd94d123f8a44bbdc59b9a4e3bcd7cdaf1c33fe00fa0905016dfa3871d4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8809130e00753e47902f77138e307c8c888c0dbfeb1657e7db6476326f85ac9bad7d96f6b5127521493cd97e003d2c4fc1e3f98d0bee48ec6e04d9a8f82d3992
|
7
|
+
data.tar.gz: ba58c8209e343d814451246938fee6ba0fd28ab10eca53507e16826c09d650c6a7acd41f7019ea1429fbb60aa2271984b4e2c81db83680d18e1902d7bbe1b98d
|
@@ -0,0 +1,59 @@
|
|
1
|
+
name: Release
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- "v*"
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
build:
|
10
|
+
name: Build
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
steps:
|
13
|
+
- name: Checkout
|
14
|
+
uses: actions/checkout@v2
|
15
|
+
- uses: ruby/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
bundler-cache: true
|
18
|
+
- run: bundle exec rake
|
19
|
+
|
20
|
+
release:
|
21
|
+
needs: build
|
22
|
+
name: Release
|
23
|
+
runs-on: ubuntu-latest
|
24
|
+
steps:
|
25
|
+
- name: Checkout
|
26
|
+
uses: actions/checkout@v2
|
27
|
+
|
28
|
+
- name: Generate Changelog
|
29
|
+
run: |
|
30
|
+
# Get version from github ref (remove 'refs/tags/' and prefix 'v')
|
31
|
+
version="${GITHUB_REF#refs/tags/v}"
|
32
|
+
npx changelog-parser CHANGELOG.md | jq -cr ".versions | .[] | select(.version == \"$version\") | .body" > ${{ github.workflow }}-CHANGELOG.txt
|
33
|
+
|
34
|
+
- name: Release
|
35
|
+
uses: softprops/action-gh-release@v1
|
36
|
+
with:
|
37
|
+
body_path: ${{ github.workflow }}-CHANGELOG.txt
|
38
|
+
env:
|
39
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
40
|
+
|
41
|
+
publish:
|
42
|
+
needs: [build, release]
|
43
|
+
name: Publish
|
44
|
+
runs-on: ubuntu-latest
|
45
|
+
|
46
|
+
steps:
|
47
|
+
- uses: actions/checkout@v2
|
48
|
+
- uses: ruby/setup-ruby@v1
|
49
|
+
|
50
|
+
- name: Publish to RubyGems
|
51
|
+
run: |
|
52
|
+
mkdir -p $HOME/.gem
|
53
|
+
touch $HOME/.gem/credentials
|
54
|
+
chmod 0600 $HOME/.gem/credentials
|
55
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
56
|
+
gem build *.gemspec
|
57
|
+
gem push *.gem
|
58
|
+
env:
|
59
|
+
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
@@ -0,0 +1,24 @@
|
|
1
|
+
name: Build and Test
|
2
|
+
on: [push, pull_request]
|
3
|
+
jobs:
|
4
|
+
test:
|
5
|
+
strategy:
|
6
|
+
fail-fast: false
|
7
|
+
matrix:
|
8
|
+
gemfile: [rails60, rails61, rails70]
|
9
|
+
ruby: ["2.7", "3.0", "3.1"]
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
env:
|
12
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- uses: ruby/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: ${{ matrix.ruby }}
|
18
|
+
bundler-cache: true
|
19
|
+
- run: bundle exec rake
|
20
|
+
- name: Coveralls
|
21
|
+
uses: coverallsapp/github-action@master
|
22
|
+
with:
|
23
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
24
|
+
path-to-lcov: coverage/lcov.info
|
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3.1.0
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.7.0
|
4
|
+
|
5
|
+
- [PLAT-383] Improve boottime by lazy loading extension
|
6
|
+
|
7
|
+
## 0.6.0
|
8
|
+
|
9
|
+
- [PLAT-183] Ruby 3.0, Rails 7 and coveralls github action
|
10
|
+
|
11
|
+
## 0.5.0
|
12
|
+
|
13
|
+
- [TT-8620] Update to build with github actions / ruby 3.0 / Rails 6.1
|
14
|
+
|
3
15
|
## 0.4.0
|
4
16
|
|
5
17
|
* Use coverage kit to enforce maximum coverage
|
data/README.md
CHANGED
@@ -1,13 +1,25 @@
|
|
1
1
|
ActiveRecord Null Object
|
2
2
|
========================
|
3
3
|
|
4
|
-
[](http://badge.fury.io/rb/activerecord_null_object)
|
5
|
+
[](https://github.com/sealink/activerecord_null_object/actions)
|
5
6
|
[](https://coveralls.io/r/sealink/activerecord_null_object)
|
6
|
-
[](https://gemnasium.com/sealink/activerecord_null_object)
|
7
7
|
[](https://codeclimate.com/github/sealink/activerecord_null_object)
|
8
8
|
|
9
9
|
# DESCRIPTION
|
10
10
|
|
11
11
|
Implements the Null Object Pattern for nil values in ActiveRecord associations.
|
12
12
|
|
13
|
+
# RELEASE
|
14
|
+
|
15
|
+
To publish a new version of this gem the following steps must be taken.
|
16
|
+
|
17
|
+
* Update the version in the following files
|
18
|
+
```
|
19
|
+
CHANGELOG.md
|
20
|
+
lib/activerecord_null_object/version.rb
|
21
|
+
````
|
22
|
+
* Create a tag using the format v0.1.0
|
23
|
+
* Follow build progress in GitHub actions
|
24
|
+
|
13
25
|
Copyright (c) 2009 West Arete Computing, Inc., released under the MIT license
|
@@ -18,15 +18,13 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_runtime_dependency "activesupport", ">=
|
22
|
-
spec.add_runtime_dependency "activerecord", ">=
|
23
|
-
spec.add_development_dependency "bundler"
|
21
|
+
spec.add_runtime_dependency "activesupport", ">= 6.0", "< 8"
|
22
|
+
spec.add_runtime_dependency "activerecord", ">= 6.0", "< 8"
|
23
|
+
spec.add_development_dependency "bundler"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
spec.add_development_dependency "rspec"
|
26
26
|
spec.add_development_dependency "rspec-its"
|
27
27
|
spec.add_development_dependency "coverage-kit"
|
28
|
-
spec.add_development_dependency "simplecov-rcov"
|
29
|
-
spec.add_development_dependency "coveralls"
|
30
28
|
spec.add_development_dependency 'sqlite3'
|
31
|
-
spec.add_development_dependency '
|
29
|
+
spec.add_development_dependency 'pry-byebug'
|
32
30
|
end
|
File without changes
|
@@ -5,7 +5,7 @@ module ActiveRecordNullObject
|
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
7
|
module ClassMethods
|
8
|
-
|
8
|
+
|
9
9
|
# Add null object support to the given accessor method.
|
10
10
|
def add_null_object_support(name, options = {}) #:nodoc:
|
11
11
|
# Determine the class of the association.
|
@@ -33,14 +33,12 @@ module ActiveRecordNullObject
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
# Add a :null_object option to belongs_to.
|
38
|
-
def belongs_to(
|
39
|
-
|
40
|
-
name, scope = *args
|
41
|
-
args << options.except(:null_object)
|
38
|
+
def belongs_to(name, scope = nil, **options)
|
39
|
+
# args << options.except(:null_object)
|
42
40
|
# Call the real belongs_to so that the association gets defined.
|
43
|
-
super(
|
41
|
+
super(name, scope, **options.except(:null_object))
|
44
42
|
|
45
43
|
# Modify the association if need be.
|
46
44
|
if options[:null_object]
|
@@ -49,12 +47,11 @@ module ActiveRecordNullObject
|
|
49
47
|
end
|
50
48
|
|
51
49
|
# Add a :null_object option to has_one.
|
52
|
-
def has_one(
|
53
|
-
|
54
|
-
|
55
|
-
args << options.except(:null_object)
|
50
|
+
def has_one(name, scope = nil, **options)
|
51
|
+
# args = options.except(:null_object)
|
52
|
+
|
56
53
|
# Call the real belongs_to so that the association gets defined.
|
57
|
-
super(
|
54
|
+
super(name, scope, **options.except(:null_object))
|
58
55
|
|
59
56
|
# Modify the association if need be.
|
60
57
|
if options[:null_object]
|
@@ -4,4 +4,6 @@ require 'activerecord_null_object/version'
|
|
4
4
|
require 'activerecord_null_object/null_object'
|
5
5
|
require 'activerecord_null_object/null_object_support'
|
6
6
|
|
7
|
-
|
7
|
+
ActiveSupport.on_load(:active_record) do
|
8
|
+
ActiveRecord::Base.send :include, ActiveRecordNullObject::NullObjectSupport
|
9
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord_null_object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Woods
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-07-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -17,70 +17,42 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '6.0'
|
21
21
|
- - "<"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '
|
23
|
+
version: '8'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: '
|
30
|
+
version: '6.0'
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '8'
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: activerecord
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '6.0'
|
41
41
|
- - "<"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
43
|
+
version: '8'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
46
|
version_requirements: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: '
|
50
|
+
version: '6.0'
|
51
51
|
- - "<"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '8'
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: bundler
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '2'
|
61
|
-
type: :development
|
62
|
-
prerelease: false
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - "~>"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '2'
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: rake
|
70
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
75
|
-
type: :development
|
76
|
-
prerelease: false
|
77
|
-
version_requirements: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - ">="
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '0'
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: rspec
|
84
56
|
requirement: !ruby/object:Gem::Requirement
|
85
57
|
requirements:
|
86
58
|
- - ">="
|
@@ -94,7 +66,7 @@ dependencies:
|
|
94
66
|
- !ruby/object:Gem::Version
|
95
67
|
version: '0'
|
96
68
|
- !ruby/object:Gem::Dependency
|
97
|
-
name:
|
69
|
+
name: rake
|
98
70
|
requirement: !ruby/object:Gem::Requirement
|
99
71
|
requirements:
|
100
72
|
- - ">="
|
@@ -108,7 +80,7 @@ dependencies:
|
|
108
80
|
- !ruby/object:Gem::Version
|
109
81
|
version: '0'
|
110
82
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
83
|
+
name: rspec
|
112
84
|
requirement: !ruby/object:Gem::Requirement
|
113
85
|
requirements:
|
114
86
|
- - ">="
|
@@ -122,7 +94,7 @@ dependencies:
|
|
122
94
|
- !ruby/object:Gem::Version
|
123
95
|
version: '0'
|
124
96
|
- !ruby/object:Gem::Dependency
|
125
|
-
name:
|
97
|
+
name: rspec-its
|
126
98
|
requirement: !ruby/object:Gem::Requirement
|
127
99
|
requirements:
|
128
100
|
- - ">="
|
@@ -136,7 +108,7 @@ dependencies:
|
|
136
108
|
- !ruby/object:Gem::Version
|
137
109
|
version: '0'
|
138
110
|
- !ruby/object:Gem::Dependency
|
139
|
-
name:
|
111
|
+
name: coverage-kit
|
140
112
|
requirement: !ruby/object:Gem::Requirement
|
141
113
|
requirements:
|
142
114
|
- - ">="
|
@@ -164,7 +136,7 @@ dependencies:
|
|
164
136
|
- !ruby/object:Gem::Version
|
165
137
|
version: '0'
|
166
138
|
- !ruby/object:Gem::Dependency
|
167
|
-
name:
|
139
|
+
name: pry-byebug
|
168
140
|
requirement: !ruby/object:Gem::Requirement
|
169
141
|
requirements:
|
170
142
|
- - ">="
|
@@ -184,18 +156,20 @@ executables: []
|
|
184
156
|
extensions: []
|
185
157
|
extra_rdoc_files: []
|
186
158
|
files:
|
159
|
+
- ".github/dependabot.yml"
|
160
|
+
- ".github/workflows/release.yml"
|
161
|
+
- ".github/workflows/ruby.yml"
|
187
162
|
- ".gitignore"
|
188
163
|
- ".ruby-version"
|
189
|
-
- ".travis.yml"
|
190
164
|
- CHANGELOG.md
|
191
165
|
- Gemfile
|
192
166
|
- MIT-LICENSE
|
193
167
|
- README.md
|
194
168
|
- Rakefile
|
195
|
-
- VERSION
|
196
169
|
- activerecord_null_object.gemspec
|
197
|
-
- gemfiles/
|
198
|
-
- gemfiles/
|
170
|
+
- gemfiles/rails60.gemfile
|
171
|
+
- gemfiles/rails61.gemfile
|
172
|
+
- gemfiles/rails70.gemfile
|
199
173
|
- lib/activerecord_null_object.rb
|
200
174
|
- lib/activerecord_null_object/null_object.rb
|
201
175
|
- lib/activerecord_null_object/null_object_support.rb
|
@@ -226,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
226
200
|
- !ruby/object:Gem::Version
|
227
201
|
version: '0'
|
228
202
|
requirements: []
|
229
|
-
rubygems_version: 3.
|
203
|
+
rubygems_version: 3.3.3
|
230
204
|
signing_key:
|
231
205
|
specification_version: 4
|
232
206
|
summary: Implements the Null Object Pattern for nil values in ActiveRecord associations.
|
data/.travis.yml
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
rvm:
|
3
|
-
- 2.5
|
4
|
-
- 2.6
|
5
|
-
- 2.7
|
6
|
-
script: bundle exec rake spec
|
7
|
-
gemfile:
|
8
|
-
- gemfiles/rails52.gemfile
|
9
|
-
- gemfiles/rails6.gemfile
|
10
|
-
notifications:
|
11
|
-
email:
|
12
|
-
- support@travellink.com.au
|
13
|
-
sudo: false
|
14
|
-
cache: bundler
|
15
|
-
before_install:
|
16
|
-
- gem update --system
|
17
|
-
- gem install bundler
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.2.0
|