mongoid-denormalization 1.0.0 → 3.0.0

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: '097a329ca8b500cc0e7acbe0788cf3abbacd581683873e25a0ea187f5da7c800'
4
- data.tar.gz: 5de91988efa84936ad723426307e1a149cb669c2880b6ddd7391bcb589061c78
3
+ metadata.gz: 31e6059d2b9f6be41374fa50fac19363d1f9c735c459364dfadb9460de1506f4
4
+ data.tar.gz: ffa5f34d6c27a875dba7c3be850d53024fe38d720c56550710d571ff30f6f168
5
5
  SHA512:
6
- metadata.gz: b722e0b97aa4756598af38ac95c35939a871dfa23fc7e65b27adb8bd2d8c8131fb99def84ecd25836aa7d7d917280a4476022fdb9eda22e648fe7228410b4797
7
- data.tar.gz: 7bbe358f347509e54db469d57d0ac5effa29658494c81abcfcafec151201790072e0dbd51fbfd33f7cefeccd6d4015ce803ceda1be658b879f5d7de84c3d2e3d
6
+ metadata.gz: 5edbc325b5309269fc22e12dc383b3bdb5690b973c9b2fbe2183032ad9c329e60092fff97b5e01286650151c0025e8dedafde024b74260705c2dd5c68187192e
7
+ data.tar.gz: eb9a240df2c9a1f76d2c415dcab02505ee62e8cb2cfd77beb0053f85ce91d902cc0bc349c6504e8b0c6ddf2c4a5986b24c93c8830701fc9b0df4f3d6a0ad2d64
@@ -1,5 +1,5 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.2
5
- before_install: gem install bundler -v 1.16.0
4
+ - 2.6.3
5
+ before_install: gem install bundler -v 2.1.4
data/Gemfile CHANGED
@@ -4,3 +4,10 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in mongoid-denormalization.gemspec
6
6
  gemspec
