Sha256: 73dc121bd6e20035ca1919176ac0977552b6da737e5afb7edbabac5dc03ee283

Contents?: true

Size: 1.58 KB

Versions: 26

Compression:

Stored size: 1.58 KB

Contents

require 'fig/deparser'

module Fig; end
module Fig::Deparser; end

# Handles serializing of statements in the v0 grammar.
class Fig::Deparser::V0
  include Fig::Deparser

  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 command(statement)
    add_indent

    @text << %q<command ">
    @text << statement.command.first.to_double_quotable_string
    @text << %Q<"\n>

    return
  end

  def grammar_version(statement)
    add_indent

    # Comment out so that older clients don't have issues.
    @text << "# grammar v0\n"

    return
  end

  def retrieve(statement)
    add_indent

    @text << 'retrieve '
    @text << statement.variable
    @text << '->'
    @text << statement.tokenized_path.to_double_quotable_string
    @text << "\n"

    return
  end

  def grammar_description()
    return 'v0'
  end

  private

  def asset(keyword, statement)
    path  = asset_path statement
    quote = path =~ /[*?\[\]{}]/ ? '' : %q<">

    add_indent
    @text << keyword
    @text << ' '
    @text << quote
    @text << path
    @text << quote
    @text << "\n"

    return
  end

  def environment_variable(statement, keyword)
    add_indent

    @text << keyword
    @text << ' '
    @text << statement.name
    @text << '='
    @text << statement.tokenized_value.to_double_quotable_string
    @text << "\n"

    return
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
fig-1.23.0 lib/fig/deparser/v0.rb
fig-1.22.1.beta.1 lib/fig/deparser/v0.rb
fig-1.22.0 lib/fig/deparser/v0.rb
fig-1.21.1.beta.2 lib/fig/deparser/v0.rb
fig-1.21.1.beta.1 lib/fig/deparser/v0.rb
fig-1.21.0 lib/fig/deparser/v0.rb
fig-1.20.1.beta.1 lib/fig/deparser/v0.rb
fig-1.20.0 lib/fig/deparser/v0.rb
fig-1.19.0 lib/fig/deparser/v0.rb
fig-1.18.0 lib/fig/deparser/v0.rb
fig-1.17.0 lib/fig/deparser/v0.rb
fig-1.16.1.beta.1 lib/fig/deparser/v0.rb
fig-1.16.0 lib/fig/deparser/v0.rb
fig-1.15.1.beta.2 lib/fig/deparser/v0.rb
fig-1.15.1.beta.1 lib/fig/deparser/v0.rb
fig-1.15.0 lib/fig/deparser/v0.rb
fig-1.14.0 lib/fig/deparser/v0.rb
fig-1.13.0 lib/fig/deparser/v0.rb
fig-1.12.0 lib/fig/deparser/v0.rb
fig-1.11.0 lib/fig/deparser/v0.rb