class SublimeDSL::SublimeText::Command::Argument

A command argument.

Attributes

name[R]
value[R]

Public Class Methods

new(name, value) click to toggle source
# File lib/sublime_dsl/sublime_text/command.rb, line 108
def initialize(name, value)
  @name = name
  @value = value
end

Public Instance Methods

to_s(hash_style = true) click to toggle source
# File lib/sublime_dsl/sublime_text/command.rb, line 113
def to_s(hash_style = true)
  if hash_style
    "#{name}: #{display(value)}"
  else
    display(value)
  end
end

Private Instance Methods

display(v) click to toggle source
# File lib/sublime_dsl/sublime_text/command.rb, line 125
def display(v)
  case v
  when String
    v.inspect
  when TrueClass, FalseClass, Numeric
    v.to_s
  when Array
    display_array(v)
  when Hash
    v.inspect
  when NilClass
    'nil'
  else
    raise Error, "command argument #{name.inspect} value: #{v.inspect}"
  end
end
display_array(a) click to toggle source
# File lib/sublime_dsl/sublime_text/command.rb, line 142
def display_array(a)
  if a.empty?
    '[]'
  elsif a.all? { |e| e.is_a?(String) && e =~ /\A(\S+)\z/ }
    "%w(#{a.join(' ')})"
  else
    a.inspect
  end
end