rails_compatibility 0.0.4 → 0.0.8

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: 0d628f314ad4219a50d3f0d4a72b69254ae956c1d1e63a0db6870143ceba6ffd
4
- data.tar.gz: c5e489ed0997e8d8dfab6828c24d4d8c513e2c9aaa0a12a0d858db0cf3b224c3
3
+ metadata.gz: e10843554c7729ecd8fb3b9ef7418fc458cb92ad18da1f4e6ce2829dd5ab1566
4
+ data.tar.gz: bdea2e8109abd52b32df8ca66675bc6ae3cd9a5ad3c6e1b73081d0344526e25b
5
5
  SHA512:
6
- metadata.gz: 25c8eaa141e7dcf885ea0a3640032686092c4779f8382d76b8da9d1744359924d6b805e8b52b723ccbfc0cd6f9783765f88723e1071d891604a4573ea7907363
7
- data.tar.gz: d7346c65e318fc062248678ce9e9e2d9200ad86bbd0eee6395afba7720127267b85ca53bbf8ebe5066a3fdc65db6fc78cd85ea7fe1475c9a15b74c990f8014e8
6
+ metadata.gz: f80ced4f5e1e7c22d04262c170fb478d46aa17c02a767cc37af0b4f170e634de81d1bf6824857e4f41bbeed846eb7365b28ee670e11262dd3da0b457ea2ea06e
7
+ data.tar.gz: b30469894f18200d7d102ddfe9f0308cda268c66236da7f7b6c6f53827a41616f03a871d92da95f89cd903485c139415ef0637c5c3605778fc928b9ebb661277
@@ -23,6 +23,8 @@ jobs:
23
23
  - 2.2
24
24
  - 2.6
25
25
  - 2.7
26
+ - 3.0
27
+ - 3.1
26
28
  gemfile:
27
29
  - 3.2.gemfile
28
30
  - 4.2.gemfile
@@ -31,32 +33,57 @@ jobs:
31
33
  - 5.2.gemfile
32
34
  - 6.0.gemfile
33
35
  - 6.1.gemfile
36
+ - 7.0.gemfile
34
37
  exclude:
35
38
  - gemfile: 3.2.gemfile
36
39
  ruby: 2.6
37
40
  - gemfile: 3.2.gemfile
38
41
  ruby: 2.7
42
+ - gemfile: 3.2.gemfile
43
+ ruby: 3.0
44
+ - gemfile: 3.2.gemfile
45
+ ruby: 3.1
39
46
  - gemfile: 4.2.gemfile
40
47
  ruby: 2.7
48
+ - gemfile: 4.2.gemfile
49
+ ruby: 3.0
50
+ - gemfile: 4.2.gemfile
51
+ ruby: 3.1
52
+ - gemfile: 5.0.gemfile
53
+ ruby: 3.0
54
+ - gemfile: 5.0.gemfile
55
+ ruby: 3.1
56
+ - gemfile: 5.1.gemfile
57
+ ruby: 3.0
58
+ - gemfile: 5.1.gemfile
59
+ ruby: 3.1
60
+ - gemfile: 5.2.gemfile
61
+ ruby: 3.0
62
+ - gemfile: 5.2.gemfile
63
+ ruby: 3.1
41
64
  - gemfile: 6.0.gemfile
42
65
  ruby: 2.2
43
66
  - gemfile: 6.1.gemfile
44
67
  ruby: 2.2
68
+ - gemfile: 7.0.gemfile
69
+ ruby: 2.2
70
+ - gemfile: 7.0.gemfile
71
+ ruby: 2.6
45
72
  env:
46
73
  BUNDLE_GEMFILE: "gemfiles/${{ matrix.gemfile }}"
47
74
 
48
75
  steps:
49
- - name: Checkout
50
- uses: actions/checkout@v2
51
- - name: Setup Ruby
52
- uses: ruby/setup-ruby@v1
53
- with:
54
- ruby-version: ${{ matrix.ruby }}
55
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
56
- - name: Run tests
57
- run: bundle exec rake
58
- - name: Publish code coverage
59
- if: ${{ success() }}
60
- uses: paambaati/codeclimate-action@v2.7.5
61
- env:
62
- CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
76
+ - name: Checkout
77
+ uses: actions/checkout@v2
78
+ - name: Setup Ruby
79
+ uses: ruby/setup-ruby@v1
80
+ with:
81
+ ruby-version: ${{ matrix.ruby }}
82
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
83
+ - name: Run tests
84
+ run: bundle exec rake
85
+ - name: Publish code coverage
86
+ if: ${{ success() }}
87
+ uses: paambaati/codeclimate-action@v2.7.5
88
+ env:
89
+ CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
data/.rubocop.yml CHANGED
@@ -178,7 +178,7 @@ Lint/UselessAssignment:
178
178
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
179
179
  Enabled: true
