⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tada.rb

📁 用ruby on rails写的一个博客程序,还不错..ruby on rails的确是个好框架
💻 RB
字号:
require 'open-uri'require 'time'require 'rexml/document'# Example:## tada = Tada.new('http://<nick>.tadalist.com/lists/feed/<id>?token=<token>')# tada.tasks.each do |task|#   puts "#{task.title} @ #{task.link} updated at #{task.date}"# end#class Tada  include REXML  attr_accessor :url, :tasks, :link, :title, :description  # This object holds given information of a task  class TaskItem < Struct.new(:link, :title, :date, :status)    def to_s; title end    def date=(value); super(Time.parse(value)) end  end  # Pass the url to the RSS feed you would like to keep tabs on  # by default this will request the rss from the server right away and  # fill the tasks array  def initialize(url, refresh = true)  def initialize(url, refresh = true)    self.tasks  = []    self.url    = url    self.refresh if refresh  end  # This method lets you refresh the tasks int the tasks array  # useful if you keep the object cached in memory and  def refresh    open(@url) do |http|      parse(http.read)    end  endprivate  def parse(body)    xml = Document.new(body)    self.tasks        = []    self.link         = XPath.match(xml, "//channel/link/text()")    self.title        = XPath.match(xml, "//channel/title/text()")    self.description  = XPath.match(xml, "//channel/description/text()")    XPath.each(xml, "//item/") do |elem|      title = XPath.match(elem, "title/text()").to_s       # extract the status from the title       status = if title =~ /^(.+): (.+)$/         title = $2         $1.downcase.intern       else         :unknown       end      task = TaskItem.new      task.title = title      task.status = status      task.date  = XPath.match(elem, "pubDate/text()").to_s      task.link  = XPath.match(elem, "link/text()").to_s      tasks << task    end    self.tasks = tasks.sort_by { |task| task.status.to_s }  endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -