omf_sfa 0.2.0 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
@@ -98,7 +98,7 @@ module OMF::SFA::Resource
|
|
98
98
|
# end
|
99
99
|
# end
|
100
100
|
|
101
|
-
def self.prop_all(query, resource_class = nil)
|
101
|
+
def self.prop_all(query, opts = {}, resource_class = nil)
|
102
102
|
i = 0
|
103
103
|
where = query.map do |pn, v|
|
104
104
|
h = _analyse_value(v)
|
@@ -117,7 +117,10 @@ module OMF::SFA::Resource
|
|
117
117
|
table = storage_names[:default]
|
118
118
|
from = i.times.map {|j| "#{table} AS p#{j}" }
|
119
119
|
from << "omf_sfa_resource_o_resources AS r" # TODO: Shouldn't hard-code that
|
120
|
-
q = "SELECT r.id, r.type, r.uuid, r.name FROM #{from.join(', ')} WHERE #{where.join(' AND ')};"
|
120
|
+
q = "SELECT DISTINCT r.id, r.type, r.uuid, r.name FROM #{from.join(', ')} WHERE #{where.join(' AND ')};"
|
121
|
+
if l = opts[:limit]
|
122
|
+
q += " LIMIT #{l} OFFSET #{opts[:offset] || 0}"
|
123
|
+
end
|
121
124
|
debug "prop_all q: #{q}"
|
122
125
|
res = repository(:default).adapter.select(q)
|
123
126
|
ores = res.map do |qr|
|
@@ -284,6 +287,7 @@ module OMF::SFA::Resource
|
|
284
287
|
p = OProperty.create(name: @name, o_resource: @resource)
|
285
288
|
if @on_set_block
|
286
289
|
val = @on_set_block.call(val)
|
290
|
+
return if val.nil? #
|
287
291
|
end
|
288
292
|
p.value = val
|
289
293
|
self
|
@@ -145,6 +145,7 @@ module OMF::SFA::Resource
|
|
145
145
|
define_method "#{name}=" do |v|
|
146
146
|
if sf = opts[:set_filter]
|
147
147
|
v = self.send(sf, v)
|
148
|
+
return if v.nil? #
|
148
149
|
end
|
149
150
|
return if (old = oproperty_get(name)) == v
|
150
151
|
oproperty_set(name, v)
|
@@ -166,8 +167,11 @@ module OMF::SFA::Resource
|
|
166
167
|
end
|
167
168
|
end
|
168
169
|
|
169
|
-
|
170
|
-
|
170
|
+
# param opts :limit
|
171
|
+
# param opts :offset
|
172
|
+
#
|
173
|
+
def self.prop_all(query, opts = {})
|
174
|
+
OProperty.prop_all(query, opts, self)
|
171
175
|
end
|
172
176
|
|
173
177
|
# Clone this resource this resource. However, the clone will have a unique UUID
|
data/lib/omf-sfa/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omf_sfa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-02-
|
12
|
+
date: 2014-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|