custom_fields 2.1.0.rc2 → 2.1.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.
data/lib/custom_fields.rb
CHANGED
@@ -20,10 +20,12 @@ module CustomFields
|
|
20
20
|
end
|
21
21
|
|
22
22
|
require 'custom_fields/version'
|
23
|
+
require 'custom_fields/extensions/active_support'
|
23
24
|
require 'custom_fields/extensions/carrierwave'
|
24
25
|
require 'custom_fields/extensions/mongoid/document'
|
25
26
|
require 'custom_fields/extensions/mongoid/factory'
|
26
27
|
require 'custom_fields/extensions/mongoid/relations/referenced/many'
|
28
|
+
require 'custom_fields/extensions/mongoid/relations/referenced/in'
|
27
29
|
require 'custom_fields/extensions/mongoid/fields.rb'
|
28
30
|
require 'custom_fields/extensions/mongoid/fields/i18n.rb'
|
29
31
|
require 'custom_fields/extensions/mongoid/fields/internal/localized.rb'
|
@@ -1,12 +1,28 @@
|
|
1
|
-
|
1
|
+
class String
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
def constantize_with_custom_fields
|
4
|
+
begin
|
5
|
+
constantize_without_custom_fields
|
6
|
+
rescue NameError => exception
|
7
|
+
# DEBUG: puts "constantizing #{self.inspect}"
|
8
|
+
# alright, does it look like a custom_fields dynamic klass ?
|
9
|
+
if self =~ /(.*)([0-9a-fA-F]{24})$/
|
10
|
+
base = $1.constantize
|
11
|
+
# we can know it for sure
|
12
|
+
if base.with_custom_fields?
|
13
|
+
relation = base.relations.values.detect { |metadata| metadata[:custom_fields_parent_klass] == true }
|
14
|
+
|
15
|
+
# load the class which holds the recipe to build the dynamic klass
|
16
|
+
if relation && parent_instance = relation.klass.find($2)
|
17
|
+
# DEBUG: puts "re-building #{self}"
|
18
|
+
return parent_instance.klass_with_custom_fields(relation.inverse_of)
|
19
|
+
end
|
20
|
+
end
|
8
21
|
end
|
22
|
+
# not a custom_fields dynamic klass or unable to re-build it
|
23
|
+
raise exception
|
9
24
|
end
|
10
25
|
end
|
11
26
|
|
27
|
+
alias_method_chain :constantize, :custom_fields
|
12
28
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid # :nodoc:
|
3
|
+
module Relations #:nodoc:
|
4
|
+
module Referenced #:nodoc:
|
5
|
+
|
6
|
+
class In < Relations::One
|
7
|
+
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def valid_options
|
11
|
+
[:autosave, :foreign_key, :index, :polymorphic, :custom_fields_parent_klass]
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/custom_fields/source.rb
CHANGED
@@ -63,7 +63,7 @@ module CustomFields
|
|
63
63
|
#
|
64
64
|
def custom_fields_recipe_for(name)
|
65
65
|
{
|
66
|
-
'name' => "#{name.to_s.
|
66
|
+
'name' => "#{self.relations[name.to_s].class_name.demodulize}#{self._id}",
|
67
67
|
'rules' => self.ordered_custom_fields(name).map(&:to_recipe),
|
68
68
|
'version' => self.custom_fields_version(name)
|
69
69
|
}
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: custom_fields
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
version: 2.1.0
|
4
|
+
prerelease:
|
5
|
+
version: 2.1.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Didier Lafforgue
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
type: :runtime
|
@@ -223,6 +223,7 @@ files:
|
|
223
223
|
- lib/custom_fields/extensions/mongoid/fields/i18n.rb
|
224
224
|
- lib/custom_fields/extensions/mongoid/fields/internal/localized.rb
|
225
225
|
- lib/custom_fields/extensions/mongoid/fields.rb
|
226
|
+
- lib/custom_fields/extensions/mongoid/relations/referenced/in.rb
|
226
227
|
- lib/custom_fields/extensions/mongoid/relations/referenced/many.rb
|
227
228
|
- lib/custom_fields/field.rb
|
228
229
|
- lib/custom_fields/source.rb
|
@@ -258,7 +259,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
258
259
|
- !ruby/object:Gem::Version
|
259
260
|
segments:
|
260
261
|
- 0
|
261
|
-
hash: -
|
262
|
+
hash: -3490434094111046422
|
262
263
|
version: '0'
|
263
264
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
264
265
|
none: false
|