class SoupCMS::CLI::ResolveFileReference
Public Class Methods
new(path)
click to toggle source
# File lib/soupcms/cli/resolve_file_reference.rb, line 7 def initialize(path) @path = path end
Public Instance Methods
parse(document)
click to toggle source
# File lib/soupcms/cli/resolve_file_reference.rb, line 11 def parse(document) if document.kind_of?(Array) document.collect { |doc| parse_for_file(doc) } elsif document.kind_of?(Hash) parse_for_file(document) end end
parse_for_file(document)
click to toggle source
# File lib/soupcms/cli/resolve_file_reference.rb, line 19 def parse_for_file(document) document.each do |key, value| if value.kind_of?(Array) document[key] = value.collect { |item| item.kind_of?(Hash) ? parse_for_file(item) : item } elsif value.kind_of?(Hash) document[key] = parse_for_file(value) elsif value.kind_of?(String) && value.match(/^\$file:/) document[key] = File.read(File.join(@path, 'ref_files', value.match(/\$file:([\w\.\-]*)/).captures[0])) end end @document = document end