Class: JunglePath::DBModel::Column

Inherits:
Object
  • Object
show all
Defined in:
lib/jungle_path/db_model/column.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sequence, name, type, primary_key = false, foreign_key = false, foreign_key_table_name = nil, not_null = false, unique = false, secure = false, alternate_key = false, calculated = false, desc = nil, index = nil, unique_index = nil, default_value = nil, tags = nil, override_type = nil) ⇒ Column

Returns a new instance of Column.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/jungle_path/db_model/column.rb', line 7

def initialize(sequence, name, type, primary_key=false, foreign_key=false, foreign_key_table_name=nil, not_null=false, unique=false, secure=false, alternate_key=false, calculated=false, desc=nil, index=nil, unique_index=nil, default_value=nil, tags=nil, override_type=nil)
  @sequence = sequence
  @name = name
  @type = type
  @override_type = override_type
  @base_type = get_base_type(@type)
  @primary_key = primary_key
  @foreign_key = foreign_key
  @foreign_key_table_name = foreign_key_table_name
  @not_null = not_null
  @unique = unique
  @secure = secure
  @alternate_key = alternate_key
  @calculated = calculated
  @desc = desc
  @index = index
  @unique_index = unique_index
  @default_value = default_value
  @tags = tags
  @is_audit_column = audit_column_names.include? name
end

Instance Attribute Details

#base_typeObject (readonly)

Returns the value of attribute base_type.



6
7
8
# File 'lib/jungle_path/db_model/column.rb', line 6

def base_type
  @base_type
end

#foreign_key_table_nameObject (readonly)

Returns the value of attribute foreign_key_table_name.



6
7
8
# File 'lib/jungle_path/db_model/column.rb', line 6

def foreign_key_table_name
  @foreign_key_table_name
end

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/jungle_path/db_model/column.rb', line 6

def name
  @name
end

#override_typeObject (readonly)

Returns the value of attribute override_type.



6
7
8
# File 'lib/jungle_path/db_model/column.rb', line 6

def override_type
  @override_type
end

#sequenceObject (readonly)

Returns the value of attribute sequence.



6
7
8
# File 'lib/jungle_path/db_model/column.rb', line 6

def sequence
  @sequence
end

#tagsObject (readonly)

Returns the value of attribute tags.



6
7
8
# File 'lib/jungle_path/db_model/column.rb', line 6

def tags
  @tags
end

#typeObject (readonly)

Returns the value of attribute type.



6
7
8
# File 'lib/jungle_path/db_model/column.rb', line 6

def type
  @type
end

Class Method Details

.get_column_def_columns(column_definition, sequence) ⇒ Object



100
101
102
103
104
105
106
107
# File 'lib/jungle_path/db_model/column.rb', line 100

def self.get_column_def_columns(column_definition, sequence)
  return audit_key(sequence) if column_definition.length == 1 and column_definition[0] == :audit_key
  return audit_user(sequence) if column_definition.length == 1 and column_definition[0] == :audit_user
  return killable(sequence) if column_definition.length == 1 and column_definition[0] == :killable
  return verification(sequence) if column_definition.length == 1 and column_definition[0] == :verification
  return audit_data(sequence) if column_definition.length == 1 and column_definition[0] == :audit_data
  normal(column_definition, (sequence))
end

Instance Method Details

#alternate_key?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/jungle_path/db_model/column.rb', line 33

def alternate_key?
  @alternate_key
end

#audit_column_namesObject



61
62
63
# File 'lib/jungle_path/db_model/column.rb', line 61

def audit_column_names
   [:created_at, :updated_at, :created_by_key_id, :created_by_user_id, :updated_by_key_id, :updated_by_user_id].to_set
end

#calculated=(value) ⇒ Object



49
50
51
# File 'lib/jungle_path/db_model/column.rb', line 49

def calculated=(value)
  @calculated = value
end

#calculated?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/jungle_path/db_model/column.rb', line 45

def calculated?
  @calculated
end

#default_valueObject



96
97
98
# File 'lib/jungle_path/db_model/column.rb', line 96

def default_value
  @default_value
end

#descObject



84
85
86
# File 'lib/jungle_path/db_model/column.rb', line 84

def desc
  @desc
end

#foreign_key?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/jungle_path/db_model/column.rb', line 37

def foreign_key?
  @foreign_key
end

#indexObject



88
89
90
# File 'lib/jungle_path/db_model/column.rb', line 88

def index
  @index
end

#is_audit_column?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/jungle_path/db_model/column.rb', line 65

def is_audit_column?
  @is_audit_column
end

#not_null?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/jungle_path/db_model/column.rb', line 41

def not_null?
  @not_null
end

#primary_key?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/jungle_path/db_model/column.rb', line 29

def primary_key?
  @primary_key
end

#ruby_typeObject



69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/jungle_path/db_model/column.rb', line 69

def ruby_type
  return Integer if @type == :foreign_key
  return Integer if @type == :primary_key
  return String if @type == :string
  return Integer if @type == :integer
  return DateTime if @type == :timestamp
  return DateTime if @type == :timestamp_local
  return TrueClass if @type == :boolean
  return Date if @type == :date
  return String if @type == :json
  return String if @type == :jsonb
  return Float if @type == :float
  nil
end

#secure?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/jungle_path/db_model/column.rb', line 57

def secure?
  @secure
end

#unique?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/jungle_path/db_model/column.rb', line 53

def unique?
  @unique
end

#unique_indexObject



92
93
94
# File 'lib/jungle_path/db_model/column.rb', line 92

def unique_index
  @unique_index
end