Module: SqlBeautifier::CreateTableParsing

Included in:
CreateTable, CreateTableAs
Defined in:
lib/sql_beautifier/create_table_parsing.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



5
6
7
8
9
# File 'lib/sql_beautifier/create_table_parsing.rb', line 5

def self.extended(base)
  base.private_class_method :detect_modifier
  base.private_class_method :detect_if_not_exists?
  base.private_class_method :skip_past_if_not_exists!
end

Instance Method Details

#detect_if_not_exists?(scanner) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
22
23
24
# File 'lib/sql_beautifier/create_table_parsing.rb', line 15

def detect_if_not_exists?(scanner)
  return false unless scanner.keyword_at?("if")

  probe = Scanner.new(scanner.source, position: scanner.position)
  probe.skip_past_keyword!("if")
  return false unless probe.keyword_at?("not")

  probe.skip_past_keyword!("not")
  probe.keyword_at?("exists")
end

#detect_modifier(scanner) ⇒ Object



11
12
13
# File 'lib/sql_beautifier/create_table_parsing.rb', line 11

def detect_modifier(scanner)
  Constants::TABLE_MODIFIERS.detect { |modifier| scanner.keyword_at?(modifier) }
end

#skip_past_if_not_exists!(scanner) ⇒ Object



26
27
28
29
30
# File 'lib/sql_beautifier/create_table_parsing.rb', line 26

def skip_past_if_not_exists!(scanner)
  scanner.skip_past_keyword!("if")
  scanner.skip_past_keyword!("not")
  scanner.skip_past_keyword!("exists")
end