Method: Spider::Model::BaseModel#load
- Defined in:
- lib/spiderfw/model/base_model.rb
#load(*params) ⇒ Object
Loads the object from the storage Acceptable arguments are:
-
a Query object, or
-
a Request object, or a Hash, which will be converted to a Request, or
-
a list of elements to request
It will then construct a Condition with current primary keys, and call Mapper#load Note that an error will be raised by the Mapper if not all primary keys are set.
2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 |
# File 'lib/spiderfw/model/base_model.rb', line 2269 def load(*params) if (params[0].is_a? Query) query = params[0] else return false unless primary_keys_set? query = Query.new if (params[0].is_a?(Request)) query.request = params.shift elsif (params[0].is_a?(Hash)) query.request = Request.new(params.shift) end elements = params.length > 0 ? params : self.class.elements.keys return true unless elements.select{ |el| !element_loaded?(el) }.length > 0 elements.each do |name| query.request[name] = true end query.condition.conjunction = :and self.class.primary_keys.each do |key| query.condition[key.name] = get(key.name) end end #clear_values() return mapper.load(self, query) end |