custom_fields 2.4.0.rc5 → 2.5.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 +4 -4
- data/README.md +5 -5
- data/lib/custom_fields/extensions/mongoid/attributes.rb +14 -0
- data/lib/custom_fields/source.rb +2 -2
- data/lib/custom_fields/types/belongs_to.rb +5 -2
- data/lib/custom_fields/types/file.rb +19 -1
- data/lib/custom_fields/version.rb +1 -1
- data/lib/custom_fields.rb +1 -0
- metadata +12 -137
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a2d0f1cab5f7e3c7153f38202b4a77b8f466e04d
|
|
4
|
+
data.tar.gz: eb6e1f46553f3a565939c16ecd15ae5ab6613d87
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bef098cd02a0e26ef093432d3dd3233d361b8e4cec1d32c88f94928c7644e9653974e8789bbed6609f5e550c54225997de3130da7f16605fdb607cce56efd3a6
|
|
7
|
+
data.tar.gz: dd15ddff7b81739385881fbd93e3897ca511db4a6fce1b8aa1eb1df3770848280077eb176e041e0e2c54006d04d724075d685db00c58ea1b7c7fb92752028896
|
data/README.md
CHANGED
|
@@ -16,8 +16,8 @@ The main goals:
|
|
|
16
16
|
Requirements
|
|
17
17
|
------------
|
|
18
18
|
|
|
19
|
-
* MongoDB
|
|
20
|
-
* Mongoid
|
|
19
|
+
* MongoDB 3.x
|
|
20
|
+
* Mongoid 5.x
|
|
21
21
|
* ActiveSupport 4.2.x
|
|
22
22
|
|
|
23
23
|
Examples
|
|
@@ -88,12 +88,12 @@ Run `COVERAGE=true rspec` or `COVERAGE=true rake`.
|
|
|
88
88
|
Contact
|
|
89
89
|
-------
|
|
90
90
|
|
|
91
|
-
Feel free to contact me at
|
|
91
|
+
Feel free to contact me at did at locomotivecms dot com.
|
|
92
92
|
|
|
93
93
|
License
|
|
94
94
|
-------
|
|
95
95
|
|
|
96
|
-
Copyright (c) 2013-
|
|
96
|
+
Copyright (c) 2013-2016 NoCoffee, released under the [MIT License (MIT)], see [LICENSE].
|
|
97
97
|
|
|
98
98
|
[CustomFields]: https://github.com/locomotivecms/custom_fields "Custom fields extension for Mongoid."
|
|
99
99
|
[Gemnasium]: https://gemnasium.com/locomotivecms/custom_fields "CustomFields at Gemnasium"
|
|
@@ -101,4 +101,4 @@ Copyright (c) 2013-2015 NoCoffee, released under the [MIT License (MIT)], see [L
|
|
|
101
101
|
[LICENSE]: https://raw.githubusercontent.com/locomotivecms/custom_fields/master/LICENSE "License"
|
|
102
102
|
[MIT License (MIT)]: http://opensource.org/licenses/MIT "The MIT License (MIT)"
|
|
103
103
|
[Travis CI]: https://travis-ci.org/locomotivecms/custom_fields "CustomFields at Travis CI"
|
|
104
|
-
[Travis CI Status]: https://img.shields.io/travis/locomotivecms/custom_fields.svg?style=flat "Travis CI Status"
|
|
104
|
+
[Travis CI Status]: https://img.shields.io/travis/locomotivecms/custom_fields.svg?style=flat "Travis CI Status"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Mongoid
|
|
2
|
+
module Attributes
|
|
3
|
+
|
|
4
|
+
# FIXME: ::Mongoid::Fields::I18n.locale is also a valid locale
|
|
5
|
+
def selection_included?(name, selection, field)
|
|
6
|
+
if field && field.localized?
|
|
7
|
+
selection.has_key?("#{name}.#{::I18n.locale}") || selection.has_key?("#{name}.#{::Mongoid::Fields::I18n.locale}")
|
|
8
|
+
else
|
|
9
|
+
selection.has_key?(name)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
data/lib/custom_fields/source.rb
CHANGED
|
@@ -180,7 +180,7 @@ module CustomFields
|
|
|
180
180
|
next if _fields.empty?
|
|
181
181
|
|
|
182
182
|
_operation = { "$#{operation_name}" => _fields }
|
|
183
|
-
collection.find(selector).
|
|
183
|
+
collection.find(selector).update_many _operation
|
|
184
184
|
end
|
|
185
185
|
end
|
|
186
186
|
|
|
@@ -214,7 +214,7 @@ module CustomFields
|
|
|
214
214
|
next if updates.empty?
|
|
215
215
|
|
|
216
216
|
collection = self.send(name).collection
|
|
217
|
-
collection.find(record.atomic_selector).
|
|
217
|
+
collection.find(record.atomic_selector).update_one({ '$set' => updates })
|
|
218
218
|
end
|
|
219
219
|
end
|
|
220
220
|
|
|
@@ -11,7 +11,7 @@ module CustomFields
|
|
|
11
11
|
included do
|
|
12
12
|
|
|
13
13
|
def belongs_to_to_recipe
|
|
14
|
-
{ 'class_name' => self.class_name }
|
|
14
|
+
{ 'class_name' => self.class_name, 'inverse_of' => self.inverse_of }
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def belongs_to_is_relationship?
|
|
@@ -42,7 +42,10 @@ module CustomFields
|
|
|
42
42
|
|
|
43
43
|
klass.field position_name, type: ::Integer, default: 0
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
options = { class_name: rule['class_name'] }
|
|
46
|
+
options[:inverse_of] = rule['inverse_of'] unless rule['inverse_of'].blank? # an empty String can cause weird behaviours
|
|
47
|
+
|
|
48
|
+
klass.belongs_to rule['name'].to_sym, options
|
|
46
49
|
|
|
47
50
|
if rule['required']
|
|
48
51
|
klass.validates_presence_of rule['name'].to_sym
|
|
@@ -27,7 +27,11 @@ module CustomFields
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
if rule['required']
|
|
30
|
-
klass.validates_presence_of name
|
|
30
|
+
# FIXME: previously, we called "klass.validates_presence_of name"
|
|
31
|
+
# but it didn't work well with localized fields.
|
|
32
|
+
klass.validate do |object|
|
|
33
|
+
UploaderPresenceValidator.new(object, name).validate
|
|
34
|
+
end
|
|
31
35
|
end
|
|
32
36
|
end
|
|
33
37
|
|
|
@@ -64,6 +68,20 @@ module CustomFields
|
|
|
64
68
|
|
|
65
69
|
end
|
|
66
70
|
|
|
71
|
+
class UploaderPresenceValidator
|
|
72
|
+
|
|
73
|
+
def initialize(document, name)
|
|
74
|
+
@document, @name = document, name
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def validate
|
|
78
|
+
if @document.send(@name).blank?
|
|
79
|
+
@document.errors.add(@name, :blank)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
|
84
|
+
|
|
67
85
|
class FileUploader < ::CarrierWave::Uploader::Base
|
|
68
86
|
end
|
|
69
87
|
|
data/lib/custom_fields.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: custom_fields
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Didier Lafforgue
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2016-01-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mongoid
|
|
@@ -16,182 +16,56 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 5.0.2
|
|
20
20
|
type: :runtime
|
|
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:
|
|
26
|
+
version: 5.0.2
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: carrierwave-mongoid
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.
|
|
33
|
+
version: 0.8.1
|
|
34
34
|
type: :runtime
|
|
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: 0.
|
|
40
|
+
version: 0.8.1
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: activesupport
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 4.2.
|
|
47
|
+
version: 4.2.5
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 4.2.
|
|
54
|
+
version: 4.2.5
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: monetize
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 1.1
|
|
61
|
+
version: 1.3.1
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 1.1
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: rake
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '10.4'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '10.4'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: pry
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0.10.1
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: 0.10.1
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: rspec
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - "~>"
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: 3.1.0
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - "~>"
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: 3.1.0
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rspec-its
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - "~>"
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: 1.1.0
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - "~>"
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: 1.1.0
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: mocha
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - "~>"
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: 1.1.0
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - "~>"
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: 1.1.0
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: simplecov
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - "~>"
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: 0.9.1
|
|
146
|
-
type: :development
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - "~>"
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: 0.9.1
|
|
153
|
-
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: database_cleaner
|
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
|
156
|
-
requirements:
|
|
157
|
-
- - "~>"
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
version: 1.3.0
|
|
160
|
-
type: :development
|
|
161
|
-
prerelease: false
|
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
-
requirements:
|
|
164
|
-
- - "~>"
|
|
165
|
-
- !ruby/object:Gem::Version
|
|
166
|
-
version: 1.3.0
|
|
167
|
-
- !ruby/object:Gem::Dependency
|
|
168
|
-
name: RedCloth
|
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
|
170
|
-
requirements:
|
|
171
|
-
- - "~>"
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
version: 4.2.9
|
|
174
|
-
type: :development
|
|
175
|
-
prerelease: false
|
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
-
requirements:
|
|
178
|
-
- - "~>"
|
|
179
|
-
- !ruby/object:Gem::Version
|
|
180
|
-
version: 4.2.9
|
|
181
|
-
- !ruby/object:Gem::Dependency
|
|
182
|
-
name: yard
|
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
|
184
|
-
requirements:
|
|
185
|
-
- - "~>"
|
|
186
|
-
- !ruby/object:Gem::Version
|
|
187
|
-
version: 0.8.7
|
|
188
|
-
type: :development
|
|
189
|
-
prerelease: false
|
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
-
requirements:
|
|
192
|
-
- - "~>"
|
|
193
|
-
- !ruby/object:Gem::Version
|
|
194
|
-
version: 0.8.7
|
|
68
|
+
version: 1.3.1
|
|
195
69
|
description: Manage custom fields to a Mongoid document or a collection. This module
|
|
196
70
|
is one of the core features we implemented in our custom CMS, named LocomotiveCMS.
|
|
197
71
|
email: didier@nocoffee.fr
|
|
@@ -211,6 +85,7 @@ files:
|
|
|
211
85
|
- lib/custom_fields.rb
|
|
212
86
|
- lib/custom_fields/extensions/active_support.rb
|
|
213
87
|
- lib/custom_fields/extensions/carrierwave.rb
|
|
88
|
+
- lib/custom_fields/extensions/mongoid/attributes.rb
|
|
214
89
|
- lib/custom_fields/extensions/mongoid/document.rb
|
|
215
90
|
- lib/custom_fields/extensions/mongoid/factory.rb
|
|
216
91
|
- lib/custom_fields/extensions/mongoid/fields.rb
|
|
@@ -264,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
264
139
|
version: '2.4'
|
|
265
140
|
requirements: []
|
|
266
141
|
rubyforge_project:
|
|
267
|
-
rubygems_version: 2.4.5
|
|
142
|
+
rubygems_version: 2.4.5.1
|
|
268
143
|
signing_key:
|
|
269
144
|
specification_version: 4
|
|
270
145
|
summary: Custom fields extension for Mongoid.
|