class Jekyll_Xml_Source::Generator

Public Instance Methods

generate(site) click to toggle source
# File jekyll_xml_source.rb, line 35
def generate(site)
  config = site.config['jekyll_xml']
  data_source = (site.config['data_source'] || '_data')

  if !config
    return
  end

  config.each do |data|
    if data['cache']
      site.data[data['data']] = loadFromCache(data_source, data['data'])
    end

    if site.data[data['data']].nil?
      begin
        result = Net::HTTP.get_response(URI.parse(data['source'])).body
        site.data[data['data']] = JSON.load(Hash.from_xml(result).to_json)
      rescue
        next
      end

      if data['cache']
        saveToCache(data_source, data['data'], Hash.from_xml(result).to_json)
      end
    end

  end

end
loadFromCache(data_source, name) click to toggle source
# File jekyll_xml_source.rb, line 25
def loadFromCache(data_source, name)
  path = "#{data_source}/#{name}.json"
  if not File.exist?(path)
    return
  end
  File.open(path,"r") do |file|
    return JSON.load(file.read())
  end
end
saveToCache(data_source, name, content) click to toggle source
# File jekyll_xml_source.rb, line 18
def saveToCache(data_source, name, content)
  path = "#{data_source}/#{name}.json"
  File.open(path,"w") do |file|
    file.write(content)
  end
end