Sha256: ec4345eb55bb491183167add3779f0d1baedb2858c729b8ea405583fb4bce4d5

Contents?: true

Size: 817 Bytes

Versions: 35

Compression:

Stored size: 817 Bytes

Contents

require "yaml"

module Lono::Yamler
  class Loader
    def self.load(text)
      new(text).load
    end

    def initialize(text)
      @text = text
    end

    def load
      add_domain_types!
      YAML.load(@text)
    end

  private
    def add_domain_types!
      intrinsic_functions.each do |name|
        YAML.add_domain_type('', name) do |type,val|
          key = type.split('::').last
          key = "Fn::" + key unless name == 'Ref'
          { key => val }
        end
      end
    end

    def intrinsic_functions
      %w[
        And
        Base64
        Cidr
        Equals
        FindInMap
        GetAtt
        GetAZs
        If
        If
        ImportValue
        Join
        Not
        Or
        Ref
        Select
        Split
        Sub
        Transform
      ]
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
lono-8.0.0.pre.rc6 lib/lono/yamler/loader.rb
lono-8.0.0.pre.rc5 lib/lono/yamler/loader.rb
lono-8.0.0.pre.rc4 lib/lono/yamler/loader.rb
lono-8.0.0.pre.rc3 lib/lono/yamler/loader.rb
lono-8.0.0.pre.rc2 lib/lono/yamler/loader.rb
lono-8.0.0.pre.rc1 lib/lono/yamler/loader.rb
lono-7.5.2 lib/lono/yamler/loader.rb
lono-7.5.1 lib/lono/yamler/loader.rb
lono-7.5.0 lib/lono/yamler/loader.rb
lono-7.4.11 lib/lono/yamler/loader.rb
lono-7.4.10 lib/lono/yamler/loader.rb
lono-7.4.9 lib/lono/yamler/loader.rb
lono-7.4.8 lib/lono/yamler/loader.rb
lono-7.4.7 lib/lono/yamler/loader.rb
lono-7.4.6 lib/lono/yamler/loader.rb
lono-7.4.5 lib/lono/yamler/loader.rb
lono-7.4.4 lib/lono/yamler/loader.rb
lono-7.4.3 lib/lono/yamler/loader.rb
lono-7.4.2 lib/lono/yamler/loader.rb
lono-7.4.1 lib/lono/yamler/loader.rb