Module: Protobuf::ActiveRecord::Columns::ClassMethods

Defined in:
lib/protobuf/active_record/columns.rb

Instance Method Summary collapse

Instance Method Details

#_protobuf_column_typesObject



23
24
25
26
27
# File 'lib/protobuf/active_record/columns.rb', line 23

def _protobuf_column_types
  _protobuf_map_columns unless _protobuf_mapped_columns?

  @_protobuf_column_types
end

#_protobuf_columnsObject



17
18
19
20
21
# File 'lib/protobuf/active_record/columns.rb', line 17

def _protobuf_columns
  _protobuf_map_columns unless _protobuf_mapped_columns?

  @_protobuf_columns
end

#_protobuf_date_column?(key) ⇒ Boolean

:nodoc:

Returns:

  • (Boolean)


30
31
32
# File 'lib/protobuf/active_record/columns.rb', line 30

def _protobuf_date_column?(key)
  _protobuf_column_types.fetch(:date, false) && _protobuf_column_types[:date].include?(key)
end

#_protobuf_datetime_column?(key) ⇒ Boolean

:nodoc:

Returns:

  • (Boolean)


35
36
37
# File 'lib/protobuf/active_record/columns.rb', line 35

def _protobuf_datetime_column?(key)
  _protobuf_column_types.fetch(:datetime, false) && _protobuf_column_types[:datetime].include?(key)
end

#_protobuf_map_columns(force = false) ⇒ Object

Map out the columns for future reference on type conversion :nodoc:



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/protobuf/active_record/columns.rb', line 41

def _protobuf_map_columns(force = false)
  return unless table_exists?

  @_protobuf_mapped_columns = false if force
  return if _protobuf_mapped_columns?

  @_protobuf_columns = {}
  @_protobuf_column_types = Hash.new { |h,k| h[k] = [] }

  columns.map do |column|
    @_protobuf_columns[column.name.to_sym] = column
    @_protobuf_column_types[column.type.to_sym] << column.name.to_sym
  end

  @_protobuf_mapped_columns = true
end

#_protobuf_mapped_columns?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/protobuf/active_record/columns.rb', line 58

def _protobuf_mapped_columns?
  @_protobuf_mapped_columns
end

#_protobuf_time_column?(key) ⇒ Boolean

:nodoc:

Returns:

  • (Boolean)


63
64
65
# File 'lib/protobuf/active_record/columns.rb', line 63

def _protobuf_time_column?(key)
  _protobuf_column_types.fetch(:time, false) && _protobuf_column_types[:time].include?(key)
end

#_protobuf_timestamp_column?(key) ⇒ Boolean

:nodoc:

Returns:

  • (Boolean)


68
69
70
# File 'lib/protobuf/active_record/columns.rb', line 68

def _protobuf_timestamp_column?(key)
  _protobuf_column_types.fetch(:timestamp, false) && _protobuf_column_types[:timestamp].include?(key)
end