7
+
8
+ group :test do
9
+ gem 'mongoid'
10
+ gem 'pry'
11
+ gem 'rspec'
12
+ gem 'database_cleaner'
13
+ end
@@ -1,35 +1,66 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mongoid-denormalization (1.0.0)
4
+ mongoid-denormalization (3.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- diff-lcs (1.3)
10
- rake (10.5.0)
11
- rspec (3.6.0)
12
- rspec-core (~> 3.6.0)
13
- rspec-expectations (~> 3.6.0)
14
- rspec-mocks (~> 3.6.0)
15
- rspec-core (3.6.0)
16
- rspec-support (~> 3.6.0)
17
- rspec-expectations (3.6.0)
9
+ activemodel (6.0.3.2)
10
+ activesupport (= 6.0.3.2)
11
+ activesupport (6.0.3.2)
12
+ concurrent-ruby (~> 1.0, >= 1.0.2)
13
+ i18n (>= 0.7, < 2)
14
+ minitest (~> 5.1)
15
+ tzinfo (~> 1.1)
16
+ zeitwerk (~> 2.2, >= 2.2.2)
17
+ bson (4.9.4)
18
+ coderay (1.1.3)
19
+ concurrent-ruby (1.1.6)
20
+ database_cleaner (1.8.5)
21
+ diff-lcs (1.4.4)
22
+ i18n (1.8.3)
23
+ concurrent-ruby (~> 1.0)
24
+ method_source (1.0.0)
25
+ minitest (5.14.1)
26
+ mongo (2.12.1)
27
+ bson (>= 4.8.2, < 5.0.0)
28
+ mongoid (7.1.2)
29
+ activemodel (>= 5.1, < 6.1)
30
+ mongo (>= 2.7.0, < 3.0.0)
31
+ pry (0.13.1)
32
+ coderay (~> 1.1)
33
+ method_source (~> 1.0)
34
+ rake (13.0.1)
35
+ rspec (3.9.0)
36
+ rspec-core (~> 3.9.0)
37
+ rspec-expectations (~> 3.9.0)
38
+ rspec-mocks (~> 3.9.0)
39
+ rspec-core (3.9.2)
40
+ rspec-support (~> 3.9.3)
41
+ rspec-expectations (3.9.2)
18
42
  diff-lcs (>= 1.2.0, < 2.0)
19
- rspec-support (~> 3.6.0)
20
- rspec-mocks (3.6.0)
43
+ rspec-support (~> 3.9.0)
44
+ rspec-mocks (3.9.1)
21
45
  diff-lcs (>= 1.2.0, < 2.0)
22
- rspec-support (~> 3.6.0)
23
- rspec-support (3.6.0)
46
+ rspec-support (~> 3.9.0)
47
+ rspec-support (3.9.3)
48
+ thread_safe (0.3.6)
49
+ tzinfo (1.2.7)
50
+ thread_safe (~> 0.1)
51
+ zeitwerk (2.3.1)
24
52
 
25
53
  PLATFORMS
26
54
  ruby
27
55
 
28
56
  DEPENDENCIES
29
- bundler (~> 1.16)
57
+ bundler (~> 2.1.4)
58
+ database_cleaner
59
+ mongoid
30
60
  mongoid-denormalization!
31
- rake (~> 10.0)
32
- rspec (~> 3.0)
61
+ pry
62
+ rake (~> 13.0)
63
+ rspec
33
64
 
34
65
  BUNDLED WITH
35
- 1.17.2
66
+ 2.1.4
@@ -66,7 +66,7 @@ module Mongoid
66
66
  # end
67
67
 
68
68
  to_klass_roots = to_klass_infos.map{|to_klass_info| to_klass_info[:klasses].map(&:to_s)}.flatten.uniq
69
- from_klass = self.relations[relation.to_s][:class_name].constantize
69
+ from_klass = self.relations[relation.to_s].class_name.constantize
70
70
 
71
71
  field_type = from_klass.fields[field_name.to_s].options[:type] if field_terms.size == 1 && field_name.to_s != "_type"
72
72
  field_type ||= String
@@ -117,14 +117,14 @@ module Mongoid
117
117
  changed_fn = "#{field_terms[0]}_changed?"
118
118
  changed_fn = "asset_filename_changed?" if field_terms[0].to_s == "asset"
119
119
  if from_doc.send(changed_fn)
120
- field_value = ::AcDenormalize::Helpers.field_value(from_doc, field_terms)
121
- ::AcDenormalize::Helpers.update_from_klass_changes(to_klass_infos, from_doc.id, field_value)
120
+ field_value = ::Mongoid::Denormalization::Helpers.field_value(from_doc, field_terms)
121
+ ::Mongoid::Denormalization::Helpers.update_from_klass_changes(to_klass_infos, from_doc.id, field_value)
122
122
  end
123
123
  end
124
124
 
125
125
  after_destroy do |from_doc|
126
126
  field_value = nil
127
- ::AcDenormalize::Helpers.update_from_klass_changes(to_klass_infos, from_doc.id, field_value)
127
+ ::Mongoid::Denormalization::Helpers.update_from_klass_changes(to_klass_infos, from_doc.id, field_value)
128
128
  end
129
129
  end
130
130
 
@@ -141,7 +141,7 @@ module Mongoid
141
141
  from_doc = self.send(relation)
142
142
  return nil if from_doc.blank?
143
143
 
144
- field_value = ::AcDenormalize::Helpers.field_value(from_doc, field_terms)
144
+ field_value = ::Mongoid::Denormalization::Helpers.field_value(from_doc, field_terms)
145
145
 
146
146
  if use_denormalized
147
147
  self.send("#{denormalized_field_name}=", field_value)
@@ -158,7 +158,7 @@ module Mongoid
158
158
  from_doc = self.send(relation)
159
159
  return nil if from_doc.blank?
160
160
 
161
- field_value = ::AcDenormalize::Helpers.field_value(from_doc, field_terms)
161
+ field_value = ::Mongoid::Denormalization::Helpers.field_value(from_doc, field_terms)
162
162
  self.send("#{denormalized_field_name}=", field_value)
163
163
  return true
164
164
  end
@@ -169,7 +169,7 @@ module Mongoid
169
169
  from_doc = self.send(relation)
170
170
  return nil if from_doc.blank?
171
171
 
172
- field_value = ::AcDenormalize::Helpers.field_value(from_doc, field_terms)
172
+ field_value = ::Mongoid::Denormalization::Helpers.field_value(from_doc, field_terms)
173
173
  self.set(denormalized_field_name.to_sym => field_value)
174
174
  end
175
175
 
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module Denormalization
3
- VERSION = "1.0.0"
3
+ VERSION = "3.0.0"
4
4
  end
5
5
  end
@@ -0,0 +1,39 @@
1
+ namespace :db do
2
+ desc "Verify all denormalizations and repair any inconsistencies"
3
+ task :denormalization => :environment do
4
+ get_denormalizable_models.each do |klass|
5
+ if klass.embedded?
6
+ reflection = klass.reflect_on_all_associations(:embedded_in).first
7
+ parent = reflection.class_name.to_s.classify.constantize
8
+
9
+ unless parent.embedded?
10
+ parent.all.each do |parent_instance|
11
+ parent_instance.send(reflection.inverse).each(&:repair_denormalized!)
12
+ end
13
+ end
14
+ else
15
+ klass.all.each do |instance|
16
+ instance.repair_denormalized!
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ def get_denormalizable_models
23
+ documents = []
24
+ Dir.glob("app/models/**/*.rb").sort.each do |file|
25
+ model_path = file[0..-4].split('/')[2..-1]
26
+ begin
27
+ klass = model_path.map(&:classify).join('::').constantize
28
+
29
+ if klass.ancestors.include?(Mongoid::Document) && klass.ancestors.include?(Mongoid::Denormalization)
30
+ documents << klass
31
+ end
32
+ rescue => e
33
+ # Just for non-mongoid objects that dont have the embedded
34
+ # attribute at the class level.
35
+ end
36
+ end
37
+ documents
38
+ end
39
+ end
@@ -0,0 +1,9 @@
1
+ require 'rails'
2
+
3
+ module Mongoid::Denormalization
4
+ class Railtie < Rails::Railtie
5
+ rake_tasks do
6
+ load 'railties/denormalize.rake'
7
+ end
8
+ end
9
+ end
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_development_dependency "bundler", "~> 1.16"
34
- spec.add_development_dependency "rake", "~> 10.0"
33
+ spec.add_development_dependency "bundler", "~> 2.1.4"
34
+ spec.add_development_dependency "rake", "~> 13.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.0"
36
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-denormalization
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amit Chaudhary
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-07 00:00:00.000000000 Z
11
+ date: 2020-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: 2.1.4
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: 2.1.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,12 +72,14 @@ files:
72
72
  - bin/setup
73
73
  - lib/mongoid/denormalization.rb
74
74
  - lib/mongoid/denormalization/version.rb
75
+ - lib/railties/denormalization.rake
76
+ - lib/railties/railtie.rb
75
77
  - mongoid-denormalization.gemspec
76
78
  homepage: http://github.com/chaudhary/mongoid-denormalization
77
79
  licenses:
78
80
  - MIT
79
81
  metadata: {}
80
- post_install_message:
82
+ post_install_message:
81
83
  rdoc_options: []
82
84
  require_paths:
83
85
  - lib
@@ -92,8 +94,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
94
  - !ruby/object:Gem::Version
93
95
  version: '0'
94
96
  requirements: []
95
- rubygems_version: 3.0.3
96
- signing_key:
97
+ rubygems_version: 3.0.8
98
+ signing_key:
97
99
  specification_version: 4
98
100
  summary: Mongoid denormalization helper module
99
101
  test_files: []