Method: DataMetaDom::Record#parse
- Defined in:
- lib/dataMetaDom/record.rb
#parse(model, source) ⇒ Object
Parse the Record from the given source into this instance.
-
Parameter:
-
source- an instance of SourceFile to parse from
-
351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 |
# File 'lib/dataMetaDom/record.rb', line 351 def parse(model, source) while (line = source.nextLine) next if docConsumed?(source) case line when /^\s*#{END_KW}\s*$/ if source.docs self.docs = source.docs.clone source.docs.clear end self.ver = source.ver unless self.ver raise "Version missing for the Record #{name}" unless self.ver return self when '' next else isTokenConsumed = false RECORD_LEVEL_TOKENS.each { |t| isTokenConsumed = t.consumed? source, self break if isTokenConsumed } unless isTokenConsumed raise ArgumentError, "Record #{@name}: all field declarations must precede identity" if @identity Field.consume(model, source, self) end resetEntity end # case line end # while line self # for call chaining end |