aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cask/lib/hbc/dsl/container.rb
blob: 39f1566686389edac495d77ce88a13200bd90e46 (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
class Hbc::DSL::Container
  VALID_KEYS = Set.new [
                         :type,
                         :nested,
                       ]

  attr_accessor(*VALID_KEYS)
  attr_accessor :pairs

  def initialize(pairs = {})
    @pairs = pairs
    pairs.each do |key, value|
      raise "invalid container key: '#{key.inspect}'" unless VALID_KEYS.include?(key)
      writer_method = "#{key}=".to_sym
      send(writer_method, value)
    end
  end

  def to_yaml
    @pairs.to_yaml
  end

  def to_s
    @pairs.inspect
  end
end