Module: Logidze::Utils::FunctionDefinitions

Defined in:
lib/logidze/utils/function_definitions.rb

Class Method Summary collapse

Class Method Details

.from_dbObject



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/logidze/utils/function_definitions.rb', line 23

def from_db
  query = <<~SQL
    SELECT pp.proname, pg_get_functiondef(pp.oid) AS definition
    FROM pg_proc pp
    WHERE pp.proname like 'logidze_%'
    ORDER BY pp.oid;
  SQL
  ActiveRecord::Base.connection.execute(query).map do |row|
    version = parse_version(row["definition"])
    FuncDef.new(row["proname"], version, nil)
  end
end

.from_fsObject



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/logidze/utils/function_definitions.rb', line 9

def from_fs
  function_paths = Dir.glob(File.join(__dir__, "..", "..", "generators", "logidze", "install", "functions", "*.sql"))
  function_paths.map do |path|
    name = path.match(/([^\/]+)\.sql/)[1]

    file = File.open(path)
    header, version_comment = file.readline, file.readline

    signature = parse_signature(header)
    version = parse_version(version_comment)
    FuncDef.new(name, version, signature)
  end
end