43 lines
		
	
	
		
			876 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			876 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # typed: true
 | |
| # frozen_string_literal: true
 | |
| 
 | |
| require "unpack_strategy"
 | |
| 
 | |
| module Cask
 | |
|   class DSL
 | |
|     # Class corresponding to the `container` stanza.
 | |
|     #
 | |
|     # @api private
 | |
|     class Container
 | |
|       VALID_KEYS = Set.new([
 | |
|                              :type,
 | |
|                              :nested,
 | |
|                            ]).freeze
 | |
| 
 | |
|       attr_accessor(*VALID_KEYS, :pairs)
 | |
| 
 | |
|       def initialize(pairs = {})
 | |
|         @pairs = pairs
 | |
|         pairs.each do |key, value|
 | |
|           raise "invalid container key: #{key.inspect}" unless VALID_KEYS.include?(key)
 | |
| 
 | |
|           send(:"#{key}=", value)
 | |
|         end
 | |
| 
 | |
|         return if type.nil?
 | |
|         return unless UnpackStrategy.from_type(type).nil?
 | |
| 
 | |
|         raise "invalid container type: #{type.inspect}"
 | |
|       end
 | |
| 
 | |
|       def to_yaml
 | |
|         @pairs.to_yaml
 | |
|       end
 | |
| 
 | |
|       def to_s
 | |
|         @pairs.inspect
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
