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



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

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



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

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



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

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



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

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



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

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



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

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



26
27
28
29
# File 'lib/tina4/field_types.rb', line 26

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



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

def json_field(name, nullable: true, default: nil)
  register_field(name, :json, 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



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

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
# File 'lib/tina4/field_types.rb', line 18

def table_name(name = nil)
  if name
    @table_name = name
  else
    @table_name || self.name.split("::").last.downcase + "s"
  end
end

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



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

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



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

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