Sha256: bcf7a694aba4c50dbff951fe8e3e639e08418f5c3903a8d6095559b2da85fb78

Contents?: true

Size: 1.11 KB

Versions: 3

Compression:

Stored size: 1.11 KB

Contents

require 'fig/unparser'
require 'fig/unparser/v1_base'

module Fig; end
module Fig::Unparser; end

# Handles serializing of statements in the v2 grammar.
class Fig::Unparser::V2
  include Fig::Unparser
  include Fig::Unparser::V1Base

  def initialize(
    emit_as_input_or_to_be_published_values,
    indent_string = ' ' * 2,
    initial_indent_level = 0
  )
    @emit_as_input_or_to_be_published_values =
      emit_as_input_or_to_be_published_values
    @indent_string        = indent_string
    @initial_indent_level = initial_indent_level

    return
  end

  def grammar_version(statement)
    add_indent

    @text << "grammar v2\n"

    return
  end

  def include_file(statement)
    path = statement.path
    quote = (path.include?(%q<'>) && ! path.include?(%q<">)) ? %q<"> : %q<'>

    add_indent

    @text << 'include-file '
    @text << quote
    @text << path.gsub('\\', ('\\' * 4)).gsub(quote, "\\\\#{quote}")
    @text << quote
    if ! statement.config_name.nil?
      @text << ':'
      @text << statement.config_name
    end
    @text << "\n"

    return
  end

  def grammar_description()
    return 'v2'
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fig-1.4.0 lib/fig/unparser/v2.rb
fig-1.3.0 lib/fig/unparser/v2.rb
fig-1.2.0 lib/fig/unparser/v2.rb