class Figtree::IniConfig
Public Class Methods
new(ini, override = :none)
click to toggle source
Calls superclass method
# File lib/figtree/ini_config.rb, line 4 def initialize(ini, override = :none) # cheat to allow a parsed hash in parsed_subgroups = ini.is_a?(Hash) ? ini : subgroups_from(ini, override) super(parsed_subgroups) end
Private Instance Methods
figgy_parse(str)
click to toggle source
# File lib/figtree/ini_config.rb, line 21 def figgy_parse(str) Parser.new.parse(str) # argument error is invalid byte sequence rescue Parslet::ParseFailed, ArgumentError => failure if failure.class == Parslet::ParseFailed failure = failure.cause.ascii_tree end STDERR.puts "\nInvalid ini file.\n" + "Error: #{failure}" + "Please correct the file and retry." raise end
figgy_transform(tree, override)
click to toggle source
# File lib/figtree/ini_config.rb, line 34 def figgy_transform(tree, override) Transformer.new.apply(tree, override: override) rescue => e STDERR.puts "\nInvalid transformation rule.\n" + "Error: #{e}" + "Please correct your transformer rule and retry." raise TransformFailed end
subgroups_from(ini_file, override)
click to toggle source
# File lib/figtree/ini_config.rb, line 12 def subgroups_from(ini_file, override) figgy_transform( figgy_parse( File.read(ini_file) ), override ).reduce({}, :merge!) end