summaryrefslogtreecommitdiff
path: root/lib/oxidized/model/outputs.rb
blob: 5ef9bc432253507a837231060c8723af5c23c7c3 (plain)
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
35
36
37
38
39
40
41
42
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