Module: LightModels::ModelBuilding

Defined in:
lib/lightmodels/model_building.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.verboseObject

Returns the value of attribute verbose.



8
9
10
# File 'lib/lightmodels/model_building.rb', line 8

def verbose
  @verbose
end

Class Method Details

.generate_model_per_file(src, dest, max_nesting = 500, error_handler = nil, &models_generator) ⇒ Object



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/lightmodels/model_building.rb', line 93

def self.generate_model_per_file(src,dest,max_nesting=500,error_handler=nil,&models_generator)
	if not File.exist? dest 
		puts "<Model from #{src}>" if LightModels::ModelBuilding.verbose
		
		if error_handler
			begin
				m = models_generator.call(src)
				LightModels::Serialization.save_model(m,dest,max_nesting)
			rescue Exception => e
				error_handler.call(src,e)
			rescue
				error_handler.call(src,nil)
			end
		else
			m = models_generator.call(src)
			LightModels::Serialization.save_model(m,dest,max_nesting)
		end
	else
		puts "skipping #{src} because #{dest} found" if LightModels::ModelBuilding.verbose 
	end
end

.generate_models_in_dir(src, dest, src_extension, dest_extension, max_nesting = 500, error_handler = nil, &model_creator) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/lightmodels/model_building.rb', line 39

def self.generate_models_in_dir(src,dest,src_extension,dest_extension,max_nesting=500,error_handler=nil,&model_creator)
	puts "== #{src} -> #{dest} ==" if LightModels::ModelBuilding.verbose
	Dir["#{src}/*"].each do |fd|		
		if File.directory? fd
			basename = File.basename(fd)
			generate_models_in_dir("#{src}/#{basename}","#{dest}/#{basename}",src_extension,dest_extension,max_nesting,error_handler,&model_creator)
		else
			if File.extname(fd)==".#{src_extension}"
				translated_simple_name = "#{File.basename(fd, ".#{src_extension}")}.#{dest_extension}"
				translated_name = "#{dest}/#{translated_simple_name}"
				puts "* #{fd} --> #{translated_name}" if LightModels::ModelBuilding.verbose
				generate_model_per_file(fd,translated_name,max_nesting,error_handler,&model_creator)
			end
		end
	end
end

.handle_model_per_file(src, error_handler = nil, model_handler, &models_generator) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/lightmodels/model_building.rb', line 56

def self.handle_model_per_file(src,error_handler=nil,model_handler,&models_generator)
	puts "<Model from #{src}>" if LightModels::ModelBuilding.verbose
	
	if error_handler
		begin
			m = models_generator.call(src)
			model_handler.call(src,m)
		rescue Exception => e
			error_handler.call(src,e)
		rescue
			error_handler.call(src,nil)
		end
	else
		m = models_generator.call(src)
		model_handler.call(src,m)
	end
end

.handle_models_in_dir(src, src_extension, error_handler = nil, model_handler, &model_creator) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/lightmodels/model_building.rb', line 25

def self.handle_models_in_dir(src,src_extension,error_handler=nil,model_handler,&model_creator)
	puts "== #{src} ==" if LightModels::ModelBuilding.verbose
	Dir["#{src}/*"].each do |fd|		
		if File.directory? fd
			basename = File.basename(fd)
			handle_models_in_dir("#{src}/#{basename}",src_extension,error_handler,model_handler,&model_creator)
		else
			if File.extname(fd)==".#{src_extension}"				
				handle_model_per_file(fd,error_handler,model_handler,&model_creator)
			end
		end
	end
end

.handle_serialized_model_per_file(src, error_handler = nil, model_handler, &models_generator) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/lightmodels/model_building.rb', line 74

def self.handle_serialized_model_per_file(src,error_handler=nil,model_handler,&models_generator)
	puts "<Model from #{src}>" if LightModels::ModelBuilding.verbose
	
	if error_handler
		begin
			m = models_generator.call(src)
			model_handler.call(src,m)
		rescue Exception => e
			error_handler.call(src,e)
		rescue
			error_handler.call(src,nil)
		end
	else
		m = models_generator.call(src)
		model_handler.call(src,m)
	end
end

.handle_serialized_models_in_dir(src, src_extension, error_handler = nil, model_handler, &model_creator) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/lightmodels/model_building.rb', line 11

def self.handle_serialized_models_in_dir(src,src_extension,error_handler=nil,model_handler,&model_creator)
	puts "== #{src} ==" if LightModels::ModelBuilding.verbose
	Dir["#{src}/*"].each do |fd|		
		if File.directory? fd
			basename = File.basename(fd)
			handle_serialized_models_in_dir("#{src}/#{basename}",src_extension,error_handler,model_handler,&model_creator)
		else
			if File.extname(fd)==".#{src_extension}"				
				handle_serialized_model_per_file(fd,error_handler,model_handler,&model_creator)
			end
		end
	end
end