custom_fields 2.0.0.rc9 → 2.0.0.rc10

Sign up to get free protection for your applications and to get access to all the features.
@@ -41,10 +41,20 @@ module CustomFields
41
41
  _order_by = rule['order_by'] || position_name.to_sym.asc
42
42
 
43
43
  klass.has_many rule['name'], :class_name => rule['class_name'], :inverse_of => rule['inverse_of'], :order => _order_by do
44
- def ordered
45
- # calling all on a has_many relationship makes us lose the default order_by (mongoid bug ?)
46
- order(metadata.order)
44
+
45
+ def filtered(conditions = {}, order_by = nil)
46
+ list = conditions.empty? ? self : self.where(conditions)
47
+
48
+ if order_by
49
+ list.order_by(order_by)
50
+ else
51
+ # calling all on a has_many relationship makes us lose the default order_by (mongoid bug ?)
52
+ list.order(metadata.order)
53
+ end
47
54
  end
55
+
56
+ alias :ordered :filtered # backward compatibility + semantic purpose
57
+
48
58
  end
49
59
 
50
60
  klass.accepts_nested_attributes_for rule['name'], :allow_destroy => true
@@ -37,12 +37,22 @@ module CustomFields
37
37
  # puts "#{klass.inspect}.many_to_many #{rule['name'].inspect}, :class_name => #{rule['class_name'].inspect} / #{rule['order_by']}" # DEBUG
38
38
 
39
39
  klass.has_and_belongs_to_many rule['name'], :class_name => rule['class_name'], :inverse_of => rule['inverse_of'], :order => rule['order_by'] do
40
- def ordered
41
- # use the natural order given by the initial array (ex: project_ids).
42
- # Warning: it returns an array and not a criteria object.
43
- ids = base.send(metadata.key.to_sym)
44
- entries.sort { |a, b| ids.index(a.id) <=> ids.index(b.id) }
40
+
41
+ def filtered(conditions = {}, order_by = nil)
42
+ list = conditions.empty? ? self : self.where(conditions)
43
+
44
+ if order_by
45
+ list.order_by(order_by)
46
+ else
47
+ # use the natural order given by the initial array (ex: project_ids).
48
+ # Warning: it returns an array and not a criteria object meaning it breaks the chain
49
+ ids = base.send(metadata.key.to_sym)
50
+ list.entries.sort { |a, b| ids.index(a.id) <=> ids.index(b.id) }
51
+ end
45
52
  end
53
+
54
+ alias :ordered :filtered # backward compatibility + semantic purpose
55
+
46
56
  end
47
57
 
48
58
  if rule['required']
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  module CustomFields #:nodoc
3
3
 
4
- VERSION = '2.0.0.rc9'
4
+ VERSION = '2.0.0.rc10'
5
5
 
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: custom_fields
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc9
4
+ version: 2.0.0.rc10
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-28 00:00:00.000000000 Z
12
+ date: 2012-04-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
16
- requirement: &2161982360 !ruby/object:Gem::Requirement
16
+ requirement: &2154646680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.4.7
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2161982360
24
+ version_requirements: *2154646680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &2161980580 !ruby/object:Gem::Requirement
27
+ requirement: &2154639060 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.2.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2161980580
35
+ version_requirements: *2154639060
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: carrierwave-mongoid
38
- requirement: &2161980020 !ruby/object:Gem::Requirement
38
+ requirement: &2154637460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.1.3
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2161980020
46
+ version_requirements: *2154637460
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yard
49
- requirement: &2161979240 !ruby/object:Gem::Requirement
49
+ requirement: &2154636400 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.7.3
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2161979240
57
+ version_requirements: *2154636400
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bson
60
- requirement: &2161978560 !ruby/object:Gem::Requirement
60
+ requirement: &2154634480 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.3.1
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2161978560
68
+ version_requirements: *2154634480
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mongo
71
- requirement: &2161977960 !ruby/object:Gem::Requirement
71
+ requirement: &2154632780 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.3.1
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2161977960
79
+ version_requirements: *2154632780
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: bson_ext
82
- requirement: &2161977360 !ruby/object:Gem::Requirement
82
+ requirement: &2154631820 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 1.3.1
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2161977360
90
+ version_requirements: *2154631820
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: mocha
93
- requirement: &2161976680 !ruby/object:Gem::Requirement
93
+ requirement: &2154630820 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.9.12
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *2161976680
101
+ version_requirements: *2154630820
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rspec
104
- requirement: &2161976040 !ruby/object:Gem::Requirement
104
+ requirement: &2154630220 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '2.6'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *2161976040
112
+ version_requirements: *2154630220
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: simplecov
115
- requirement: &2161975180 !ruby/object:Gem::Requirement
115
+ requirement: &2154628180 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 0.6.1
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *2161975180
123
+ version_requirements: *2154628180
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: database_cleaner
126
- requirement: &2161990520 !ruby/object:Gem::Requirement
126
+ requirement: &2154626260 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 0.6.7
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *2161990520
134
+ version_requirements: *2154626260
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: RedCloth
137
- requirement: &2161989780 !ruby/object:Gem::Requirement
137
+ requirement: &2154624500 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: 4.2.8
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *2161989780
145
+ version_requirements: *2154624500
146
146
  description: Manage custom fields to a mongoid document or a collection. This module
147
147
  is one of the core features we implemented in our custom cms named Locomotive.
148
148
  email:
@@ -199,7 +199,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
199
199
  version: '0'
200
200
  segments:
201
201
  - 0
202
- hash: 1479623835310920238
202
+ hash: 3296059201784660447
203
203
  required_rubygems_version: !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements: