Sha256: 9ef558c9cf1ba978c1da35357043efb5b99cb81f656abecadc14cd463e010f00

Contents?: true

Size: 1.29 KB

Versions: 4

Compression:

Stored size: 1.29 KB

Contents

module Ykxutils
  class Nginxconfig
    def initialize(yaml_path)
      # p "yaml_path=#{yaml_path}"
      yaml_pn = Pathname.new(yaml_path).cleanpath
      @virtual_domain_dir_pn = yaml_pn.parent
      @server_dir_pn = @virtual_domain_dir_pn.parent
      @common_dir_pn = @server_dir_pn.parent
      @hash = YAML.load_file(yaml_pn)
      # p @hash
      @root = @hash["_root"]
      # p @root
      root_template_0_pn = Pathname.new(@root["template"]).cleanpath
      @root_template_pn = @common_dir_pn + root_template_0_pn
      # puts "@root_template_pn=#{@root_template_pn}"
    end

    def extract(scope)
      hashx = {}
      @hash.each do |k, v|
        next unless k !~ /^_/

        # puts k
        # puts v
        pn = Pathname.new(v["template"]).cleanpath
        # Pathname.new(v).cleanpath
        template_pn = @server_dir_pn + pn
        # puts(template_pn)
        value_file_path_array = v["value"].map do |x|
          @virtual_domain_dir_pn + Pathname.new(x).cleanpath
        end
        hashx[k] = Ykxutils::Erubyx.erubi_render_with_file(template_pn, scope, value_file_path_array)
      end
      template = File.read(@root_template_pn)
      template_hash = { TEMPLATE: template,
                        OBJ: nil }
      Ykxutils::Erubyx.erubi_render(template_hash, scope, hashx)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ykxutils-0.1.14 lib/ykxutils/nginxconfig.rb
ykxutils-0.1.13 lib/ykxutils/nginxconfig.rb
ykxutils-0.1.12 lib/ykxutils/nginxconfig.rb
ykxutils-0.1.11 lib/ykxutils/nginxconfig.rb