deep_preloader 1.0.2 → 1.1.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
  SHA256:
3
- metadata.gz: 2905039099c3093587202144bffb2241e17c0f524a7e5b391f94f6526e08b1b3
4
- data.tar.gz: 03d23e36bbed2e1f6070d7afde2ee27764c8317e4ea28d4e4f5ef624c789d4b4
3
+ metadata.gz: 7d624c81fa1de1077266d5b3da945c551e3a3d0756e1c5f1b55f67e868dde0df
4
+ data.tar.gz: 83d4214703de49d03770af58abf27f1e6963cac88594534dcbba1d6e47d4746a
5
5
  SHA512:
6
- metadata.gz: 6cab0b0b8ac3c49d1610cd1915198fd784bdb29023d4d88f3401b75d35fe673efaa1c4578ca9e4ed74dab3bc234b78ba0c193e446f894c17ba1ec42fd3e44847
7
- data.tar.gz: 8793d51feefa4dea2e3c8ab3f31d5756776b5b44a8edfc856c1d961f9ac46463ff8037cda4c7aec4742f6a3f56ae85c5f0c17ff8410c79b92a74b6fb012a4334
6
+ metadata.gz: f21d5b3c98a221ab90504d771a6e353deabe042a656679e11f8eb64699561eb433ba8da10700f4eec2131dd53a46c2875e5af7cece4c4e6e30e264e20c9f6a52
7
+ data.tar.gz: 4aefe1fb5e9eba21037730a2ccbab9de657b5bcc14c937687fb58f66729cb0c7ab411323d1b1ed0094811939d0fcd22f73250d340db7e8c1bc96e858a7fa6167
@@ -0,0 +1,31 @@
1
+ name: Publish Ruby Gem
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+
7
+ jobs:
8
+ build:
9
+ name: Build + Publish
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: read
13
+ packages: write
14
+
15
+ steps:
16
+ - uses: actions/checkout@v3
17
+ - name: Set up Ruby 2.7
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: 2.7
21
+
22
+ - name: Publish to RubyGems
23
+ run: |
24
+ mkdir -p $HOME/.gem
25
+ touch $HOME/.gem/credentials
26
+ chmod 0600 $HOME/.gem/credentials
27
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
28
+ gem build *.gemspec
29
+ gem push *.gem
30
+ env:
31
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
@@ -0,0 +1,50 @@
1
+ name: Run Tests
2
+
3
+ on:
4
+ pull_request:
5
+ branches: "**"
6
+
7
+ permissions:
8
+ contents: read
9
+ checks: write
10
+ pull-requests: write
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-latest
15
+
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ ruby-version: ['2.7', '3.1', '3.2']
20
+ include:
21
+ - ruby-version: '2.7'
22
+ bundle-gemfile: gemfiles/activerecord_5_2.gemfile
23
+ - ruby-version: '3.1'
24
+ bundle-gemfile: gemfiles/activerecord_6_1.gemfile
25
+ - ruby-version: '3.2'
26
+ bundle-gemfile: gemfiles/activerecord_7_0.gemfile
27
+ env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
28
+ BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle-gemfile }}
29
+ steps:
30
+ - uses: actions/checkout@v3
31
+ - name: Set up Ruby
32
+ uses: ruby/setup-ruby@v1
33
+ with:
34
+ ruby-version: ${{ matrix.ruby-version }}
35
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
36
+ - name: Run tests
37
+ run: bundle exec rspec --profile 10 --format RspecJunitFormatter --out test_results/rspec.xml --format progress
38
+ - name: Upload result
39
+ uses: actions/upload-artifact@v3
40
+ if: always()
41
+ with:
42
+ name: rspec_${{ matrix.ruby-version }}.xml
43
+ path: test_results/rspec.xml
44
+ - name: Test Report
45
+ uses: dorny/test-reporter@v1
46
+ if: always()
47
+ with:
48
+ name: Rspec Tests - ${{ matrix.ruby-version }}
49
+ path: test_results/rspec.xml
50
+ reporter: java-junit
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rspec_junit_formatter"
6
+ gem "activerecord", "~> 7.0.0"
7
+
8
+ gemspec path: "../"
@@ -15,7 +15,7 @@ class DeepPreloader::PolymorphicSpec < DeepPreloader::AbstractSpec
15
15
  end
