Method: Ditz::ModelObject.create
- Defined in:
- lib/ditz/model.rb
.create(vals = {}, generator_args = []) ⇒ Object
creates the object, filling in fields from ‘vals’, and throwing a ModelError when it can’t find all the requisite fields
272 273 274 275 276 277 278 279 280 281 282 283 284 285 |
# File 'lib/ditz/model.rb', line 272 def create vals={}, generator_args=[] o = self.new @fields.each do |fname, fopts| val = if(x = vals[fname] || vals[fname.to_s]) x elsif(found, x = generate_field_value(o, fopts, generator_args, :interactive => false)) && found x elsif !fopts[:nil_ok] raise ModelError, "missing required field #{fname.inspect} on #{self.name} object (got #{vals.keys.inspect})" end o.send "#{fname}=", val if val end o end |