activerecord-ignored_columns 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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