Module: Protoable::Convert::ClassMethods
- Defined in:
- lib/protobuf/activerecord/protoable/convert.rb
Instance Method Summary collapse
- #_protobuf_convert_attributes_to_fields(key, value) ⇒ Object
- #_protobuf_convert_fields_to_columns(key, value) ⇒ Object
- #_protobuf_date_column?(key) ⇒ Boolean
- #_protobuf_datetime_column?(key) ⇒ Boolean
- #_protobuf_time_column?(key) ⇒ Boolean
- #_protobuf_timestamp_column?(key) ⇒ Boolean
- #convert_int64_to_date(int64) ⇒ Object
- #convert_int64_to_datetime(int64) ⇒ Object
- #convert_int64_to_time(int64) ⇒ Object
Instance Method Details
#_protobuf_convert_attributes_to_fields(key, value) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/protobuf/activerecord/protoable/convert.rb', line 20 def _protobuf_convert_attributes_to_fields(key, value) return value if value.nil? value = case when _protobuf_attribute_converters.has_key?(key.to_sym) then _protobuf_attribute_converters[key.to_sym].call(value) when _protobuf_date_column?(key) then value.to_time.to_i when _protobuf_datetime_column?(key) then value.to_i when _protobuf_time_column?(key) then value.to_i when (key) then value.to_i else value end return value end |
#_protobuf_convert_fields_to_columns(key, value) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/protobuf/activerecord/protoable/convert.rb', line 41 def _protobuf_convert_fields_to_columns(key, value) return value if value.nil? value = case when _protobuf_field_converters.has_key?(key.to_sym) then _protobuf_field_converters[key.to_sym].call(value) when _protobuf_date_column?(key) then convert_int64_to_date(value) when _protobuf_datetime_column?(key) then convert_int64_to_datetime(value) when _protobuf_time_column?(key) then convert_int64_to_time(value) when (key) then convert_int64_to_time(value) else value end return value end |
#_protobuf_date_column?(key) ⇒ Boolean
62 63 64 |
# File 'lib/protobuf/activerecord/protoable/convert.rb', line 62 def _protobuf_date_column?(key) _protobuf_column_types.fetch(:date, false) && _protobuf_column_types[:date].include?(key) end |
#_protobuf_datetime_column?(key) ⇒ Boolean
66 67 68 |
# File 'lib/protobuf/activerecord/protoable/convert.rb', line 66 def _protobuf_datetime_column?(key) _protobuf_column_types.fetch(:datetime, false) && _protobuf_column_types[:datetime].include?(key) end |
#_protobuf_time_column?(key) ⇒ Boolean
70 71 72 |
# File 'lib/protobuf/activerecord/protoable/convert.rb', line 70 def _protobuf_time_column?(key) _protobuf_column_types.fetch(:time, false) && _protobuf_column_types[:time].include?(key) end |
#_protobuf_timestamp_column?(key) ⇒ Boolean
74 75 76 |
# File 'lib/protobuf/activerecord/protoable/convert.rb', line 74 def (key) _protobuf_column_types.fetch(:timestamp, false) && _protobuf_column_types[:timestamp].include?(key) end |
#convert_int64_to_date(int64) ⇒ Object
12 13 14 |
# File 'lib/protobuf/activerecord/protoable/convert.rb', line 12 def convert_int64_to_date(int64) convert_int64_to_time(int64).utc.to_date end |
#convert_int64_to_datetime(int64) ⇒ Object
16 17 18 |
# File 'lib/protobuf/activerecord/protoable/convert.rb', line 16 def convert_int64_to_datetime(int64) convert_int64_to_time(int64).to_datetime end |
#convert_int64_to_time(int64) ⇒ Object
8 9 10 |
# File 'lib/protobuf/activerecord/protoable/convert.rb', line 8 def convert_int64_to_time(int64) Time.at(int64.to_i) end |