16
16
 
17
17
  def initialize(specs_by_type = {})
18
- @specs_by_type = specs_by_type
18
+ @specs_by_type = specs_by_type.transform_keys(&:to_s)
19
19
  end
20
20
 
21
21
  def polymorphic?
@@ -35,7 +35,7 @@ class DeepPreloader::PolymorphicSpec < DeepPreloader::AbstractSpec
35
35
  if specs_by_type[k]
36
36
  specs_by_type[k].merge!(v)
37
37
  else
38
- specs_by_type[k] = v
38
+ specs_by_type[k] = v.deep_dup
39
39
  end
40
40
  end
41
41
  else
@@ -54,6 +54,10 @@ class DeepPreloader::PolymorphicSpec < DeepPreloader::AbstractSpec
54
54
 
55
55
  alias eql? ==
56
56
 
57
+ def deep_dup
58
+ self.class.new(specs_by_type.deep_dup)
59
+ end
60
+
57
61
  def inspect
58
62
  "PolySpec#{specs_by_type.inspect}"
59
63
  end
@@ -11,11 +11,11 @@ class DeepPreloader::Spec < DeepPreloader::AbstractSpec
11
11
  end
12
12
  when Hash
13
13
  assoc_specs = data.each_with_object({}) do |(k, v), h|
14
- h[k.to_sym] = parse(v)
14
+ h[k.to_s] = parse(v)
15
15
  end
16
16
  self.new(assoc_specs)
17
17
  when String, Symbol
18
- self.new({ data.to_sym => nil })
18
+ self.new({ data.to_s => nil })
19
19
  when DeepPreloader::AbstractSpec
20
20
  data
21
21
  when nil
@@ -26,7 +26,7 @@ class DeepPreloader::Spec < DeepPreloader::AbstractSpec
26
26
  end
27
27
 
28
28
  def initialize(association_specs = {})
29
- @association_specs = association_specs
29
+ @association_specs = association_specs.transform_keys(&:to_s)
30
30
  end
31
31
 
32
32
  def merge!(other)
@@ -38,7 +38,7 @@ class DeepPreloader::Spec < DeepPreloader::AbstractSpec
38
38
  if association_specs[k]
39
39
  association_specs[k].merge!(v)
40
40
  else
41
- association_specs[k] = v
41
+ association_specs[k] = v.deep_dup
42
42
  end
43
43
  end
44
44
  else
@@ -57,6 +57,10 @@ class DeepPreloader::Spec < DeepPreloader::AbstractSpec
57
57
 
58
58
  alias eql? ==
59
59
 
60
+ def deep_dup
61
+ self.class.new(association_specs.deep_dup)
62
+ end
63
+
60
64
  def inspect
61
65
  "Spec#{association_specs.inspect}"
62
66
  end
@@ -1,3 +1,3 @@
1
1
  class DeepPreloader
2
- VERSION = '1.0.2'
2
+ VERSION = '1.1.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deep_preloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - iKnow Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-23 00:00:00.000000000 Z
11
+ date: 2024-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -171,7 +171,8 @@ executables: []
171
171
  extensions: []
172
172
  extra_rdoc_files: []
173
173
  files:
174
- - ".circleci/config.yml"
174
+ - ".github/workflows/gem-push.yml"
175
+ - ".github/workflows/test.yml"
175
176
  - ".gitignore"
176
177
  - ".rspec"
177
178
  - ".travis.yml"
@@ -185,6 +186,7 @@ files:
185
186
  - deep_preloader.gemspec
186
187
  - gemfiles/activerecord_5_2.gemfile
187
188
  - gemfiles/activerecord_6_1.gemfile
