Class: Cassandra::ColumnDef
- Inherits:
-
Object
- Object
- Cassandra::ColumnDef
- 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_h ⇒ Object
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..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 |