Module: Protoable::Fields
- Defined in:
- lib/protoable/fields.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
-
._protobuf_map_columns(klass) ⇒ Object
Map out the columns for future reference on type conversion.
- .extended(klass) ⇒ Object
Class Method Details
._protobuf_map_columns(klass) ⇒ Object
Map out the columns for future reference on type conversion
30 31 32 33 34 35 36 |
# File 'lib/protoable/fields.rb', line 30 def self._protobuf_map_columns(klass) return unless klass.table_exists? klass.columns.map do |column| klass._protobuf_columns[column.name.to_sym] = column klass._protobuf_column_types[column.type.to_sym] << column.name.to_sym end end |
.extended(klass) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/protoable/fields.rb', line 5 def self.extended(klass) klass.extend Protoable::Fields::ClassMethods klass.__send__(:include, Protoable::InheritableClassInstanceVariables) klass.class_eval do class << self attr_accessor :_protobuf_columns, :_protobuf_column_types, :_protobuf_column_transformers, :_protobuf_field_converters end @_protobuf_columns = {} @_protobuf_column_types = Hash.new { |h,k| h[k] = [] } @_protobuf_column_transformers = {} @_protobuf_field_converters = {} # NOTE: Make sure each inherited object has the database layout inheritable_attributes :_protobuf_columns, :_protobuf_column_types, :_protobuf_field_converters, :_protobuf_column_transformers end _protobuf_map_columns(klass) end |