Sha256: a8eb1e632e7fabd8f8508ea52229e5ceca5fd69bfd1b751b397f27d675d7804c

Contents?: true

Size: 1.88 KB

Versions: 15

Compression:

Stored size: 1.88 KB

Contents

# coding: utf-8

require 'fig/statement'
require 'fig/statement/environment_variable'

module Fig; end

# A statement that specifies or modifies a path environment variable, e.g.
# "append", "path", "add" (though those are all synonyms).
class Fig::Statement::Path < Fig::Statement
  include Fig::Statement::EnvironmentVariable

  # Yields on error.
  def self.parse_name_value(combined, &error_block)
    variable, raw_value = seperate_name_and_value combined, &error_block

    tokenized_value = tokenize_value(raw_value, &error_block)

    if tokenized_value.to_escaped_string.length < 1
      yield %Q<The value of path variable #{variable} is empty.>
      return
    end

    return [variable, tokenized_value]
  end

  def self.parse_v0_name_value(combined, &error_block)
    variable, raw_value = seperate_name_and_value combined, &error_block

    if raw_value.length < 1
      yield %Q<The value of path variable #{variable} is empty.>
      return
    end

    base_v0_value_validation(variable, raw_value, &error_block)

    if raw_value =~ /([;:<>|])/
      yield %Q<The value of path variable #{variable} (#{raw_value}) contains a "#{$1}" character.>
      return
    end

    return [variable, tokenize_value(raw_value, &error_block)]
  end

  def initialize(line_column, source_description, name, tokenized_value)
    super(line_column, source_description)

    @name = name
    @tokenized_value = tokenized_value
  end

  def statement_type()
    return 'path'
  end

  def is_environment_variable?()
    return true
  end

  def deparse_as_version(deparser)
    return deparser.path(self)
  end

  private

  def minimum_grammar()
    base_grammar_version = standard_minimum_grammar
    return base_grammar_version if base_grammar_version[0] != 0

    value = tokenized_value.to_escaped_string
    if value =~ / ( [;:<>|] ) /x
      return [1, %Q<contains a "#{$1}" character>]
    end

    return [0]
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
fig-1.27.10 lib/fig/statement/path.rb
fig-1.27.8 lib/fig/statement/path.rb
fig-1.27.5 lib/fig/statement/path.rb
fig-1.27.4 lib/fig/statement/path.rb
fig-1.27.3 lib/fig/statement/path.rb
fig-1.27.0 lib/fig/statement/path.rb
fig-1.26.1.beta.1 lib/fig/statement/path.rb
fig-1.26.0 lib/fig/statement/path.rb
fig-1.25.1.beta.1 lib/fig/statement/path.rb
fig-1.25.0 lib/fig/statement/path.rb
fig-1.24.1.beta.3 lib/fig/statement/path.rb
fig-1.24.1.beta.2 lib/fig/statement/path.rb
fig-1.24.1.beta.1 lib/fig/statement/path.rb
fig-1.24.0 lib/fig/statement/path.rb
fig-1.23.1.beta.1 lib/fig/statement/path.rb