mongoid_alize 0.4.2 → 0.4.3
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 +7 -0
- data/lib/mongoid/alize/callback.rb +1 -1
- data/lib/mongoid/alize/to_callback.rb +20 -4
- data/spec/app/models/head.rb +4 -0
- data/spec/app/models/person.rb +5 -1
- data/spec/mongoid/alize/callbacks/to/one_from_one_spec.rb +1 -0
- data/spec/spec_helper.rb +5 -2
- metadata +12 -16
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 82f38f130a43b157a89d24db64a6e480f5ebf4c0
|
4
|
+
data.tar.gz: 631e2a0cb7c8fea2facca96b36b9299f6acc79c3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7a3070a9aeeb79e137bb2cd7afdc4bec9228e05e1ff2f825850e90ff1061c3ca56a8fb7a22c36a02e5ff5d57ce0f74901bffa396ca98d98cf18ae51b913bc306
|
7
|
+
data.tar.gz: 271ebad88154ca6424425c9fedbffb6269364a48cf3173b7a5d5cf84b7e32ea89c8f63254609cb0670aa3382c31206a2dc714593e9a56965f68f80ccd23133f7
|
@@ -62,7 +62,7 @@ module Mongoid
|
|
62
62
|
_denorm_attrs = denorm_attrs
|
63
63
|
if denorm_attrs.is_a?(Proc)
|
64
64
|
klass.send(:define_method, denorm_attrs_name) do |inverse|
|
65
|
-
|
65
|
+
self.instance_exec(inverse, &_denorm_attrs).map(&:to_s)
|
66
66
|
end
|
67
67
|
else
|
68
68
|
klass.send(:define_method, denorm_attrs_name) do |inverse|
|
@@ -31,10 +31,10 @@ module Mongoid
|
|
31
31
|
|
32
32
|
prefixed_name = #{prefixed_name}
|
33
33
|
if is_one
|
34
|
-
|
34
|
+
#{relation_set('prefixed_name', 'field_values')}
|
35
35
|
else
|
36
36
|
#{pull_from_inverse}
|
37
|
-
|
37
|
+
#{relation_push('prefixed_name', 'field_values')}
|
38
38
|
end
|
39
39
|
|
40
40
|
end
|
@@ -56,7 +56,7 @@ module Mongoid
|
|
56
56
|
is_one = #{is_one?}
|
57
57
|
prefixed_name = #{prefixed_name}
|
58
58
|
if is_one
|
59
|
-
|
59
|
+
#{relation_set('prefixed_name', 'nil')}
|
60
60
|
else
|
61
61
|
#{pull_from_inverse}
|
62
62
|
end
|
@@ -71,7 +71,7 @@ module Mongoid
|
|
71
71
|
|
72
72
|
def pull_from_inverse
|
73
73
|
<<-RUBIES
|
74
|
-
|
74
|
+
#{relation_pull('prefixed_name', '{ "_id" => self.id }')}
|
75
75
|
if _f = relation.send(prefixed_name)
|
76
76
|
_f.reject! do |hash|
|
77
77
|
hash["_id"] == self.id
|
@@ -90,6 +90,18 @@ module Mongoid
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
+
def relation_set(field, value)
|
94
|
+
mongoid_4? ? "relation.set(#{field} => #{value})" : "relation.set(#{field}, #{value})"
|
95
|
+
end
|
96
|
+
|
97
|
+
def relation_pull(field, value)
|
98
|
+
mongoid_4? ? "relation.pull(#{field} => #{value})" : "relation.pull(#{field}, #{value})"
|
99
|
+
end
|
100
|
+
|
101
|
+
def relation_push(field, value)
|
102
|
+
mongoid_4? ? "relation.push(#{field} => #{value})" : "relation.push(#{field}, #{value})"
|
103
|
+
end
|
104
|
+
|
93
105
|
def is_one?
|
94
106
|
if inverse_relation
|
95
107
|
if self.inverse_metadata.relation.superclass == Mongoid::Relations::One
|
@@ -142,6 +154,10 @@ module Mongoid
|
|
142
154
|
def direction
|
143
155
|
"to"
|
144
156
|
end
|
157
|
+
|
158
|
+
def mongoid_4?
|
159
|
+
Mongoid::VERSION =~ /^4\./
|
160
|
+
end
|
145
161
|
end
|
146
162
|
end
|
147
163
|
end
|
data/spec/app/models/head.rb
CHANGED
data/spec/app/models/person.rb
CHANGED
@@ -2,10 +2,14 @@ class Person
|
|
2
2
|
include Mongoid::Document
|
3
3
|
include Mongoid::Alize
|
4
4
|
|
5
|
+
if SpecHelper.mongoid_4?
|
6
|
+
include Mongoid::Attributes::Dynamic
|
7
|
+
end
|
8
|
+
|
5
9
|
field :name, type: String
|
6
10
|
field :created_at, type: Time
|
7
11
|
|
8
|
-
if SpecHelper.mongoid_3?
|
12
|
+
if SpecHelper.mongoid_3? || SpecHelper.mongoid_4?
|
9
13
|
field :my_date, type: Date
|
10
14
|
field :my_datetime, type: DateTime
|
11
15
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,6 @@ require 'rubygems'
|
|
2
2
|
require 'mongoid'
|
3
3
|
|
4
4
|
unless ENV['CI']
|
5
|
-
require 'looksee'
|
6
5
|
require 'awesome_print'
|
7
6
|
require 'wirble'
|
8
7
|
end
|
@@ -11,10 +10,14 @@ module SpecHelper
|
|
11
10
|
def self.mongoid_3?
|
12
11
|
defined?(Mongoid::VERSION) && Mongoid::VERSION =~ /^3/
|
13
12
|
end
|
13
|
+
|
14
|
+
def self.mongoid_4?
|
15
|
+
defined?(Mongoid::VERSION) && Mongoid::VERSION =~ /^4/
|
16
|
+
end
|
14
17
|
end
|
15
18
|
|
16
19
|
Mongoid.configure do |config|
|
17
|
-
if SpecHelper.mongoid_3?
|
20
|
+
if SpecHelper.mongoid_3? || SpecHelper.mongoid_4?
|
18
21
|
config.connect_to("mongoid_alize_test")
|
19
22
|
Moped.logger = Logger.new($stdout)
|
20
23
|
Moped.logger.level = Logger::INFO
|
metadata
CHANGED
@@ -1,36 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid_alize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Josh Dzielak
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-05-09 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: mongoid
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '2.4'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '2.4'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -81,27 +76,28 @@ files:
|
|
81
76
|
- spec/mongoid_alize_spec.rb
|
82
77
|
- spec/spec_helper.rb
|
83
78
|
homepage: https://github.com/dzello/mongoid_alize
|
84
|
-
licenses:
|
79
|
+
licenses:
|
80
|
+
- MIT
|
81
|
+
metadata: {}
|
85
82
|
post_install_message:
|
86
83
|
rdoc_options: []
|
87
84
|
require_paths:
|
88
85
|
- lib
|
89
86
|
required_ruby_version: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
87
|
requirements:
|
92
|
-
- -
|
88
|
+
- - '>='
|
93
89
|
- !ruby/object:Gem::Version
|
94
90
|
version: '0'
|
95
91
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
-
none: false
|
97
92
|
requirements:
|
98
|
-
- -
|
93
|
+
- - '>='
|
99
94
|
- !ruby/object:Gem::Version
|
100
95
|
version: '0'
|
101
96
|
requirements: []
|
102
97
|
rubyforge_project:
|
103
|
-
rubygems_version:
|
98
|
+
rubygems_version: 2.0.3
|
104
99
|
signing_key:
|
105
|
-
specification_version:
|
100
|
+
specification_version: 4
|
106
101
|
summary: Comprehensive field denormalization for Mongoid that stays in sync.
|
107
102
|
test_files: []
|
103
|
+
has_rdoc:
|