class Fable::ListValue

Public Class Methods

new(single_item=nil, single_value=nil) click to toggle source
Calls superclass method Fable::Value::new
# File lib/fable/value.rb, line 305
def initialize(single_item=nil, single_value=nil)
  if single_item.nil? && single_value.nil?
    super(InkList.new)
  elsif single_item.is_a?(InkList)
    super(InkList.copy_list(single_item))
  else
    super(InkList.new_with_single_item(single_item, single_value))
  end
end
retain_list_origins_for_assignment(old_value, new_value) click to toggle source
# File lib/fable/value.rb, line 315
def self.retain_list_origins_for_assignment(old_value, new_value)
  # When assigning the empty list, try to retain any initial origin names
  if (old_value.is_a?(ListValue) && new_value.is_a?(ListValue) && new_value.value.list.size == 0)
    new_value.value.set_initial_origin_names(old_value.value.origin_names)
  end
end

Public Instance Methods

cast(new_type) click to toggle source
# File lib/fable/value.rb, line 270
def cast(new_type)
  if new_type == IntValue
    max = value.max_item
    if max.nil?
      return IntValue.new(0)
    else
      return IntValue.new(max)
    end
  end

  if new_type == FloatValue
    max = value.max_item
    if max.nil?
      return FloatValue.new(0.0)
    else
      return FloatValue.new(max)
    end
  end

  if new_type == StringValue
    max = value.max_item
    if max.nil?
      return StringValue.new("")
    else
      return StringValue.new(max)
    end
  end

  if new_type == self.class
    return self
  end

  raise bad_cast_exception(new_type)
end
truthy?() click to toggle source
# File lib/fable/value.rb, line 266
def truthy?
  return value.count > 0
end
value_type() click to toggle source
# File lib/fable/value.rb, line 262
def value_type
  return OrderedValueTypes[ListValue]
end