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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9958c234344c27c417e608e7f3506396aac1b0bc1a3ecb6e3369ebcfdb3e5fc5
4
- data.tar.gz: 295ae26bb441c3d35a4594b7449ec49e43af26c60d268f6784e09d29110085ae
3
+ metadata.gz: fa23b2c732398128415abe41a0dbf35a19785eb6fffce4f74c3bb373cdb3603e
4
+ data.tar.gz: 0c9bcd94d123f8a44bbdc59b9a4e3bcd7cdaf1c33fe00fa0905016dfa3871d4d
5
5
  SHA512:
6
- metadata.gz: '093de8273997264e1c46e431199511121320374f243691477b869a3214b4905dc84e8f65490a361619094cf6e8750ed42fccd3532c4ff00e8cf77d50dbc4ea8d'
7
- data.tar.gz: 8c63330c24586da62fd4ef6e3d546de3d14cd92f1913eac39206212c2de1086afae359e0f4ca304a3867b7a6b8ff6588487fd9e4b0f1bc903f8e4bf91906b337
6
+ metadata.gz: 8809130e00753e47902f77138e307c8c888c0dbfeb1657e7db6476326f85ac9bad7d96f6b5127521493cd97e003d2c4fc1e3f98d0bee48ec6e04d9a8f82d3992
7
+ data.tar.gz: ba58c8209e343d814451246938fee6ba0fd28ab10eca53507e16826c09d650c6a7acd41f7019ea1429fbb60aa2271984b4e2c81db83680d18e1902d7bbe1b98d
@@ -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,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
@@ -2,3 +2,4 @@ pkg
2
2
  coverage
3
3
  Gemfile.lock
4
4
  tmp
5
+ vendor
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.3
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
- [![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,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", ">= 5.0", "< 7"
22
- spec.add_runtime_dependency "activerecord", ">= 5.0", "< 7"
23
- spec.add_development_dependency "bundler", "~> 2"
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 'travis'
29
+ spec.add_development_dependency 'pry-byebug'
32
30
  end
File without changes
@@ -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
@@ -0,0 +1,8 @@
1
+ source :rubygems
2
+ gemspec :path => '../'
3
+
4
+ group :development, :test do
5
+ gem 'activesupport', '~> 7.0'
6
+ gem 'activerecord', '~> 7.0'
7
+ gem 'actionpack', '~> 7.0'
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.7.0'
3
3
  end
@@ -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
- ActiveRecord::Base.send :include, ActiveRecordNullObject::NullObjectSupport
7
+ ActiveSupport.on_load(:active_record) do
8
+ ActiveRecord::Base.send :include, ActiveRecordNullObject::NullObjectSupport
9
+ end
@@ -1,4 +1,3 @@
1
- require 'simplecov-rcov'
2
- require 'coveralls'
3
1
  require 'coverage/kit'
2
+
4
3
  Coverage::Kit.setup(minimum_coverage: 100)
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.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: 2019-12-31 00:00:00.000000000 Z
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: '5.0'
20
+ version: '6.0'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '7'
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: '5.0'
30
+ version: '6.0'
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '7'
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: '5.0'
40
+ version: '6.0'
41
41
  - - "<"
42
42
  - !ruby/object:Gem::Version
43
- version: '7'
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: '5.0'
50
+ version: '6.0'
51
51
  - - "<"
52
52
  - !ruby/object:Gem::Version
53
- version: '7'
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: rspec-its
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: coverage-kit
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: simplecov-rcov
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: coveralls
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: travis
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/rails52.gemfile
198
- - gemfiles/rails6.gemfile
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.0.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
@@ -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