# File lib/puppet/util/fileparsing.rb, line 80
80:     def join(details)
81:       joinchar = self.joiner
82: 
83:       fields.collect { |field|
84:         # If the field is marked absent, use the appropriate replacement
85:         if details[field] == :absent or details[field] == [:absent] or details[field].nil?
86:           if self.optional.include?(field)
87:             self.absent
88:           else
89:             raise ArgumentError, "Field '#{field}' is required"
90:           end
91:         else
92:           details[field].to_s
93:         end
94:       }.reject { |c| c.nil?}.join(joinchar)
95:     end