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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9958c234344c27c417e608e7f3506396aac1b0bc1a3ecb6e3369ebcfdb3e5fc5
4
- data.tar.gz: 295ae26bb441c3d35a4594b7449ec49e43af26c60d268f6784e09d29110085ae
3
+ metadata.gz: 3039454d32fe6116fcfa2af88826c1811f2bc3af36bc1c88c1f2514b8643a659
4
+ data.tar.gz: 1fcbb10e7c6f08836f5ff1df9835f70f318c313aa5ba91378c22f1c17f46c8e7
5
5
  SHA512:
6
- metadata.gz: '093de8273997264e1c46e431199511121320374f243691477b869a3214b4905dc84e8f65490a361619094cf6e8750ed42fccd3532c4ff00e8cf77d50dbc4ea8d'
7
- data.tar.gz: 8c63330c24586da62fd4ef6e3d546de3d14cd92f1913eac39206212c2de1086afae359e0f4ca304a3867b7a6b8ff6588487fd9e4b0f1bc903f8e4bf91906b337
6
+ metadata.gz: e11b3d916825b76638674af0357ce67c0a63874b409ca29f7961978bb9f6c1587b55d140988d75d690871bf2ae68a8a2a17e400487fd2dc3b4e300ae517d61f9
7
+ data.tar.gz: ad5774fa51ba13ad34454f572ac84a2b8d0db0c99c40ea780146c23fa57e144fc4e5041c8d7ae930cdaf1cd460f6d48fb358f6b6d6f8d10cb6943b0f05a4bae5
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "bundler"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
@@ -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
@@ -2,3 +2,4 @@ pkg
2
2
  coverage
3
3
  Gemfile.lock
4
4
  tmp
5
+ vendor
@@ -1 +1 @@
1
- 2.6.3
1
+ 3.0.0
@@ -1,5 +1,9 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.5.0
4
+
5
+ - [TT-8620] Update to build with github actions / ruby 3.0 / Rails 6.1
6
+
3
7
  ## 0.4.0
4
8
 
5
9
  * 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
- [![Build Status](https://travis-ci.org/sealink/activerecord_null_object.png?branch=master)](https://travis-ci.org/sealink/activerecord_null_object)
4
+ [![Gem Version](https://badge.fury.io/rb/activerecord_null_object.svg)](http://badge.fury.io/rb/activerecord_null_object)
5
+ [![Build Status](https://github.com/sealink/activerecord_null_object/workflows/Build%20and%20Test/badge.svg?branch=master)](https://github.com/sealink/activerecord_null_object/actions)
5
6
  [![Coverage Status](https://coveralls.io/repos/sealink/activerecord_null_object/badge.png)](https://coveralls.io/r/sealink/activerecord_null_object)
6
- [![Dependency Status](https://gemnasium.com/sealink/activerecord_null_object.png?travis)](https://gemnasium.com/sealink/activerecord_null_object)
7
7
  [![Code Climate](https://codeclimate.com/github/sealink/activerecord_null_object.png)](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", ">= 5.0", "< 7"
22
- spec.add_runtime_dependency "activerecord", ">= 5.0", "< 7"
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 'travis'
31
+ spec.add_development_dependency 'pry-byebug'
32
32
  end
@@ -0,0 +1,8 @@
1
+ source :rubygems
2
+ gemspec :path => '../'
3
+
4
+ group :development, :test do
5
+ gem 'activesupport', '~> 6.1'
6
+ gem 'activerecord', '~> 6.1'
7
+ gem 'actionpack', '~> 6.1'
8
+ end
@@ -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(*args)
39
- options = args.extract_options!
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(*args)
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(*args)
53
- options = args.extract_options!
54
- name, scope = *args
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(*args)
54
+ super(name, scope, **options.except(:null_object))
58
55
 
59
56
  # Modify the association if need be.
60
57
  if options[:null_object]
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordNullObject
2
- VERSION = '0.4.0'
2
+ VERSION = '0.5.0'
3
3
  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.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: 2019-12-31 00:00:00.000000000 Z
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: '5.0'
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: '5.0'
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: '5.0'
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: '5.0'
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: travis
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/rails52.gemfile
198
- - gemfiles/rails6.gemfile
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.0.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.
@@ -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
@@ -1,8 +0,0 @@
1
- source :rubygems
2
- gemspec :path => '../'
3
-
4
- group :development, :test do
5
- gem 'activesupport', '~> 5.2'
6
- gem 'activerecord', '~> 5.2'
7
- gem 'actionpack', '~> 5.2'
8
- end