activerecord-virtual_attributes 1.0.0 → 1.1.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: 6eb66edc1ea95e2bad4b8ca67ba68e802d257a6638187c5a4ab9bbcf57edd874
4
- data.tar.gz: 14ac958d16ffc4ffb75550b4df809bdd498f1da534d9a038fc4b652ddb10b34b
3
+ metadata.gz: 6f8bd112296732146d0d98ed5f2f490b6d72361bc965d16d092f0712d6061767
4
+ data.tar.gz: 5dbbc67687d1143f69f18292f2cbdefe5166b69c8e034d5050cd2d203730ac5d
5
5
  SHA512:
6
- metadata.gz: b5c5dbb47c9be302fdb1baf536e38a19aec2db9fe9db997152855b3bafe2dd61cc508f9c1f33f920649ae21713d295000360394fa7b9e4c4861b7b7cc8073ec9
7
- data.tar.gz: 036c41c76720cdddb1ea74722b58f6998fbd1956b092eb77ac5dff8f5f913ca7df43f740bcbe60f4226de17e28c9cccfc9f2b9fe9af3c69051195b2749470b47
6
+ metadata.gz: fd7ab60cefbb59e9c77f197f755822e530d95e52fc67fb0f9eea261473abfae8a34713957e756fa328c2128982a3af344eae629d5d3b9b8bdaec14f671985a07
7
+ data.tar.gz: a08eecd9ed665f9276fe098a95108df2d7e566751b6a8e0ed5ca39d34738a3dd5638df1e33517f41b6016ae446c4cb470dac1ed49c2a48613c7f515c8c72ec7b
data/.codeclimate.yml ADDED
@@ -0,0 +1,30 @@
1
+ ---
2
+ version: '2'
3
+ prepare:
4
+ fetch:
5
+ - url: https://raw.githubusercontent.com/ManageIQ/guides/master/.rubocop_base.yml
6
+ path: ".rubocop_base.yml"
7
+ - url: https://raw.githubusercontent.com/ManageIQ/guides/master/.rubocop_cc_base.yml
8
+ path: ".rubocop_cc_base.yml"
9
+ checks:
10
+ argument-count:
11
+ enabled: false
12
+ complex-logic:
13
+ enabled: false
14
+ file-lines:
15
+ enabled: false
16
+ method-complexity:
17
+ config:
18
+ threshold: 11
19
+ method-count:
20
+ enabled: false
21
+ method-lines:
22
+ enabled: false
23
+ nested-control-flow:
24
+ enabled: false
25
+ return-statements:
26
+ enabled: false
27
+ plugins:
28
+ rubocop:
29
+ enabled: true
30
+ config: ".rubocop_cc.yml"
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ inherit_from:
2
+ - https://raw.githubusercontent.com/ManageIQ/guides/master/.rubocop_base.yml
3
+ - .rubocop_local.yml
data/.rubocop_cc.yml ADDED
@@ -0,0 +1,4 @@
1
+ inherit_from:
2
+ - .rubocop_base.yml
3
+ - .rubocop_cc_base.yml
4
+ - .rubocop_local.yml
File without changes
data/.travis.yml CHANGED
@@ -1,27 +1,28 @@
1
1
  ---
2
- sudo: false
3
2
  language: ruby
4
- #cache:
5
- # bundler: true
3
+ cache: bundler
6
4
  rvm:
7
- - 2.4.1
8
- # - 2.5
9
-
5
+ - 2.4.1
6
+ - 2.5.3
10
7
  services:
11
- - postgresql
12
- - mysql
13
-
8
+ - postgresql
9
+ - mysql
14
10
  env:
15
- - DB=sqlite3
16
- - DB=pg
17
- - DB=mysql2
18
-
11
+ - DB=sqlite3
12
+ - DB=pg
13
+ - DB=mysql2
19
14
  gemfile:
20
- - gemfiles/virtual_attributes_50.gemfile
21
- - gemfiles/virtual_attributes_51.gemfile
22
- # - gemfiles/virtual_attributes_52.gemfile
23
-
24
-
15
+ - gemfiles/virtual_attributes_50.gemfile
16
+ - gemfiles/virtual_attributes_51.gemfile
17
+ #- gemfiles/virtual_attributes_52.gemfile
18
+ before_install:
19
+ - 'echo ''gem: --no-ri --no-rdoc --no-document'' > ~/.gemrc'
25
20
  before_script:
