]> git.sesse.net Git - mlt/blob - src/swig/ruby/metadata.rb
Add ruby script to generate wiki text files.
[mlt] / src / swig / ruby / metadata.rb
1 #!/usr/bin/env ruby
2 require 'mlt'
3
4 $repo = Mlt::Factory::init
5
6 def output(mlt_type, services, type_title)
7   index = File.open("Plugins#{type_title}s.txt", 'w')
8   index.puts '%META:TOPICPARENT{name="Documentation"}%'
9   index.puts "---+ #{type_title} Plugins"
10   (0..(services.count - 1)).each {|i|
11     name = services.get_name(i)
12     meta = $repo.metadata(mlt_type, name)
13     if meta.is_valid
14       filename = type_title + name.capitalize.gsub('.', '-')
15       File.open(filename + '.txt', 'w') do |f|
16         f.puts %Q/%META:TOPICPARENT{name="Plugins#{type_title}s"}%/
17         f.puts "---+ #{type_title} Plugin"
18         f.puts "---++ #{name}"
19         f.puts '<verbatim>'
20         f.puts meta.serialise_yaml
21         f.puts '</verbatim>'
22         puts "Wrote file #{filename}.txt"
23         index.puts "   * [[#{filename}][#{name}]]: #{meta.get('title')}\n"
24       end
25     end
26   }
27   index.close
28 end
29
30 [
31   [Mlt::Consumer_type, $repo.consumers, 'Consumer'],
32   [Mlt::Filter_type, $repo.filters, 'Filter'],
33   [Mlt::Producer_type, $repo.producers, 'Producer'],
34   [Mlt::Transition_type, $repo.transitions, 'Transition']
35 ].each {|x| output *x}