Sha256: 044a3e5453c708878b11d93e303403ef69a093cba74dfc70f6d1ed3bb09e139c

Contents?: true

Size: 1.88 KB

Versions: 8

Compression:

Stored size: 1.88 KB

Contents

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 "#{raw_value}" 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 unparse_as_version(unparser)
    return unparser.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

8 entries across 8 versions & 1 rubygems

Version Path
fig-1.4.0 lib/fig/statement/path.rb
fig-1.3.0 lib/fig/statement/path.rb
fig-1.2.0 lib/fig/statement/path.rb
fig-1.1.0 lib/fig/statement/path.rb
fig-1.0.0 lib/fig/statement/path.rb
fig-0.2.5 lib/fig/statement/path.rb
fig-0.2.3 lib/fig/statement/path.rb
fig-0.2.1 lib/fig/statement/path.rb