26
- - sh -c "if [ '$DB' = 'pg' ]; then psql -c 'DROP DATABASE IF EXISTS virtual_attributes;' ; psql -c ' CREATE DATABASE virtual_attributes;' ; fi"
27
- - sh -c "if [ '$DB' = 'mysql2' ]; then mysql -e 'DROP DATABASE IF EXISTS virtual_attributes; CREATE DATABASE virtual_attributes;'; fi"
21
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
22
+ > ./cc-test-reporter
23
+ - chmod +x ./cc-test-reporter
24
+ - "./cc-test-reporter before-build"
25
+ - sh -c "if [ '$DB' = 'pg' ]; then psql -c 'DROP DATABASE IF EXISTS virtual_attributes;' ; psql -c ' CREATE DATABASE virtual_attributes;' ; fi"
26
+ - sh -c "if [ '$DB' = 'mysql2' ]; then mysql -e 'DROP DATABASE IF EXISTS virtual_attributes; CREATE DATABASE virtual_attributes;'; fi"
27
+ after_script:
28
+ - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
data/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ a nice looking [Changelog](http://keepachangelog.com).
5
5
 
6
6
  ## Version [Unreleased]
7
7
 
8
+ ## Version [1.1.0] <small>2019-04-23</small>
9
+
10
+ * add legacy types for VirtualAttribute::Types
11
+ * fix rails 5.1 bug with includes
12
+ * remove reference to MiqPreloader
13
+ * climate code fixes
14
+
8
15
  ## Version [1.0.0] <small>2019-03-05</small>
9
16
 
10
17
  * renamed to activerecord-virtual_attributes
@@ -16,5 +23,6 @@ a nice looking [Changelog](http://keepachangelog.com).
16
23
  * Initial Release
17
24
  * Extracted from ManageIQ/manageiq
18
25
 
19
- [Unreleased]: https://github.com/ManageIQ/activerecord-virtual_attributes/compare/v1.0.0...HEAD
26
+ [Unreleased]: https://github.com/ManageIQ/activerecord-virtual_attributes/compare/v1.1.0...HEAD
27
+ [1.1.0]: https://github.com/ManageIQ/activerecord-virtual_attributes/compare/v1.0.0...v1.1.0
20
28
  [1.0.0]: https://github.com/ManageIQ/activerecord-virtual_attributes/compare/v0.1.0...v1.0.0
data/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # VirtualAttributes
2
2
 
3
+ [![Build Status](https://travis-ci.org/ManageIQ/activerecord-virtual_attributes.svg?branch=master)](https://travis-ci.org/ManageIQ/activerecord-virtual_attributes)
4
+ [![Maintainability](https://api.codeclimate.com/v1/badges/e1a0c26941c00f4edb55/maintainability)](https://codeclimate.com/github/ManageIQ/activerecord-virtual_attributes/maintainability)
5
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/e1a0c26941c00f4edb55/test_coverage)](https://codeclimate.com/github/ManageIQ/activerecord-virtual_attributes/test_coverage)
6
+ [![Security](https://hakiri.io/github/ManageIQ/activerecord-virtual_attributes/master.svg)](https://hakiri.io/github/ManageIQ/activerecord-virtual_attributes/master)
7
+
3
8
  This allows you to define a ruby method that acts like an attribute or relation.
4
9
 
5
10
  Sometimes you have a model with an attribute defined in ruby, but you want to sort by it or filter by it.
@@ -43,4 +48,5 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/Manage
43
48
 
44
49
  ## License
45
50
 
46
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
51
+ This project is available as open source under the terms of the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0).
52
+
@@ -30,4 +30,5 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency "appraisal"
31
31
  spec.add_development_dependency "rake", "~> 10.0"
32
32
  spec.add_development_dependency "rspec", "~> 3.0"
33
+ spec.add_development_dependency "simplecov"
33
34
  end
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module VirtualAttributes
3
- VERSION = "1.0.0"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
@@ -58,7 +58,7 @@ module ActiveRecord
58
58
 
59
59
  module Associations
60
60
  class Preloader
61
- prepend Module.new {
61
+ prepend(Module.new {
62
62
  def preloaders_for_one(association, records, scope)
63
63
  klass_map = records.compact.group_by(&:class)
64
64
 
@@ -67,14 +67,14 @@ module ActiveRecord
67
67
  preload(subset, virtuals)
68
68
  end
69
69
 
70
- records_with_association = klass_map.select { |k, rs| k.reflect_on_association(association) }.flat_map { |k, rs| rs }
70
+ records_with_association = klass_map.select { |k, _rs| k.reflect_on_association(association) }.flat_map { |_k, rs| rs }
71
71
  if records_with_association.any?
72
72
  loaders.concat(super(association, records_with_association, scope))
73
73
  end
74
74
 
75
75
  loaders
76
76
  end
77
- }
77
+ })
78
78
  end
79
79
 
80
80
  # FIXME: Hopefully we can get this into Rails core so this is no longer
@@ -187,13 +187,17 @@ module ActiveRecord
187
187
  else
188
188
  recs = real.find_with_associations
189
189
  end
190
- MiqPreloader.preload(recs, preload_values + includes_values) if includes_values
190
+
191
+ if includes_values
192
+ ActiveRecord::Associations::Preloader.new.preload(recs, preload_values + includes_values)
193
+ end
191
194
 
192
195
  # when 5.0 support is dropped, assume a block given
193
196
  if block_given?
194
197
  yield recs, join_dep
198
+ else
199
+ recs
195
200
  end
196
- recs
197
201
  end
198
202
 
199
203
  # From ActiveRecord::QueryMethods
@@ -141,3 +141,12 @@ end
141
141
 
142
142
  require "active_record/virtual_attributes/virtual_total"
143
143
  require "active_record/virtual_attributes/arel_groups"
144
+
145
+ # legacy support for sql types
146
+ module VirtualAttributes
147
+ module Type
148
+ Symbol = ActiveRecord::VirtualAttributes::Type::Symbol
149
+ StringSet = ActiveRecord::VirtualAttributes::Type::StringSet
150
+ NumericSet = ActiveRecord::VirtualAttributes::Type::NumericSet
151
+ end
152
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-virtual_attributes
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keenan Brock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-05 00:00:00.000000000 Z
11
+ date: 2019-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: Define attributes in arel
70
84
  email:
71
85
  - keenan@thebrocks.net
@@ -73,8 +87,12 @@ executables: []
73
87
  extensions: []
74
88
  extra_rdoc_files: []
75
89
  files:
90
+ - ".codeclimate.yml"
76
91
  - ".gitignore"
77
92
  - ".rspec"
93
+ - ".rubocop.yml"
94
+ - ".rubocop_cc.yml"
95
+ - ".rubocop_local.yml"
78
96
  - ".travis.yml"
79
97
  - Appraisals
80
98
  - CHANGELOG.md