activerecord-ignored_columns 0.1.0 → 0.2.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
  SHA1:
3
- metadata.gz: 34cb084e3712cc29485d1fb9f450e69102409250
4
- data.tar.gz: 4beb51ce466e565d1aad4360f12371017e929202
3
+ metadata.gz: 60079b7a4f640136599f6cefae3a7e387c5ccbfa
4
+ data.tar.gz: bef78372c460f1e85e83319532b02a4a97230442
5
5
  SHA512:
6
- metadata.gz: c4d46280d55c2d82569c1429b3c4b60e2356be0456c84e241be003a03afb1e2de73745b81dbcded785ee3c9a3b660b6ad55f319d14713ab2088323cb174e1156
7
- data.tar.gz: 99bb597554af13e82e8980e3f9e9034342b30d4ff29276e0740320efbd27aed2debdbdd5e74620afefae5036a6cecc7532f62e4588d26175619dd1e84cdb42e4
6
+ metadata.gz: e5e20c3edd7c0c43beccb528038750de607167cfe11176574521ad82be0f2c7a3606d37c308b0c867560a856a818ff9bfe5f5aef29a3511ff23f14c3e0cda93c
7
+ data.tar.gz: 1a3dfe98983acb3cac9ef4cdf3a9b7c40441bd9fff7b5c78183590cd61796b28a942eae2e47a5cc9bad28238a703e29b98585e2096a30147478cf4d5276b61bf
data/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ # CHANGELOG
2
+
3
+ ## [0.2.0](https://github.com/yasaichi/activerecord-ignored_columns/releases/tag/v0.2.0) (July 6, 2019)
4
+
5
+ ### Enhancements
6
+
7
+ - [Add support of Rails 4.0](https://github.com/yasaichi/activerecord-ignored_columns/pull/2)
8
+
9
+ ### Breaking changes
10
+
11
+ - Rename `Activerecord` to `ActiveRecord`
12
+ - Remove an unused Rake task
13
+
14
+ ## [0.1.0](https://github.com/yasaichi/activerecord-ignored_columns/releases/tag/v0.1.0) (July 5, 2019)
15
+
16
+ - The initial release
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2019 yasaichi
1
+ Copyright 2019 Yuichi Goto
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,10 +1,17 @@
1
- # Activerecord::IgnoredColumns
2
- Short description and motivation.
1
+ # activerecord-ignored_columns
3
2
 
4
- ## Usage
5
- How to use my plugin.
3
+ [![Gem Version](https://badge.fury.io/rb/activerecord-ignored_columns.svg)](http://badge.fury.io/rb/activerecord-ignored_columns)
4
+ [![Build Status](https://travis-ci.org/yasaichi/activerecord-ignored_columns.svg?branch=master)](https://travis-ci.org/yasaichi/activerecord-ignored_columns)
5
+ [![Code Climate](https://codeclimate.com/github/yasaichi/activerecord-ignored_columns/badges/gpa.svg)](https://codeclimate.com/github/yasaichi/activerecord-ignored_columns)
6
+ [![Test Coverage](https://codeclimate.com/github/yasaichi/activerecord-ignored_columns/badges/coverage.svg)](https://codeclimate.com/github/yasaichi/activerecord-ignored_columns/coverage)
7
+
8
+ `activerecord-ignored_columns` is a backport of `ActiveRecord::Base.ignored_columns` (introduced in
9
+ Rails 5) into Rails 4.
10
+ You can also use this gem for Rails 5.0 because it fixes one serious bug in the version (see
11
+ [PR #30980](https://github.com/rails/rails/pull/30980)).
6
12
 
7
13
  ## Installation
14
+
8
15
  Add this line to your application's Gemfile:
9
16
 
10
17
  ```ruby
@@ -12,17 +19,33 @@ gem 'activerecord-ignored_columns'
12
19
  ```
13
20
 
14
21
  And then execute:
22
+
15
23
  ```bash
16
24
  $ bundle
17
25
  ```
18
26
 
19
- Or install it yourself as:
20
- ```bash
21
- $ gem install activerecord-ignored_columns
27
+ ## Usage
28
+
29
+ Set columns names that a model should ignore as follows:
30
+
31
+ ```ruby
32
+ class UserProfile < ActiveRecord::Base
33
+ self.ignored_columns = %i(full_name)
34
+ end
22
35
  ```
23
36
 
37
+ Ignored columns won't have attribute accessors defined, and won't be referenced in SQL queries.
38
+
24
39
  ## Contributing
25
- Contribution directions go here.
40
+
41
+ You should follow the steps below.
42
+
43
+ 1. [Fork the repository](https://help.github.com/articles/fork-a-repo/)
44
+ 2. Create a feature branch: `git checkout -b add-new-feature`
45
+ 3. Commit your changes: `git commit -am 'Add new feature'`
46
+ 4. Push the branch: `git push origin add-new-feature`
47
+ 5. [Send us a pull request](https://help.github.com/articles/about-pull-requests/)
26
48
 
27
49
  ## License
50
+
28
51
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ require "rdoc/task"
10
10
 
11
11
  RDoc::Task.new(:rdoc) do |rdoc|
12
12
  rdoc.rdoc_dir = "rdoc"
13
- rdoc.title = "Activerecord::IgnoredColumns"
13
+ rdoc.title = "ActiveRecord::IgnoredColumns"
14
14
  rdoc.options << "--line-numbers"
15
15
  rdoc.rdoc_files.include("README.md")
16
16
  rdoc.rdoc_files.include("lib/**/*.rb")
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Activerecord
3
+ module ActiveRecord
4
4
  module IgnoredColumns
5
5
  module ModelSchema
6
6
  def self.included(active_record_base)
@@ -11,6 +11,7 @@ module Activerecord
11
11
  end
12
12
 
13
13
  module ClassMethods
14
+ # Override
14
15
  def columns
15
16
  @columns ||= super.reject { |column| ignored_columns.include?(column.name) }
16
17
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Activerecord
3
+ module ActiveRecord
4
4
  module IgnoredColumns
5
5
  module QueryMethods
6
6
  def self.included(active_record_relation)
@@ -8,13 +8,20 @@ module Activerecord
8
8
  end
9
9
 
10
10
  module PrependMethods
11
- private def build_select(arel)
12
- return super if select_values.any? || !klass.ignored_columns.any?
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
13
16
 
14
17
  arel.project(*klass.column_names.map { |name|
15
- table[attribute_alias?(name) ? attribute_alias(name) : name]
18
+ table[klass.attribute_aliases[name] || name]
16
19
  })
17
20
  end
21
+
22
+ private def former_build_select_implementation?
23
+ @former_build_select_implementation ||= method(:build_select).super_method.arity == 2
24
+ end
18
25
  end
19
26
  end
20
27
  end
@@ -5,20 +5,20 @@ require "rails/railtie"
5
5
  require_relative "model_schema"
6
6
  require_relative "query_methods"
7
7
 
8
- module Activerecord
8
+ module ActiveRecord
9
9
  module IgnoredColumns
10
10
  class Railtie < ::Rails::Railtie
11
11
  initializer "active_record.ignored_columns" do
12
12
  ::ActiveSupport.on_load(:active_record) do
13
- rails_version = Rails.respond_to?(:gem_version) ?
14
- Rails.gem_version : Gem::Version.create(Rails.version)
13
+ rails_version = ::Rails.respond_to?(:gem_version) ?
14
+ ::Rails.gem_version : ::Gem::Version.create(::Rails.version)
15
15
 
16
- if rails_version < Gem::Version.create("5")
17
- include ::Activerecord::IgnoredColumns::ModelSchema
16
+ if rails_version < ::Gem::Version.create("5")
17
+ include ::ActiveRecord::IgnoredColumns::ModelSchema
18
18
  end
19
19
 
20
- if rails_version < Gem::Version.create("5.1")
21
- ::ActiveRecord::Relation.include(::Activerecord::IgnoredColumns::QueryMethods)
20
+ if rails_version < ::Gem::Version.create("5.1")
21
+ ::ActiveRecord::Relation.include(::ActiveRecord::IgnoredColumns::QueryMethods)
22
22
  end
23
23
  end
24
24
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Activerecord
3
+ module ActiveRecord
4
4
  module IgnoredColumns
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0".freeze
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-ignored_columns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - yasaichi
7
+ - Yuichi Goto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.1'
19
+ version: '4.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '5.1'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '4.1'
29
+ version: '4.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '5.1'
@@ -100,6 +100,20 @@ dependencies:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: simplecov
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
103
117
  - !ruby/object:Gem::Dependency
104
118
  name: sqlite3
105
119
  requirement: !ruby/object:Gem::Requirement
@@ -114,13 +128,14 @@ dependencies:
114
128
  - - "<"
115
129
  - !ruby/object:Gem::Version
116
130
  version: 1.4.0
117
- description: Backport of ActiveRecord::Base.ignored_columns to Rails 4.1 ~ 5.0
131
+ description: Backport of ActiveRecord::Base.ignored_columns into Rails 4 and 5.0
118
132
  email:
119
133
  - yasaichi@users.noreply.github.com
120
134
  executables: []
121
135
  extensions: []
122
136
  extra_rdoc_files: []
123
137
  files:
138
+ - CHANGELOG.md
124
139
  - MIT-LICENSE
125
140
  - README.md
126
141
  - Rakefile
@@ -129,7 +144,6 @@ files:
129
144
  - lib/activerecord/ignored_columns/query_methods.rb
130
145
  - lib/activerecord/ignored_columns/railtie.rb
131
146
  - lib/activerecord/ignored_columns/version.rb
132
- - lib/tasks/activerecord/ignored_columns_tasks.rake
133
147
  homepage: https://github.com/yasaichi/activerecord-ignored_columns
134
148
  licenses:
135
149
  - MIT
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # desc "Explaining what the task does"
4
- # task :activerecord_ignored_columns do
5
- # # Task goes here
6
- # end