180
180
 
181
- Lint/UselessComparison:
181
+ Lint/BinaryOperatorWithIdenticalOperands:
182
182
  Description: 'Checks for comparison of something with itself.'
183
183
  Enabled: true
184
184
 
@@ -1117,7 +1117,7 @@ Style/SymbolProc:
1117
1117
  Description: 'Use symbols as procs instead of blocks when possible.'
1118
1118
  Enabled: true
1119
1119
 
1120
- Layout/Tab:
1120
+ Layout/IndentationStyle:
1121
1121
  Description: 'No hard tabs.'
1122
1122
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
1123
1123
  Enabled: true
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  ## Change Log
2
2
 
3
+ ### [v0.0.7](https://github.com/khiav223577/rails_compatibility/compare/v0.0.6...v0.0.7) 2021/06/10
4
+ - [#12](https://github.com/khiav223577/rails_compatibility/pull/12) Implement #apply_join_dependency (@khiav223577)
5
+
6
+ ### [v0.0.6](https://github.com/khiav223577/rails_compatibility/compare/v0.0.5...v0.0.6) 2021/06/10
7
+ - [#11](https://github.com/khiav223577/rails_compatibility/pull/11) Implement #has_include? (@khiav223577)
8
+
9
+ ### [v0.0.5](https://github.com/khiav223577/rails_compatibility/compare/v0.0.4...v0.0.5) 2021/05/05
10
+ - [#10](https://github.com/khiav223577/rails_compatibility/pull/10) Implement #pick (@khiav223577)
11
+ - [#9](https://github.com/khiav223577/rails_compatibility/pull/9) refactor: use GTE_RAILS_4_0 (@khiav223577)
12
+
13
+ ### [v0.0.4](https://github.com/khiav223577/rails_compatibility/compare/v0.0.3...v0.0.4) 2021/04/10
14
+ - [#8](https://github.com/khiav223577/rails_compatibility/pull/8) Fix: join dependency construct wrongly when HABTM associations have custom name (@khiav223577)
15
+
3
16
  ### [v0.0.3](https://github.com/khiav223577/rails_compatibility/compare/v0.0.2...v0.0.3) 2021/02/09
4
17
  - [#7](https://github.com/khiav223577/rails_compatibility/pull/7) Implement #build_joins (@khiav223577)
5
18
  - [#6](https://github.com/khiav223577/rails_compatibility/pull/6) Support Rails 6.1 (@khiav223577)
data/README.md CHANGED
@@ -7,8 +7,8 @@
7
7
  [![Test Coverage](https://codeclimate.com/github/khiav223577/rails_compatibility/badges/coverage.svg)](https://codeclimate.com/github/khiav223577/rails_compatibility/coverage)
8
8
 
9
9
  ## Supports
10
- - Ruby 2.2 ~ 2.7
11
- - Rails 3.2, 4.2, 5.0, 5.1, 5.2, 6.0
10
+ - Ruby 2.2 ~ 2.7, 3.0 ~ 3.1
11
+ - Rails 3.2, 4.2, 5.0, 5.1, 5.2, 6.0, 6.1, 7.0
12
12
 
13
13
  ## Installation
14
14
 
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'zeitwerk'
4
+ gem 'activerecord', '~> 7.0.0'
5
+ gem 'pluck_all', '~> 2.2.1'
6
+
7
+ group :test do
8
+ gem 'simplecov', '< 0.18'
9
+ gem 'sqlite3', '~> 1.4.1'
10
+ end
11
+
12
+ gemspec path: '../'
@@ -4,6 +4,7 @@ require 'rails_compatibility'
4
4
  require 'active_record'
5
5
 
6
6
  class << RailsCompatibility
7
+ GTE_RAILS_7_0 = Gem::Version.new(ActiveRecord::VERSION::STRING) >= Gem::Version.new('7.0.0')
7
8
  GTE_RAILS_6_1 = Gem::Version.new(ActiveRecord::VERSION::STRING) >= Gem::Version.new('6.1.0')
8
9
  GTE_RAILS_6_0 = Gem::Version.new(ActiveRecord::VERSION::STRING) >= Gem::Version.new('6.0.0')
9
10
  GTE_RAILS_5_2 = Gem::Version.new(ActiveRecord::VERSION::STRING) >= Gem::Version.new('5.2.0')
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_compatibility'
4
+ require 'rails_compatibility/active_record'
5
+
6
+ class << RailsCompatibility
7
+ if GTE_RAILS_5_2
8
+ def apply_join_dependency(relation)
9
+ relation.send(:apply_join_dependency)
10
+ end
11
+ elsif GTE_RAILS_5_1
12
+ def apply_join_dependency(relation)
13
+ relation.send(:construct_relation_for_association_calculations)
14
+ end
15
+ elsif GTE_RAILS_5_0
16
+ def apply_join_dependency(relation)
17
+ relation.dup.send(:construct_relation_for_association_calculations)
18
+ end
19
+ else
20
+ def apply_join_dependency(relation)
21
+ relation.send(:construct_relation_for_association_calculations)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_compatibility'
4
+ require 'rails_compatibility/active_record'
5
+
6
+ class << RailsCompatibility
7
+ if GTE_RAILS_6_1
8
+ def has_include?(relation, column_name)
9
+ relation.send(:has_include?, column_name)
10
+ end
11
+ elsif GTE_RAILS_5_0
12
+ def has_include?(relation, column_name)
13
+ relation.dup.send(:has_include?, column_name)
14
+ end
15
+ else
16
+ def has_include?(relation, column_name)
17
+ relation.send(:has_include?, column_name)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_compatibility/active_record'
4
+
5
+ class << RailsCompatibility
6
+ if GTE_RAILS_6_0
7
+ def pick(relation, *args)
8
+ relation.pick(*args)
9
+ end
10
+ elsif GTE_RAILS_4_0
11
+ def pick(relation, *args)
12
+ relation.limit(1).pluck(*args).first
13
+ end
14
+ else
15
+ def pick(relation, *args)
16
+ model = relation.first
17
+
18
+ return nil if model == nil
19
+ return model[args.first] if args.size == 1
20
+ return args.map{|s| model[s] }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_compatibility'
4
+
5
+ class << RailsCompatibility
6
+ if ActiveSupport::VERSION::MAJOR >= 7
7
+ def setup_autoload_paths(paths)
8
+ require 'zeitwerk'
9
+ loader = Zeitwerk::Loader.new
10
+
11
+ paths.each do |path|
12
+ ActiveSupport::Dependencies.autoload_paths << path
13
+ loader.push_dir(path)
14
+ end
15
+
16
+ loader.setup
17
+ end
18
+ else
19
+ def setup_autoload_paths(paths)
20
+ paths.each do |path|
21
+ ActiveSupport::Dependencies.autoload_paths << path
22
+ end
23
+ end
24
+ end
25
+ end
@@ -3,13 +3,13 @@
3
3
  require 'rails_compatibility/active_record'
4
4
 
5
5
  class << RailsCompatibility
6
- if ActiveRecord::VERSION::MAJOR < 4
6
+ if GTE_RAILS_4_0
7
7
  def unscope_where(relation)
8
- relation.dup.tap{|s| s.where_values = [] }
8
+ relation.unscope(:where)
9
9
  end
10
10
  else
11
11
  def unscope_where(relation)
12
- relation.unscope(:where)
12
+ relation.dup.tap{|s| s.where_values = [] }
13
13
  end
14
14
  end
15
15
  end
@@ -1,3 +1,3 @@
1
1
  module RailsCompatibility
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.8'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_compatibility
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - khiav reoy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-10 00:00:00.000000000 Z
11
+ date: 2022-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -126,11 +126,16 @@ files:
126
126
  - gemfiles/5.2.gemfile
127
127
  - gemfiles/6.0.gemfile
128
128
  - gemfiles/6.1.gemfile
129
+ - gemfiles/7.0.gemfile
129
130
  - lib/rails_compatibility.rb
130
131
  - lib/rails_compatibility/active_record.rb
132
+ - lib/rails_compatibility/apply_join_dependency.rb
131
133
  - lib/rails_compatibility/attribute_types.rb
132
134
  - lib/rails_compatibility/build_joins.rb
133
135
  - lib/rails_compatibility/construct_join_dependency.rb
136
+ - lib/rails_compatibility/has_include.rb
137
+ - lib/rails_compatibility/pick.rb
138
+ - lib/rails_compatibility/setup_autoload_paths.rb
134
139
  - lib/rails_compatibility/unscope_where.rb
135
140
  - lib/rails_compatibility/version.rb
136
141
  - rails_compatibility.gemspec