Sha256: 302d2e20c40ef15c1ab6c920bb56d5db1ddce10398d137987ce83a7af6581a6a

Contents?: true

Size: 663 Bytes

Versions: 5

Compression:

Stored size: 663 Bytes

Contents

class AliasField < Field    
  # FIXME: assignments don't work; alias = val won't be saved
  # FIXME: changes to the original value aren't observed;
  # original = val_1, alias => val_1; original = val_2; alias => val_1
  def strip_nil?
    true
  end
  
  def default_input_type
    nil
  end

  def validate(record, errors)
    # noop
  end

  def typecast(value, record)
    field_name = @options['of'].to_s
    raise InvalidField, "Alias fields must have a from property" if field_name.blank?
    record.get(field_name)
  end

  def untypecast(value, record)
    nil
  end

  def from_json(value, record)
    nil
  end
end

Field::TYPES['alias'] = AliasField

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
yodel-0.0.7 lib/yodel/models/core/fields/alias_field.rb
yodel-0.0.4 lib/yodel/models/core/fields/alias_field.rb
yodel-0.0.3 lib/yodel/models/core/fields/alias_field.rb
yodel-0.0.2 lib/yodel/models/core/fields/alias_field.rb
yodel-0.0.1 lib/yodel/models/core/fields/alias_field.rb