activerecord_null_object 0.4.0 → 0.5.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 +19 -0
- data/.gitignore +1 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +4 -0
- data/README.md +14 -2
- data/activerecord_null_object.gemspec +3 -3
- data/gemfiles/{rails6.gemfile → rails60.gemfile} +0 -0
- data/gemfiles/rails61.gemfile +8 -0
- data/lib/activerecord_null_object/null_object_support.rb +9 -12
- data/lib/activerecord_null_object/version.rb +1 -1
- metadata +13 -11
- data/.travis.yml +0 -17
- 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: 3039454d32fe6116fcfa2af88826c1811f2bc3af36bc1c88c1f2514b8643a659
|
|
4
|
+
data.tar.gz: 1fcbb10e7c6f08836f5ff1df9835f70f318c313aa5ba91378c22f1c17f46c8e7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e11b3d916825b76638674af0357ce67c0a63874b409ca29f7961978bb9f6c1587b55d140988d75d690871bf2ae68a8a2a17e400487fd2dc3b4e300ae517d61f9
|
|
7
|
+
data.tar.gz: ad5774fa51ba13ad34454f572ac84a2b8d0db0c99c40ea780146c23fa57e144fc4e5041c8d7ae930cdaf1cd460f6d48fb358f6b6d6f8d10cb6943b0f05a4bae5
|
|
@@ -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,19 @@
|
|
|
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]
|
|
9
|
+
ruby: ["2.6", "2.7", "3.0"]
|
|
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
|
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.0.0
|
data/CHANGELOG.md
CHANGED
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,8 +18,8 @@ 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", ">=
|
|
21
|
+
spec.add_runtime_dependency "activesupport", ">= 6.0", "< 7"
|
|
22
|
+
spec.add_runtime_dependency "activerecord", ">= 6.0", "< 7"
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 2"
|
|
24
24
|
spec.add_development_dependency "rake"
|
|
25
25
|
spec.add_development_dependency "rspec"
|
|
@@ -28,5 +28,5 @@ Gem::Specification.new do |spec|
|
|
|
28
28
|
spec.add_development_dependency "simplecov-rcov"
|
|
29
29
|
spec.add_development_dependency "coveralls"
|
|
30
30
|
spec.add_development_dependency 'sqlite3'
|
|
31
|
-
spec.add_development_dependency '
|
|
31
|
+
spec.add_development_dependency 'pry-byebug'
|
|
32
32
|
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]
|
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.5.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: 2021-01-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|
|
@@ -17,7 +17,7 @@ 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
23
|
version: '7'
|
|
@@ -27,7 +27,7 @@ dependencies:
|
|
|
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
33
|
version: '7'
|
|
@@ -37,7 +37,7 @@ dependencies:
|
|
|
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
43
|
version: '7'
|
|
@@ -47,7 +47,7 @@ dependencies:
|
|
|
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
53
|
version: '7'
|
|
@@ -164,7 +164,7 @@ dependencies:
|
|
|
164
164
|
- !ruby/object:Gem::Version
|
|
165
165
|
version: '0'
|
|
166
166
|
- !ruby/object:Gem::Dependency
|
|
167
|
-
name:
|
|
167
|
+
name: pry-byebug
|
|
168
168
|
requirement: !ruby/object:Gem::Requirement
|
|
169
169
|
requirements:
|
|
170
170
|
- - ">="
|
|
@@ -184,9 +184,11 @@ executables: []
|
|
|
184
184
|
extensions: []
|
|
185
185
|
extra_rdoc_files: []
|
|
186
186
|
files:
|
|
187
|
+
- ".github/dependabot.yml"
|
|
188
|
+
- ".github/workflows/release.yml"
|
|
189
|
+
- ".github/workflows/ruby.yml"
|
|
187
190
|
- ".gitignore"
|
|
188
191
|
- ".ruby-version"
|
|
189
|
-
- ".travis.yml"
|
|
190
192
|
- CHANGELOG.md
|
|
191
193
|
- Gemfile
|
|
192
194
|
- MIT-LICENSE
|
|
@@ -194,8 +196,8 @@ files:
|
|
|
194
196
|
- Rakefile
|
|
195
197
|
- VERSION
|
|
196
198
|
- activerecord_null_object.gemspec
|
|
197
|
-
- gemfiles/
|
|
198
|
-
- gemfiles/
|
|
199
|
+
- gemfiles/rails60.gemfile
|
|
200
|
+
- gemfiles/rails61.gemfile
|
|
199
201
|
- lib/activerecord_null_object.rb
|
|
200
202
|
- lib/activerecord_null_object/null_object.rb
|
|
201
203
|
- lib/activerecord_null_object/null_object_support.rb
|
|
@@ -226,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
226
228
|
- !ruby/object:Gem::Version
|
|
227
229
|
version: '0'
|
|
228
230
|
requirements: []
|
|
229
|
-
rubygems_version: 3.
|
|
231
|
+
rubygems_version: 3.2.3
|
|
230
232
|
signing_key:
|
|
231
233
|
specification_version: 4
|
|
232
234
|
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
|