Class: GandiCli::Cli

Inherits:
Thor
  • Object
show all
Defined in:
lib/gandi_cli/cli.rb

Instance Method Summary collapse

Instance Method Details

#activate(zone_name, version) ⇒ Object



27
28
29
30
# File 'lib/gandi_cli/cli.rb', line 27

def activate(zone_name, version)
  zone = GandiCli::Zone.find(client, zone_name)
  zone.find_version(version).activate!
end

#add_record(zone_name, type, ttl, name, value) ⇒ Object



12
13
14
15
16
# File 'lib/gandi_cli/cli.rb', line 12

def add_record(zone_name, type, ttl, name, value)
  zone = GandiCli::Zone.find(client, zone_name)
  version = editable_version(zone)
  version.add_record(type, ttl.to_i, name, value)
end

#copy_version(zone_name, version = 0) ⇒ Object



55
56
57
58
59
# File 'lib/gandi_cli/cli.rb', line 55

def copy_version(zone_name, version = 0)
  zone = GandiCli::Zone.find(client, zone_name)
  new_version = zone.find_version(version.to_i).copy
  puts "New version is #{new_version.id}"
end

#delete_record(zone_name, version, record_id) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/gandi_cli/cli.rb', line 33

def delete_record(zone_name, version, record_id)
  zone = GandiCli::Zone.find(client, zone_name)
  zone_record = zone.find_version(version).records.find{ |record|
    record.id == record_id.to_i
  }
  if zone_record
    puts "Deleting #{format_record(zone_record)}"
    zone_record.delete
  else
    puts "Record not found"
  end
end

#listObject



4
5
6
7
8
9
# File 'lib/gandi_cli/cli.rb', line 4

def list
  puts "%-30s %10s %s" % %w[name zone_id current_version]
  GandiCli::Zone.list(client).each do |zone|
    puts "%-30s %10s %15s" % [zone.name, zone.id, zone.version.id]
  end
end

#records(zone_name, version) ⇒ Object



19
20
21
22
23
24
# File 'lib/gandi_cli/cli.rb', line 19

def records(zone_name, version)
  zone = GandiCli::Zone.find(client, zone_name)
  zone.find_version(version).records.each do |record|
    puts "%s %s %s %s %s" % [record.id, record.type, record.ttl, record.name, record.value]
  end
end

#versions(zone_name) ⇒ Object



47
48
49
50
51
52
# File 'lib/gandi_cli/cli.rb', line 47

def versions(zone_name)
  zone = GandiCli::Zone.find(client, zone_name)
  zone.versions.each do |version|
    puts "#{zone_name} v#{version.id}"
  end
end