Class: Masamune::Transform::Postgres::DefineTable

Inherits:
Object
  • Object
show all
Defined in:
lib/masamune/transform/postgres/define_table.rb

Defined Under Namespace

Classes: TargetPresenter

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ DefineTable

Returns a new instance of DefineTable.



25
26
27
28
29
30
# File 'lib/masamune/transform/postgres/define_table.rb', line 25

def initialize(options = {})
  @target       = options[:target]
  @files        = options[:files] || []
  @section      = options[:section]
  @skip_indexes = options[:skip_indexes]
end

Instance Method Details

#define_foreign_keys?Boolean

Returns:

  • (Boolean)


86
87
88
89
90
# File 'lib/masamune/transform/postgres/define_table.rb', line 86

def define_foreign_keys?
  return false if pre_section?
  return true if post_section?
  !target.delay_foreign_keys?
end

#define_functions?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/masamune/transform/postgres/define_table.rb', line 60

def define_functions?
  !post_section?
end

#define_indexes?Boolean

Returns:

  • (Boolean)


79
80
81
82
83
84
# File 'lib/masamune/transform/postgres/define_table.rb', line 79

def define_indexes?
  return false if pre_section?
  return false if skip_indexes?
  return true if post_section?
  !target.delay_indexes?
end

#define_inheritance?Boolean

Returns:

  • (Boolean)


72
73
74
75
76
77
# File 'lib/masamune/transform/postgres/define_table.rb', line 72

def define_inheritance?
  return false unless target.inherited?
  return false if pre_section?
  return true if post_section?
  !target.delay_indexes?
end

#define_primary_keys?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/masamune/transform/postgres/define_table.rb', line 68

def define_primary_keys?
  !pre_section? && !(target.temporary? || target.primary_keys.empty?)
end

#define_sequences?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/masamune/transform/postgres/define_table.rb', line 64

def define_sequences?
  !post_section?
end

#define_tables?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/masamune/transform/postgres/define_table.rb', line 56

def define_tables?
  !post_section?
end

#define_types?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/masamune/transform/postgres/define_table.rb', line 52

def define_types?
  !post_section?
end

#define_unique_constraints?Boolean

Returns:

  • (Boolean)


92
93
94
95
96
# File 'lib/masamune/transform/postgres/define_table.rb', line 92

def define_unique_constraints?
  return false if pre_section?
  return true if post_section?
  !target.delay_unique_constraints?
end

#filesObject



40
41
42
# File 'lib/masamune/transform/postgres/define_table.rb', line 40

def files
  Masamune::Schema::Map.convert_files(@files)
end

#insert_rows?Boolean

Returns:

  • (Boolean)


98
99
100
# File 'lib/masamune/transform/postgres/define_table.rb', line 98

def insert_rows?
  !pre_section? && !post_section?
end

#load_files?Boolean

Returns:

  • (Boolean)


102
103
104
# File 'lib/masamune/transform/postgres/define_table.rb', line 102

def load_files?
  all_section?
end

#localsObject



32
33
34
# File 'lib/masamune/transform/postgres/define_table.rb', line 32

def locals
  { target: target, files: files, helper: self }
end

#perform_analyze?Boolean

Returns:

  • (Boolean)


106
107
108
109
110
# File 'lib/masamune/transform/postgres/define_table.rb', line 106

def perform_analyze?
  return false if pre_section?
  return true if post_section?
  files.any? || target.insert_rows.any?
end

#sectionObject



44
45
46
# File 'lib/masamune/transform/postgres/define_table.rb', line 44

def section
  @section || :all
end

#skip_indexes?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/masamune/transform/postgres/define_table.rb', line 48

def skip_indexes?
  @skip_indexes == true
end

#targetObject



36
37
38
# File 'lib/masamune/transform/postgres/define_table.rb', line 36

def target
  TargetPresenter.new(@target)
end