shrine-mongoid 1.0.0.beta → 1.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: 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: