shrine-mongoid 1.0.0.beta → 1.0.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
  SHA256:
3
- metadata.gz: 45431f2e800408a6e913a40b3dfa5987d78f431554ebf526bfed1b5e250814e9
4
- data.tar.gz: 592c042cfbeca066f1399b458b933350d109ccd304e835d84245c6f930cc1c7f
3
+ metadata.gz: 652dcb0a00f126f58433cef6a38b376bfac679586cfd77b1cbb16317590d2429
4
+ data.tar.gz: 68deba00590e76f7ea98ea29a006e34f4e902d2716da5acbed574d1022af063f
5
5
  SHA512:
6
- metadata.gz: 121e53e6388fbdc2577be588825e464fcd4f6e50ae8d9358fd954cfc687e6fb0ecc8d8624621e66c234e84b89290ebc664335243922878231da28a5949760b78
7
- data.tar.gz: 6daa8495e1780e7e638120169cb7f4ff95e47d46c6c5721653bdb5c15770f8213a60dd30dbf35df927e44c082e8547736a7d560cca886a657ee493a3710e716b
6
+ metadata.gz: 6040eac599f17b0069dbf5a38a0a02ca98cff2e8271d30b4ef731487d646a26a7d2c357d43321d82194759065c0121e30f29139ad4b87afed0d760abf821d359
7
+ data.tar.gz: 8f32aeb9b0dcbb8292e9d8a365584c4f70e369500b6875670a1f958a9ef10cf5a1c5dfcd6b82b7e33c66a0c0c5964c005c26f45efc3b571ac4f438d1c9afc474
@@ -26,30 +26,21 @@ class Shrine
26
26
  if shrine_class.opts[:mongoid][:validations]
27
27
  # add validation plugin integration
28
28
  model.validate do
29
- next unless send(:"#{name}_attacher").respond_to?(:errors)
30
-
31
- send(:"#{name}_attacher").errors.each do |message|
32
- errors.add(name, message)
33
- end
29
+ send(:"#{name}_attacher").send(:mongoid_validate)
34
30
  end
35
31
  end
36
32
 
37
33
  if shrine_class.opts[:mongoid][:callbacks]
38
34
  model.before_save do
39
- if send(:"#{name}_attacher").changed?
40
- send(:"#{name}_attacher").save
41
- end
35
+ send(:"#{name}_attacher").send(:mongoid_before_save)
42
36
  end
43
37
 
44
38
  model.after_save do
45
- if send(:"#{name}_attacher").changed?
46
- send(:"#{name}_attacher").finalize
47
- send(:"#{name}_attacher").persist
48
- end
39
+ send(:"#{name}_attacher").send(:mongoid_after_save)
49
40
  end
50
41
 
51
42
  model.after_destroy do
52
- send(:"#{name}_attacher").destroy_attached
43
+ send(:"#{name}_attacher").send(:mongoid_after_destroy)
53
44
  end
54
45
  end
55
46
 
@@ -70,6 +61,34 @@ class Shrine
70
61
  module AttacherMethods
71
62
  private
72
63
 
64
+ def mongoid_validate
65
+ return unless respond_to?(:errors)
66
+
67
+ errors.each do |message|
68
+ record.errors.add(name, message)
69
+ end
70
+ end
71
+
72
+ # Calls Attacher#save. Called before model save.
73
+ def mongoid_before_save
74
+ return unless changed?
75
+
76
+ save
77
+ end
78
+
79
+ # Finalizes attachment and persists changes. Called after model save.
80
+ def mongoid_after_save
81
+ return unless changed?
82
+
83
+ finalize
84
+ persist
85
+ end
86
+
87
+ # Deletes attached files. Called after model destroy.
88
+ def mongoid_after_destroy
89
+ destroy_attached
90
+ end
91
+
73
92
  # Saves changes to the model instance, raising exception on validation
74
93
  # errors. Used by the _persistence plugin.
75
94
  def mongoid_persist
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
- gem.name = "shrine-mongoid"
3
- gem.version = "1.0.0.beta"
2
+ gem.name = "shrine-mongoid"
3
+ gem.version = "1.0.0"
4
4
 
5
5
  gem.required_ruby_version = ">= 2.3"
6
6
 
@@ -13,7 +13,7 @@ Gem::Specification.new do |gem|
13
13
  gem.files = Dir["README.md", "LICENSE.txt", "lib/**/*.rb", "*.gemspec"]
14
14
  gem.require_path = "lib"
15
15
 
16
- gem.add_dependency "shrine", ">= 3.0.0.beta2", "< 4"
16
+ gem.add_dependency "shrine", ">= 3.0.0.beta3", "< 4"
17
17
  gem.add_dependency "mongoid", ">= 5.0"
18
18
 
19
19
  gem.add_development_dependency "rake"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shrine-mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janko Marohnić
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-11 00:00:00.000000000 Z
11
+ date: 2019-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shrine
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.0.beta2
19
+ version: 3.0.0.beta3
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '4'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 3.0.0.beta2
29
+ version: 3.0.0.beta3
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '4'
@@ -112,9 +112,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
112
  version: '2.3'
113
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 1.3.1
117
+ version: '0'
118
118
  requirements: []
119
119
  rubygems_version: 3.0.3
120
120
  signing_key: