Class: Hocon::Impl::Parseable::ParseableResources
Overview
NOTE: this is not a faithful port of the ParseableResources class from the upstream, because at least for now we’re not going to try to do anything crazy like look for files on the ruby load path. However, there is a decent chunk of logic elsewhere in the codebase that is written with the assumption that this class will provide the ‘last resort’ attempt to find a config file before giving up, so we’re basically port just enough to have it provide that last resort behavior
Constant Summary
MAX_INCLUDE_DEPTH
Class Method Summary
collapse
Instance Method Summary
collapse
#content_type, #custom_reader, #fixup_options, force_parsed_to_object, #include_context, new_file, new_not_found, new_resources, new_string, #options, #origin, #parse, #parse_config_document, #parse_document, #parse_document_from_origin, parse_stack, #parse_value, #parse_value_from_origin, #post_construct, #raw_parse_document, #raw_parse_document_from_io, #raw_parse_value_from_io, relative_to, syntax_from_extension, trace
#options, #origin, #parse
Constructor Details
Returns a new instance of ParseableResources.
481
482
483
484
485
|
# File 'lib/hocon/impl/parseable.rb', line 481
def initialize(resource, options)
super()
@resource = resource
post_construct(options)
end
|
Class Method Details
.parent(resource) ⇒ Object
503
504
505
506
507
508
509
510
511
512
513
514
|
# File 'lib/hocon/impl/parseable.rb', line 503
def self.parent(resource)
i = resource.rindex("/")
if i < 0
nil
else
resource.slice(0..i)
end
end
|
Instance Method Details
#raw_parse_value(origin, final_options) ⇒ Object
491
492
493
494
495
496
497
|
# File 'lib/hocon/impl/parseable.rb', line 491
def raw_parse_value(origin, final_options)
raise IOError, "resource not found: #{@resource}"
end
|
#relative_to(sibling) ⇒ Object
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
|
# File 'lib/hocon/impl/parseable.rb', line 516
def relative_to(sibling)
if sibling.start_with?("/")
Hocon::Impl::Parseable.new_resources(sibling.slice(1), options.set_origin_description(nil))
else
parent = self.class.parent(@resource)
if parent.nil?
Hocon::Impl::Parseable.new_resources(sibling, options.set_origin_description(nil))
else
Hocon::Impl::Parseable.new_resources("#{parent}/sibling", options.set_origin_description(nil))
end
end
end
|
#to_s ⇒ Object
540
541
542
|
# File 'lib/hocon/impl/parseable.rb', line 540
def to_s
"#{self.class.name.split('::').last}(#{@resource})"
end
|