class Staticdctl::StaticdClient
Class to interact with the Staticd API.
Example:
staticd_client = Staticdctl::StaticdClient.new( url: "http://staticd.domain.tld/api", access_id: ENV["STATICD_ACCESS_ID"], secret_key: ENV["STATICD_SECRET_KEY"] )
Public Class Methods
new(url, hmac={})
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 15 def initialize(url, hmac={}) url = url access_id = hmac[:access_id] || "" secret_key = hmac[:secret_key] || "" @staticd_api = Staticdctl::RESTClient.new( url, access_id: access_id, secret_key: secret_key ) end
Public Instance Methods
attach_domain(site_name, domain_params) { |build_response(data)| ... }
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 50 def attach_domain(site_name, domain_params) @staticd_api.call( :post, "/sites/#{site_name}/domain_names", domain_params ) do |data| yield build_response(data) end end
cached_resources(digests) { |build_response(data)| ... }
click to toggle source
Parse a sitemap of resources digest and return of sitemap purged of already know resources.
Submit a list of resources sha1 digests with HTTP path (in the sitemap format) and get a list purged of already known resources (resources already stored in database).
# File lib/staticdctl/staticd_client.rb, line 90 def cached_resources(digests) @staticd_api.call(:post, "/resources/get_cached", digests) do |data| yield build_response(data) end end
create_release(site_name, archive_file, sitemap_file) { |build_response(data)| ... }
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 75 def create_release(site_name, archive_file, sitemap_file) @staticd_api.send_files( "/sites/#{site_name}/releases", {file: archive_file, sitemap: sitemap_file} ) do |data| yield build_response(data) end end
create_site(site_params) { |build_response(data)| ... }
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 32 def create_site(site_params) @staticd_api.call(:post, "/sites", site_params) do |data| yield build_response(data) end end
destroy_site(site_name) { || ... }
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 38 def destroy_site(site_name) @staticd_api.call(:delete, "/sites/#{site_name}") do yield end end
detach_domain(site_name, domain_name) { || ... }
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 60 def detach_domain(site_name, domain_name) @staticd_api.call( :delete, "/sites/#{site_name}/domain_names/#{domain_name}" ) do yield end end
domains(site_name) { |build_response(data)| ... }
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 44 def domains(site_name) @staticd_api.call(:get, "/sites/#{site_name}/domain_names") do |data| yield build_response(data) end end
releases(site_name) { |build_response(data)| ... }
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 69 def releases(site_name) @staticd_api.call :get, "/sites/#{site_name}/releases" do |data| yield build_response(data) end end
sites() { |build_response(data)| ... }
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 26 def sites @staticd_api.call(:get, "/sites") do |data| yield build_response(data) end end
Private Instance Methods
build_collection(data)
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 102 def build_collection(data) data.map { |element| build_object(element) } end
build_object(data)
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 106 def build_object(data) struct = OpenStruct.new data.each do |key, value| struct[key] = case when value.kind_of?(Array) then build_collection(value) when value.kind_of?(Hash) then build_object(value) else value end end struct end
build_response(data)
click to toggle source
# File lib/staticdctl/staticd_client.rb, line 98 def build_response(data) data.kind_of?(Array) ? build_collection(data) : build_object(data) end