Class: Migrate::Lang::Go

Inherits:
Migrate::Lang show all
Defined in:
lib/migrate/lang/go.rb

Instance Method Summary collapse

Constructor Details

#initializeGo

Returns a new instance of Go.



4
5
6
# File 'lib/migrate/lang/go.rb', line 4

def initialize
  @ext = "go"
end

Instance Method Details

#create_migration(dir) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/migrate/lang/go.rb', line 8

def create_migration(dir)
  File.open("#{dir}/up.#{@ext}", "w") do |f|
    f.puts <<-eot
package main

func main() {
    // Here goes your Go migration forward
}
    eot
  end

  File.open("#{dir}/down.#{@ext}", "w") do |f|
    f.puts <<-eot
package main

func main() {
    // Here goes your Go migration backward
}
    eot
  end
end

#exec_migration(dir, is_up) ⇒ Object



30
31
32
33
34
# File 'lib/migrate/lang/go.rb', line 30

def exec_migration(dir, is_up)
  script = "#{dir}/#{is_up ? "up" : "down"}.#{@ext}"
  Log.info("Executing #{script}...")
  `go run #{script}`
end