1 # $Id: source.rb,v 1.3 2011/11/23 15:55:30 machan Exp $
2
3 require 'tmdoc/tmstd'
4 require 'tmdoc/constant'
5 require 'tmdoc/model/module'
6 require 'tmdoc/model/object'
7
8
9 module TmDoc
10
11 module Transformer::ModuleIntoObject
12
13 module Source
14
15 module_function
16
17 def transform_sources(mm_files)
18 ASSERT.kind_of mm_files, MMP::SetOfFile
19
20 mo_map_of_name_to_file = mm_files.inject(
21 MOP::MapOfNameToFile.new
22 ) { |map, mm_file|
23 mo_file = transform mm_file
24
25 map.update(mo_file.name, mo_file)
26 }
27
28 MOP::Files.new mo_map_of_name_to_file
29 end
30
31
32 def transform(mm_file)
33 ASSERT.kind_of mm_file, MMP::File
34
35 mo_require_files = mm_file.require_files.map {
36 |mm_require_file|
37 ASSERT.kind_of mm_require_file, MMP::RequireFile
38
39 MOP::RequireFile.new(
40 mm_require_file.name,
41 mm_require_file.seq_num
42 )
43 }
44
45 MOP::File.new(
46 mm_file.name,
47 mm_file.seq_num,
48 MOP::SetOfRequireFile.new(mo_require_files)
49 )
50 end
51 end
52
53 end # TmDoc::Transformer::ModuleIntoObject
54
55 end # TmDoc