class Solutus::Solutus_Server
Constants
- CSS
- FILE_EXCLUDES
- UPLOAD_DIR
- UPLOAD_DIR_SUFF
Public Instance Methods
blog_select()
click to toggle source
# File lib/solutus.rb, line 519 def blog_select result = "<select name=\"post-path\">\n" Solutus.blog_urls.each do |yr, arr| sorted = arr.sort_by {|k| k["date"]} .reverse sorted.each do |blog| title = blog["title"] path = blog["file_path"] url = blog["url"] result += "<option value=\"#{path},#{url}\">#{title}</option>\n" end end result += "</select>" result end
page_select()
click to toggle source
# File lib/solutus.rb, line 471 def page_select result = "<select name=\"page-path\">\n" Solutus.page_urls.each do |page| path = page["file_path"] title = page["title"] result += "<option value=\"#{path}\">#{title}</option>\n" end result += "</select>" result end
path_to_resources()
click to toggle source
# File lib/solutus.rb, line 75 def path_to_resources File.join(File.dirname(File.expand_path(__FILE__)), '../resources') end
render_edit_file(path)
click to toggle source
# File lib/solutus.rb, line 331 def render_edit_file(path) #TODO: do smth diff for YML files... ServerStache.template = File.read(File.join(path_to_resources, "editFile.html")) result = ServerStache.new result[:content] = File.read(path) result[:path] = path result.render end
render_edit_page(path)
click to toggle source
# File lib/solutus.rb, line 344 def render_edit_page(path) f = File.open(File.join(path_to_resources, "editPage.html"), "r") template = "" f.each_line do |line| template += line end f.close f = File.open(path, "r") file_contents = "" f.each_line do |line| file_contents += line end data = YAML.load(file_contents) ServerStache.template = template result = ServerStache.new result[:css] = CSS result[:title] = data["title"] result[:path] = path link = path.split("/")[-1].split(".")[0] if ["error", "index"].include?(link) link = link + ".html" end result[:link] = link settings.global_settings.each do |key, val| result[key.to_sym] = val end page_html = Solutus.render_page(Solutus.templates, settings.global_settings, data) parser = Nokogiri::HTML(page_html) parser.at_css("#solutus-content")['contenteditable'] = true parser.at_css("#solutus-content")['style'] = "border: 1px black dashed" result[:everything] = parser.at_css("#solutus-everything") result.render end
render_edit_post(path, url="/")
click to toggle source
# File lib/solutus.rb, line 381 def render_edit_post(path, url="/") f = File.open(File.join(path_to_resources, "editBlog.html"), "r") template = "" f.each_line do |line| template += line end f.close SolutusStache.template = template result = SolutusStache.new f = File.open(path, "r") file_contents = "" f.each_line do |line| file_contents += line end data = YAML.load(file_contents) result[:css] = CSS result[:title] = data["title"] result[:date] = data["date"].strftime(BLOG_DATE_FORMAT) result[:markdown] = file_contents.split("---")[-1] result[:link] = url result[:canview] = url != "/" result[:path] = path result[:subtitle] = data["subtitle"] result.render end
render_file_upload_dirs()
click to toggle source
# File lib/solutus.rb, line 506 def render_file_upload_dirs result = '' unless File.directory?(UPLOAD_DIR) FileUtils.mkdir_p(UPLOAD_DIR) end Dir.entries(UPLOAD_DIR).each do |d| if (d != '.' && d != '..') && File.directory?(File.join(UPLOAD_DIR, d)) result += "<option>#{d}</option>" end end result end
render_files()
click to toggle source
# File lib/solutus.rb, line 482 def render_files result = "<select name=\"path\">\n" dirs = [".", "static/css", "templates", "pages/site-pages"] dirs.each do |dir| result += "<optgroup label='#{dir}'>" if dir == "." files = Dir.entries(dir).select {|f| !File.directory? f} else files = Solutus.relative_path_to_all_files_in_dir(dir) end files.each do |filename| if !FILE_EXCLUDES.include?(filename) path = File.join(dir, filename) if File.file?(path) result += "<option value=\"#{path}\">#{filename}</option>\n" end end end result += "</optgroup>" end result += "</select>" result end
render_index()
click to toggle source
# File lib/solutus.rb, line 418 def render_index f = File.open(File.join(path_to_resources, "index.html"), "r") template = "" f.each_line do |line| template += line end f.close SolutusStache.template = template result = SolutusStache.new settings.global_settings.each do |key, val| result[key.to_sym] = val end dirs = Dir.entries(SITE_PAGES_PATH) puts dirs dir_res = '' dirs.each do |d| if File.directory?(File.join(SITE_PAGES_PATH, d)) && d != ".." val = d + "/" if val == '.' val = "/" end dir_res += "<option value='#{d}'>#{val}</option>" end end result[:page_paths] = dir_res result[:blogs] = blog_select result[:pages] = page_select result[:css] = CSS result[:files] = render_files result[:file_upload_paths] = render_file_upload_dirs result[:version] = VERSION result.render end
render_local(f, data)
click to toggle source
# File lib/solutus.rb, line 452 def render_local(f, data) f = File.open(File.join(path_to_resources, f), "r") template = "" f.each_line do |line| template += line end f.close SolutusStache.template = template result = SolutusStache.new settings.global_settings.each do |key, val| result[key.to_sym] = val end data.each do |key, val| result[key.to_sym] = val end result[:css] = CSS result.render end
render_login(message="")
click to toggle source
# File lib/solutus.rb, line 410 def render_login(message="") ServerStache.template = File.read(File.join(path_to_resources, "login.html")) result = ServerStache.new result[:message] = message result[:css] = CSS result.render end
send_404()
click to toggle source
# File lib/solutus.rb, line 340 def send_404 send_file File.join(path_to_resources, "404.html") end
write_log(stuff)
click to toggle source
# File lib/solutus.rb, line 319 def write_log(stuff) times = Time.now.getlocal('-07:00') if !File.file?(LOG_FILE) f = File.new(LOG_FILE, 'w') f.write("#{times} (PST) Creating log file\n") f.close end f = File.open(LOG_FILE, 'a') f.write("#{times} #{stuff}\n") f.close end