forked from ps2/minimed_rf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerate_diags.rb
executable file
·34 lines (29 loc) · 1.08 KB
/
generate_diags.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env ruby
require 'minimed_rf'
module MinimedRF
class Message
def self.descendants
ObjectSpace.each_object(Class).select { |klass| klass < self }
end
end
end
message_types = MinimedRF::Message.descendants.map {|c| c.to_s}.sort
message_types.each do |message_type|
class_name = message_type.split('::').last
message_class = MinimedRF.const_get(class_name)
File.open("docs/#{class_name}.packetdiag", "w") do |f|
f.write(message_class.packetdiag)
end
`packetdiag -T svg docs/#{class_name}.packetdiag`
end
File.open('docs/README.md', "w") do |f|
f.write("# Packet Diagrams\n")
message_types.each do |message_type|
class_name = message_type.split('::').last
message_class = MinimedRF.const_get(class_name)
f.write("## #{class_name}\n")
filename = File.basename(message_class.method(:bit_blocks).source_location.first)
f.write("[#{filename}](https://github.com/ps2/minimed_rf/blob/master/lib/minimed_rf/messages/#{filename})")
f.write("\n\n")
end
end