class Cloudflare
methods to create/update/list Cloudflare
A records
Public Class Methods
new(cf_token, domain, email)
click to toggle source
# File lib/droptoflare/cloudflare.rb, line 7 def initialize(cf_token, domain, email) @cf_token = cf_token @domain = domain @email = email end
Public Instance Methods
create_record(name, ip)
click to toggle source
Create new A record
# File lib/droptoflare/cloudflare.rb, line 14 def create_record(name, ip) data = { a: 'rec_new', tkn: @cf_token, email: @email, z: @domain, name: name, content: ip, type: 'A', ttl: 120 } query(data) end
records()
click to toggle source
Return hash with all A records for domain
# File lib/droptoflare/cloudflare.rb, line 29 def records entries = {} data = { a: 'rec_load_all', tkn: @cf_token, email: @email, z: @domain } r = query(data) r['response']['recs']['objs'].each do |e| next if e['type'] != 'A' entries[e['name']] = { ip: e['content'], id: e['rec_id'] } end entries end
update_record(name, ip, id)
click to toggle source
Update existing record
# File lib/droptoflare/cloudflare.rb, line 46 def update_record(name, ip, id) data = { a: 'rec_edit', tkn: @cf_token, email: @email, z: @domain, name: name, content: ip, id: id, type: 'A', ttl: 120 } query(data) end
Private Instance Methods
query(data)
click to toggle source
# File lib/droptoflare/cloudflare.rb, line 63 def query(data) uri = URI.parse('https://www.cloudflare.com/api_json.html') resp = Net::HTTP.post_form(uri, data) r = JSON.parse(resp.body) fail r['msg'] if r['result'] != 'success' r end