class Drumknott::Refresh
Constants
- URL
Attributes
key[R]
name[R]
Public Class Methods
call(name, key, include_pages = true)
click to toggle source
# File lib/drumknott/refresh.rb, line 6 def self.call(name, key, include_pages = true) new(name, key, include_pages).call end
new(name, key, include_pages)
click to toggle source
# File lib/drumknott/refresh.rb, line 10 def initialize(name, key, include_pages) @name = name @key = key @include_pages = include_pages end
Public Instance Methods
call()
click to toggle source
# File lib/drumknott/refresh.rb, line 16 def call site.process clear update end
Private Instance Methods
clear()
click to toggle source
# File lib/drumknott/refresh.rb, line 27 def clear connection.post do |request| request.url "/api/v1/#{name}/pages/clear" request.headers["AUTHENTICATION"] = key end end
connection()
click to toggle source
# File lib/drumknott/refresh.rb, line 34 def connection @connection ||= Faraday.new(:url => URL) do |faraday| faraday.request :url_encoded faraday.adapter Faraday.default_adapter end end
include_pages?()
click to toggle source
# File lib/drumknott/refresh.rb, line 41 def include_pages? @include_pages end
output()
click to toggle source
# File lib/drumknott/refresh.rb, line 45 def output @output ||= output_class.new { |document| update_document document } end
output_class()
click to toggle source
# File lib/drumknott/refresh.rb, line 49 def output_class return Drumknott::Outputs::Silent if ENV["DRUMKNOTT_SILENT"] require "ruby-progressbar" Drumknott::Outputs::ProgressBar rescue LoadError Drumknott::Outputs::Silent end
page_json_for(document)
click to toggle source
# File lib/drumknott/refresh.rb, line 58 def page_json_for(document) JSON.generate( :page => { :name => document.data["title"], :path => document.url, :content => document.output } ) end
site()
click to toggle source
# File lib/drumknott/refresh.rb, line 68 def site @site ||= Jekyll::Site.new Jekyll.configuration end
update()
click to toggle source
# File lib/drumknott/refresh.rb, line 72 def update output.call "Posts", site.posts.docs return unless include_pages? output.call( "Pages", site.pages.select { |page| page.html? || page.url.end_with?("/") } ) end
update_document(document)
click to toggle source
# File lib/drumknott/refresh.rb, line 82 def update_document(document) connection.put do |request| request.url "/api/v1/#{name}/pages" request.headers["AUTHENTICATION"] = key request.headers["Content-Type"] = "application/json" request.body = page_json_for document end end