Class: Pgtk::PgsqlTask

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/pgtk/pgsql_task.rb

Overview

Pgsql rake task.

Author

Yegor Bugayenko ([email protected])

Copyright

Copyright © 2019-2025 Yegor Bugayenko

License

MIT

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) {|Pgtk::PgsqlTask, Object| ... } ⇒ PgsqlTask

Initialize a new PostgreSQL server task.

Parameters:

  • args (Array)

    Task arguments

Yields:



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/pgtk/pgsql_task.rb', line 72

def initialize(*args, &task_block)
  super()
  @name = args.shift || :pgsql
  @fresh_start = false
  @quiet = false
  @user = 'test'
  @config = {}
  @password = 'test'
  @dbname = 'test'
  @port = nil
  desc 'Start a local PostgreSQL server' unless ::Rake.application.last_description
  task(name, *args) do |_, task_args|
    RakeFileUtils.send(:verbose, true) do
      yield(*[self, task_args].slice(0, task_block.arity)) if block_given?
      run
    end
  end
end

Instance Attribute Details

#configHash

Configuration options for PostgreSQL server

Returns:

  • (Hash)


62
63
64
# File 'lib/pgtk/pgsql_task.rb', line 62

def config
  @config
end

#dbnameString

PostgreSQL database name

Returns:

  • (String)


46
47
48
# File 'lib/pgtk/pgsql_task.rb', line 46

def dbname
  @dbname
end

#dirString

Directory where PostgreSQL server files will be stored

Returns:

  • (String)


30
31
32
# File 'lib/pgtk/pgsql_task.rb', line 30

def dir
  @dir
end

#force_dockerBoolean

Use force docker

Returns:

  • (Boolean)


66
67
68
# File 'lib/pgtk/pgsql_task.rb', line 66

def force_docker
  @force_docker
end

#fresh_startBoolean

Whether to delete the PostgreSQL data directory on each run

Returns:

  • (Boolean)


34
35
36
# File 'lib/pgtk/pgsql_task.rb', line 34

def fresh_start
  @fresh_start
end

#nameSymbol

Task name

Returns:

  • (Symbol)


26
27
28
# File 'lib/pgtk/pgsql_task.rb', line 26

def name
  @name
end

#passwordString

PostgreSQL password

Returns:

  • (String)


42
43
44
# File 'lib/pgtk/pgsql_task.rb', line 42

def password
  @password
end

#portInteger?

TCP port for PostgreSQL server (random if nil)

Returns:

  • (Integer, nil)


58
59
60
# File 'lib/pgtk/pgsql_task.rb', line 58

def port
  @port
end

#quietBoolean

Whether to suppress output

Returns:

  • (Boolean)


54
55
56
# File 'lib/pgtk/pgsql_task.rb', line 54

def quiet
  @quiet
end

#userString

PostgreSQL username

Returns:

  • (String)


38
39
40
# File 'lib/pgtk/pgsql_task.rb', line 38

def user
  @user
end

#yamlString

Path to YAML file where configuration will be written

Returns:

  • (String)


50
51
52
# File 'lib/pgtk/pgsql_task.rb', line 50

def yaml
  @yaml
end