Class: SoupCMS::CLI::ResolveFileReference
- Inherits:
-
Object
- Object
- SoupCMS::CLI::ResolveFileReference
- Defined in:
- lib/soupcms/cli/resolve_file_reference.rb
Instance Method Summary collapse
-
#initialize(path) ⇒ ResolveFileReference
constructor
A new instance of ResolveFileReference.
- #parse(document) ⇒ Object
- #parse_for_file(document) ⇒ Object
Constructor Details
#initialize(path) ⇒ ResolveFileReference
Returns a new instance of ResolveFileReference.
7 8 9 |
# File 'lib/soupcms/cli/resolve_file_reference.rb', line 7 def initialize(path) @path = path end |
Instance Method Details
#parse(document) ⇒ Object
11 12 13 14 15 16 17 |
# 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) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# 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 |