class Basic101::BasicString

Attributes

value[R]

Public Class Methods

new(value) click to toggle source
# File lib/basic101/basic_string.rb, line 12
def initialize(value)
  @value = value.to_s
end

Public Instance Methods

+(other) click to toggle source
# File lib/basic101/basic_string.rb, line 68
def +(other)
  BasicString.new(value + other.to_string.value)
end
<=>(other) click to toggle source
# File lib/basic101/basic_string.rb, line 16
def <=>(other)
  return nil unless other.is_a?(self.class)
  value <=> other.value
end
asc() click to toggle source
# File lib/basic101/basic_string.rb, line 72
def asc
  raise InvalidArgumentError if @value.empty?
  BasicInteger.new(@value.chars.first.ord)
end
left(count) click to toggle source
# File lib/basic101/basic_string.rb, line 33
def left(count)
  count = count.to_i
  if count < 0
    raise InvalidArgumentError
  end
  BasicString.new(@value[0...count])
end
length() click to toggle source
# File lib/basic101/basic_string.rb, line 50
def length
  BasicInteger.new(@value.size)
end
mid(start, count = nil) click to toggle source
# File lib/basic101/basic_string.rb, line 54
def mid(start, count = nil)
  start = start.to_i
  count = count && count.to_i
  raise InvalidArgumentError if start < 1
  raise InvalidArgumentError if count && count < 1
  start -= 1
  substring = if count
                @value[start, count]
              else
                @value[start..-1]
              end
  self.class.new(substring)
end
print_new_line(output) click to toggle source
print_string(output) click to toggle source
right(count) click to toggle source
# File lib/basic101/basic_string.rb, line 41
def right(count)
  count = count.to_i
  if count < 0
    raise InvalidArgumentError
  end
  substring = @value[/.{0,#{count}}$/]
  BasicString.new(substring)
end
str() click to toggle source
# File lib/basic101/basic_string.rb, line 81
def str
  self
end
to_string() click to toggle source
# File lib/basic101/basic_string.rb, line 29
def to_string
  self
end
val() click to toggle source
# File lib/basic101/basic_string.rb, line 77
def val
  BasicFloat.new(@value.to_f).simplest
end