summaryrefslogtreecommitdiff
path: root/lib/oxidized/model/outputs.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oxidized/model/outputs.rb')
-rw-r--r--lib/oxidized/model/outputs.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/oxidized/model/outputs.rb b/lib/oxidized/model/outputs.rb
new file mode 100644
index 0000000..5ef9bc4
--- /dev/null
+++ b/lib/oxidized/model/outputs.rb
@@ -0,0 +1,43 @@
+module Oxidized
+ class Model
+ class Outputs
+
+ def to_cfg
+ type_to_str('cfg')
+ end
+
+ def type_to_str want_type
+ type(want_type).map { |h| h[:output] }.join
+ end
+
+ def each_type &block
+ types.each do |want_type|
+ yield [want_type, type(want_type)]
+ end
+ end
+
+ def << output
+ @outputs << output
+ end
+
+ def all
+ @outputs
+ end
+
+ def type type
+ @outputs.select { |h| h[:type]==type }
+ end
+
+ def types
+ @outputs.map { |h| h[:type] }.uniq
+ end
+
+ private
+
+ def initialize
+ @outputs = []
+ end
+
+ end
+ end
+end