Class: Cassandra::ColumnDef

Inherits:
Object
  • Object
show all
Defined in:
lib/cassandra.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_h(h) ⇒ Object



152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/cassandra.rb', line 152

def self.from_h(h)
  h.reduce(self.new) do |col_def, (field_name, field_value)|
    case field_name.to_sym
    when :name
      field_value = Eurydice::Pelops::ByteHelpers.to_nio_bytes(field_value)
    when :index_type
      field_value = Cassandra::IndexType.valueOf(field_value.to_s.upcase)
    when :validation_class
      field_value = MARSHAL_TYPES.fetch(field_value, field_value)
    end
    field = self::_Fields.find_by_name(field_name.to_s)
    raise ArgumentError, %(No field named "#{field_name}") unless field
    col_def.set_field_value(field, field_value)
    col_def
  end
end

Instance Method Details

#to_hObject



169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/cassandra.rb', line 169

def to_h
  self.class.metaDataMap.reduce({}) do |acc, (field, )|
    field_name = field.field_name.to_sym
    acc[field_name] = begin
      case field_name
      when :name
        Eurydice::Pelops::ByteHelpers.nio_bytes_to_s(get_field_value(field))
      when :index_type
        value = get_field_value(field)
        value.toString.downcase.to_sym if value
      else
        get_field_value(field)
      end
    end
    acc
  end
end