189
+ - gemfiles/activerecord_7_0.gemfile
188
190
  - lib/deep_preloader.rb
189
191
  - lib/deep_preloader/abstract_spec.rb
190
192
  - lib/deep_preloader/polymorphic_spec.rb
@@ -211,7 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
213
  - !ruby/object:Gem::Version
212
214
  version: '0'
213
215
  requirements: []
214
- rubygems_version: 3.0.3.1
216
+ rubygems_version: 3.1.6
215
217
  signing_key:
216
218
  specification_version: 4
217
219
  summary: Explicit preloader for ActiveRecord
data/.circleci/config.yml DELETED
@@ -1,103 +0,0 @@
1
- version: 2.1
2
-
3
- executors:
4
- ruby:
5
- parameters:
6
- ruby-version:
7
- type: string
8
- default: "2.6"
9
- gemfile:
10
- type: string
11
- default: "Gemfile"
12
- docker:
13
- - image: circleci/ruby:<< parameters.ruby-version >>
14
- environment:
15
- BUNDLE_JOBS: 3
16
- BUNDLE_RETRY: 3
17
- BUNDLE_PATH: vendor/bundle
18
- RAILS_ENV: test
19
- BUNDLE_GEMFILE: << parameters.gemfile >>
20
-
21
- jobs:
22
- test:
23
- parameters:
24
- ruby-version:
25
- type: string
26
- gemfile:
27
- type: string
28
- executor:
29
- name: ruby
30
- ruby-version: << parameters.ruby-version >>
31
- gemfile: << parameters.gemfile >>
32
- parallelism: 1
33
- steps:
34
- - checkout
35
-
36
- - run:
37
- # Remove the non-appraisal gemfile for safety: we never want to use it.
38
- name: Prepare bundler
39
- command: bundle -v
40
-
41
- - run:
42
- name: Compute a gemfile lock
43
- command: bundle lock && cp "${BUNDLE_GEMFILE}.lock" /tmp/gem-lock
44
-
45
- - restore_cache:
46
- keys:
47
- - deep_preloader-<< parameters.ruby-version >>-{{ checksum "/tmp/gem-lock" }}
48
- - deep_preloader-
49
-
50
- - run:
51
- name: Bundle Install
52
- command: bundle check || bundle install
53
-
54
- - save_cache:
55
- key: deep_preloader-<< parameters.ruby-version >>-{{ checksum "/tmp/gem-lock" }}
56
- paths:
57
- - vendor/bundle
58
-
59
- - run:
60
- name: Run rspec
61
- command: bundle exec rspec --profile 10 --format RspecJunitFormatter --out test_results/rspec.xml --format progress
62
-
63
- - store_test_results:
64
- path: test_results
65
-
66
- publish:
67
- executor: ruby
68
- steps:
69
- - checkout
70
- - run:
71
- name: Setup Rubygems
72
- command: |
73
- mkdir ~/.gem &&
74
- echo -e "---\r\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials &&
75
- chmod 0600 ~/.gem/credentials
76
- - run:
77
- name: Publish to Rubygems
78
- command: |
79
- gem build deep_preloader.gemspec
80
- gem push deep_preloader-*.gem
81
-
82
- workflows:
83
- version: 2.1
84
- build:
85
- jobs:
86
- - test:
87
- name: 'ruby 2.6 ActiveRecord 5.2'
88
- ruby-version: "2.6"
89
- gemfile: gemfiles/activerecord_5_2.gemfile
90
- - test:
91
- name: 'ruby 2.7 ActiveRecord 5.2'
92
- ruby-version: "2.7"
93
- gemfile: gemfiles/activerecord_5_2.gemfile
94
- - test:
95
- name: 'ruby 3.0 ActiveRecord 6.1'
96
- ruby-version: "3.0"
97
- gemfile: gemfiles/activerecord_6_1.gemfile
98
- - publish:
99
- filters:
100
- branches:
101
- only: master
102
- tags:
103
- ignore: /.*/