activerecord-ignored_columns 0.2.0 → 0.2.1

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
  SHA1:
3
- metadata.gz: 60079b7a4f640136599f6cefae3a7e387c5ccbfa
4
- data.tar.gz: bef78372c460f1e85e83319532b02a4a97230442
3
+ metadata.gz: 4aba07522289d5658e9e56b22fbd7025cbf30804
4
+ data.tar.gz: 16f5eea27304e811b9d65d3fd75e69aad2a12bbf
5
5
  SHA512:
6
- metadata.gz: e5e20c3edd7c0c43beccb528038750de607167cfe11176574521ad82be0f2c7a3606d37c308b0c867560a856a818ff9bfe5f5aef29a3511ff23f14c3e0cda93c
7
- data.tar.gz: 1a3dfe98983acb3cac9ef4cdf3a9b7c40441bd9fff7b5c78183590cd61796b28a942eae2e47a5cc9bad28238a703e29b98585e2096a30147478cf4d5276b61bf
6
+ metadata.gz: 8ba55d9fc3effc6716129727d5f419e6891cae01d3174bccf9355c6dbbc034ca5b073458c77210d833c0b573b11c0035b9371e20392e83c6be8b0a62ac1b70f3
7
+ data.tar.gz: d66c4fab8932a84415f5a5bd66fd68bcfa1e1594a800110f177b0c11754f86945c7246505e8f316d72560963756a24a2543c6306ea1ead6506769acc6501fa95
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## [0.2.1](https://github.com/yasaichi/activerecord-ignored_columns/releases/tag/v0.2.1) (July 6, 2019)
4
+
5
+ ### Compatible changes
6
+
7
+ - [Overall refactoring](https://github.com/yasaichi/activerecord-ignored_columns/pull/3)
8
+
3
9
  ## [0.2.0](https://github.com/yasaichi/activerecord-ignored_columns/releases/tag/v0.2.0) (July 6, 2019)
4
10
 
5
11
  ### Enhancements
@@ -1,7 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support/lazy_load_hooks"
4
+ require_relative "ignored_columns/model_schema"
5
+ require_relative "ignored_columns/query_methods"
3
6
  require_relative "ignored_columns/version"
4
7
 
5
- if defined?(Rails)
6
- require_relative "ignored_columns/railtie"
8
+ ActiveSupport.on_load(:active_record) do
9
+ if ActiveRecord.version < Gem::Version.create("5")
10
+ include(ActiveRecord::IgnoredColumns::ModelSchema)
11
+ end
12
+
13
+ if ActiveRecord.version < Gem::Version.create("5.1")
14
+ ActiveRecord::Relation.include(ActiveRecord::IgnoredColumns::QueryMethods)
15
+ end
7
16
  end
@@ -4,8 +4,8 @@ module ActiveRecord
4
4
  module IgnoredColumns
5
5
  module ModelSchema
6
6
  def self.included(active_record_base)
7
- active_record_base.class_exec(ClassMethods) do |class_methods|
8
- extend(class_methods)
7
+ active_record_base.class_exec do
8
+ extend ClassMethods
9
9
  self.ignored_columns = [].freeze
10
10
  end
11
11
  end
@@ -3,25 +3,18 @@
3
3
  module ActiveRecord
4
4
  module IgnoredColumns
5
5
  module QueryMethods
6
- def self.included(active_record_relation)
7
- active_record_relation.prepend(PrependMethods)
8
- end
9
-
10
- module PrependMethods
11
- # Override
12
- private def build_select(arel, selects = [])
13
- if !selects.empty? || select_values.any? || !klass.ignored_columns.any?
14
- return former_build_select_implementation? ? super : super(arel)
15
- end
16
-
17
- arel.project(*klass.column_names.map { |name|
18
- table[klass.attribute_aliases[name] || name]
19
- })
6
+ # Override
7
+ private def build_select(arel, *args)
8
+ if args.empty? # ActiveRecord 4.1 or later
9
+ return super(arel) if select_values.any? || !klass.ignored_columns.any?
10
+ else
11
+ selects = args.first
12
+ return super(arel, selects) if !selects.empty? || !klass.ignored_columns.any?
20
13
  end
21
14
 
22
- private def former_build_select_implementation?
23
- @former_build_select_implementation ||= method(:build_select).super_method.arity == 2
24
- end
15
+ arel.project(*klass.column_names.map { |name|
16
+ table[klass.attribute_aliases[name.to_s] || name] # arel_attribute(name)
17
+ })
25
18
  end
26
19
  end
27
20
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveRecord
4
4
  module IgnoredColumns
5
- VERSION = "0.2.0".freeze
5
+ VERSION = "0.2.1".freeze # rubocop:disable Style/RedundantFreeze
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-ignored_columns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuichi Goto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-05 00:00:00.000000000 Z
11
+ date: 2019-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -30,6 +30,26 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '5.1'
33
+ - !ruby/object:Gem::Dependency
34
+ name: activesupport
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '4.0'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '5.1'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '4.0'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '5.1'
33
53
  - !ruby/object:Gem::Dependency
34
54
  name: appraisal
35
55
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +120,20 @@ dependencies:
100
120
  - - ">="
101
121
  - !ruby/object:Gem::Version
102
122
  version: '0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: reek
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
103
137
  - !ruby/object:Gem::Dependency
104
138
  name: simplecov
105
139
  requirement: !ruby/object:Gem::Requirement
@@ -142,7 +176,6 @@ files:
142
176
  - lib/activerecord/ignored_columns.rb
143
177
  - lib/activerecord/ignored_columns/model_schema.rb
144
178
  - lib/activerecord/ignored_columns/query_methods.rb
145
- - lib/activerecord/ignored_columns/railtie.rb
146
179
  - lib/activerecord/ignored_columns/version.rb
147
180
  homepage: https://github.com/yasaichi/activerecord-ignored_columns
148
181
  licenses:
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "active_support/lazy_load_hooks"
4
- require "rails/railtie"
5
- require_relative "model_schema"
6
- require_relative "query_methods"
7
-
8
- module ActiveRecord
9
- module IgnoredColumns
10
- class Railtie < ::Rails::Railtie
11
- initializer "active_record.ignored_columns" do
12
- ::ActiveSupport.on_load(:active_record) do
13
- rails_version = ::Rails.respond_to?(:gem_version) ?
14
- ::Rails.gem_version : ::Gem::Version.create(::Rails.version)
15
-
16
- if rails_version < ::Gem::Version.create("5")
17
- include ::ActiveRecord::IgnoredColumns::ModelSchema
18
- end
19
-
20
- if rails_version < ::Gem::Version.create("5.1")
21
- ::ActiveRecord::Relation.include(::ActiveRecord::IgnoredColumns::QueryMethods)
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end