Sha256: 9f2eb6c08d3082970cbcf8e67263522a8feab93e3e867fb79ddd3e24486348e6

Contents?: true

Size: 1.04 KB

Versions: 34

Compression:

Stored size: 1.04 KB

Contents

module Fig; end

class Fig::TokenizedString
  def initialize(segments, single_quoted, metacharacters)
    @segments       = segments
    @single_quoted  = single_quoted
    @metacharacters = metacharacters

    return
  end

  def single_quoted?()
    return @single_quoted
  end

  def can_be_single_quoted?()
    return true if single_quoted?
    return @segments.all? {|segment| segment.type.nil?}
  end

  def to_expanded_string(&block)
    return (
      @segments.collect { |segment| segment.to_expanded_string(&block) }
    ).join ''
  end

  def to_escaped_string()
    return ( @segments.collect {|segment| segment.to_escaped_string} ).join ''
  end

  def to_single_quoted_string()
    return to_escaped_string if single_quoted?

    return (
      @segments.collect {|segment| segment.to_single_quoted_string}
    ).join ''
  end

  def to_double_quotable_string()
    return to_escaped_string if ! single_quoted?

    return (
      @segments.collect {
        |segment| segment.to_double_quotable_string @metacharacters
      }
    ).join ''
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
fig-1.10.0 lib/fig/tokenized_string.rb
fig-1.9.0 lib/fig/tokenized_string.rb
fig-1.8.0 lib/fig/tokenized_string.rb
fig-1.7.0 lib/fig/tokenized_string.rb
fig-1.6.0 lib/fig/tokenized_string.rb
fig-1.5.0 lib/fig/tokenized_string.rb
fig-1.4.0 lib/fig/tokenized_string.rb
fig-1.3.0 lib/fig/tokenized_string.rb
fig-1.2.0 lib/fig/tokenized_string.rb
fig-1.1.0 lib/fig/tokenized_string.rb
fig-1.0.0 lib/fig/tokenized_string.rb
fig-0.2.5 lib/fig/tokenized_string.rb
fig-0.2.3 lib/fig/tokenized_string.rb
fig-0.2.1 lib/fig/tokenized_string.rb