Class: Risu::Base::PostProcessManager

Inherits:
Object
  • Object
show all
Defined in:
lib/risu/base/post_process_manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ Object

Creates new instance of TemplateManager



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/risu/base/post_process_manager.rb', line 33

def initialize path
	@registered_postprocesses = Array.new
	@postprocesses = Array.new

	base_dir = __FILE__.gsub("risu/base/post_process_manager.rb", "")

	load_postprocesses(base_dir + path)
	load_postprocesses(Dir.pwd, false)
	load_postprocesses(File.expand_path(USER_TEMPLATES_DIR)) if File.exist?(File.expand_path(USER_TEMPLATES_DIR)) && File.directory?(File.expand_path(USER_TEMPLATES_DIR))

	sort
end

Instance Attribute Details

#registered_postprocessesObject

Returns the value of attribute registered_postprocesses.



26
27
28
# File 'lib/risu/base/post_process_manager.rb', line 26

def registered_postprocesses
  @registered_postprocesses
end

Instance Method Details

#display_postprocessesObject

Displays a list of all the templates to STDOUT



103
104
105
106
107
108
109
110
111
112
# File 'lib/risu/base/post_process_manager.rb', line 103

def display_postprocesses
	puts "Available Post Processing"
  @registered_postprocesses.each do |p|
      if p.info[:plugin_id] != nil
      	puts "\t#{p.info[:description]} (#{p.info[:plugin_id]})\n"
      else
      	puts "\t#{p.info[:description]}"
      end
    end
end

#load_postprocesses(path, recursive = true) ⇒ Object

Loads templates from a specific path



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/risu/base/post_process_manager.rb', line 60

def load_postprocesses(path, recursive=true)
	begin

		search_path = "#{path}/**/*.rb" if recursive == true
		search_path = "#{path}/*.rb" if recursive == false

		Dir[search_path].each do |x|
			begin
				require x
			rescue => e
				#puts e.inspect
				#puts e.backtrace
				next
			end
		end

	  PostProcessBase.possible_postprocesses.each do |p|
	    if validate(p) ==  true
	      @postprocesses << p if @postprocesses.include?(p) == false
	    end
	  end
	rescue => e
		puts "[!] Invalid post processing path"
		puts e.inspect
				puts e.backtrace
	end
end

#sortObject



46
47
48
49
50
51
52
53
54
55
# File 'lib/risu/base/post_process_manager.rb', line 46

def sort
	@postprocesses.each do |klass|
		k = klass.new
		@registered_postprocesses << k
	end

	@registered_postprocesses.sort! do |a,b|
		a <=> b
	end
end

#validate(template) ⇒ Boolean

Validates that a template is a valid template



95
96
97
98
99
100
# File 'lib/risu/base/post_process_manager.rb', line 95

def validate template
	t = template.new

	return false if t == nil
	return t.instance_variable_defined?("@info")
end