require 'html2markdown'
module WP2Middleman
class Post
attr_accessor :post
def initialize(nokogiri_post_doc)
@post = nokogiri_post_doc
end
def title
post.css('title').text
end
def valid?
!(post_date.nil? || title.nil? || date_time_published.nil? || content.nil?)
end
def attachment?
type == 'attachment'
end
def field(field)
post.xpath(field).first.inner_text
end
def post_date
post.xpath("wp:post_date").first.inner_text
end
def date_published
Date.parse(post_date).to_s
end
def date_time_published
Time.parse(post_date).strftime("%F %T")
end
def status
post.xpath("wp:status").first.inner_text
end
def type
post.xpath("wp:post_type").first.inner_text
end
def published?
status == 'publish'
end
def content
post.at_xpath(".//content:encoded").inner_text
end
def tags
tags = []
categories = post.xpath("category")
categories.each do |category|
tag_name = category.css("@nicename").text
tags.push tag_name unless tag_name == 'uncategorized'
end
tags
end
end
end