Module: Tina4::FieldTypes::ClassMethods

Defined in:
lib/tina4/field_types.rb

Instance Method Summary collapse

Instance Method Details

#blob_field(name, nullable: true, default: nil) ⇒ Object



74
75
76
# File 'lib/tina4/field_types.rb', line 74

def blob_field(name, nullable: true, default: nil)
  register_field(name, :blob, nullable: nullable, default: default)
end

#boolean_field(name, nullable: true, default: nil) ⇒ Object



58
59
60
# File 'lib/tina4/field_types.rb', line 58

def boolean_field(name, nullable: true, default: nil)
  register_field(name, :boolean, nullable: nullable, default: default)
end

#date_field(name, nullable: true, default: nil) ⇒ Object



62
63
64
# File 'lib/tina4/field_types.rb', line 62

def date_field(name, nullable: true, default: nil)
  register_field(name, :date, nullable: nullable, default: default)
end

#datetime_field(name, nullable: true, default: nil) ⇒ Object



66
67
68
# File 'lib/tina4/field_types.rb', line 66

def datetime_field(name, nullable: true, default: nil)
  register_field(name, :datetime, nullable: nullable, default: default)
end

#decimal_field(name, precision: 10, scale: 2, nullable: true, default: nil) ⇒ Object



49
50
51
52
# File 'lib/tina4/field_types.rb', line 49

def decimal_field(name, precision: 10, scale: 2, nullable: true, default: nil)
  register_field(name, :decimal, precision: precision, scale: scale,
                 nullable: nullable, default: default)
end

#field_definitionsObject



10
11
12
# File 'lib/tina4/field_types.rb', line 10

def field_definitions
  @field_definitions ||= {}
end

#float_field(name, nullable: true, default: nil) ⇒ Object



45
46
47
# File 'lib/tina4/field_types.rb', line 45

def float_field(name, nullable: true, default: nil)
  register_field(name, :float, nullable: nullable, default: default)
end

#integer_field(name, primary_key: false, auto_increment: false, nullable: true, default: nil) ⇒ Object



31
32
33
34
# File 'lib/tina4/field_types.rb', line 31

def integer_field(name, primary_key: false, auto_increment: false, nullable: true, default: nil)
  register_field(name, :integer, primary_key: primary_key, auto_increment: auto_increment,
                 nullable: nullable, default: default)
end

#json_field(name, nullable: true, default: nil) ⇒ Object



78
79
80
# File 'lib/tina4/field_types.rb', line 78

def json_field(name, nullable: true, default: nil)
  register_field(name, :json, nullable: nullable, default: default)
end

#numeric_field(name, nullable: true, default: nil) ⇒ Object



54
55
56
# File 'lib/tina4/field_types.rb', line 54

def numeric_field(name, nullable: true, default: nil)
  register_field(name, :float, nullable: nullable, default: default)
end

#primary_key_fieldObject



14
15
16
# File 'lib/tina4/field_types.rb', line 14

def primary_key_field
  @primary_key_field
end

#string_field(name, length: 255, primary_key: false, nullable: true, default: nil) ⇒ Object



36
37
38
39
# File 'lib/tina4/field_types.rb', line 36

def string_field(name, length: 255, primary_key: false, nullable: true, default: nil)
  register_field(name, :string, length: length, primary_key: primary_key,
                 nullable: nullable, default: default)
end

#table_name(name = nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/tina4/field_types.rb', line 18

def table_name(name = nil)
  if name
    @table_name = name
  else
    base = self.name.split("::").last.downcase
    # Pluralize by default (add "s") unless ORM_PLURAL_TABLE_NAMES is explicitly disabled
    unless ENV.fetch("ORM_PLURAL_TABLE_NAMES", "").match?(/\A(false|0|no)\z/i)
      base += "s" unless base.end_with?("s")
    end
    @table_name || base
  end
end

#text_field(name, nullable: true, default: nil) ⇒ Object



41
42
43
# File 'lib/tina4/field_types.rb', line 41

def text_field(name, nullable: true, default: nil)
  register_field(name, :text, nullable: nullable, default: default)
end

#timestamp_field(name, nullable: true, default: nil) ⇒ Object



70
71
72
# File 'lib/tina4/field_types.rb', line 70

def timestamp_field(name, nullable: true, default: nil)
  register_field(name, :timestamp, nullable: nullable, default: default)
end