Module: WpConversion

Extended by:
Methadone::CLILogging
Defined in:
lib/wp_conversion.rb,
lib/wp_conversion/convert.rb,
lib/wp_conversion/version.rb,
lib/wp_conversion/save_items.rb,
lib/wp_conversion/xml_to_hash.rb

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.convert(item, as) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/wp_conversion/convert.rb', line 8

def convert(item,as)
  debug "convert: item: #{item.inspect}, as: #{as.inspect}"
  raise "Must specify a conversion" if as.nil?
  case as
  when :yaml
    convert_to_yaml(item)
  when :markdown
    convert_to_markdown(item)
  else
    raise "Unknown converstion: #{as.inspect}"
  end
end

.convert_to_markdown(item) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/wp_conversion/convert.rb', line 25

def convert_to_markdown(item)
  return '' unless %w{page post}.include? item['post_type']
  markdown= <<-EOT
---
layout: #{item['post_type']}
author: #{item['creator']}
date: #{item['post_date']}
categories: [#{join_if_array(item['category']).downcase}]
---
# #{item['title']}

EOT
  markdown += html_to_markdown(item['encoded'].join)

end

.convert_to_yaml(item) ⇒ Object



21
22
23
# File 'lib/wp_conversion/convert.rb', line 21

def convert_to_yaml(item)
  item.to_yaml
end

.html_to_markdown(html) ⇒ Object



41
42
43
# File 'lib/wp_conversion/convert.rb', line 41

def html_to_markdown(html)
  HtmlMassage.markdown(html.gsub(/\n/,"<br />\n")) + "\n\n"
end

.join_if_array(s) ⇒ Object



45
46
47
48
49
50
51
52
# File 'lib/wp_conversion/convert.rb', line 45

def join_if_array(s)
  debug "#{__FILE__}:#{__LINE__}: s: #{s.inspect}"
  if s === Array
    s.join(", ")
  else
    s.to_s
  end
end

.save_an_item(item, as = :yaml) ⇒ Object



12
13
14
# File 'lib/wp_conversion/save_items.rb', line 12

def save_an_item(item,as=:yaml)
  File.write(save_file_name(item,as.to_s), convert(item,as))
end

.save_file_name(item, ext = '') ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/wp_conversion/save_items.rb', line 16

def save_file_name(item, ext='')
  dir_name = item['post_type'].pluralize
  FileUtils.mkdir_p(dir_name) unless File.directory? dir_name
  
  prefix = (item['post_type'] == 'post' ?
            item['post_date'].split(" ").first + '-':
            ''
            )
  File.join(dir_name, "#{prefix}#{item['post_name']}.#{ext}")
end

.save_items(items, as = :yaml) ⇒ Object



8
9
10
# File 'lib/wp_conversion/save_items.rb', line 8

def save_items(items,as=:yaml)
  items.each{|item| save_an_item(item,as)}
end

.xml_to_hash(xml) ⇒ Object



7
8
9
# File 'lib/wp_conversion/xml_to_hash.rb', line 7

def xml_to_hash(xml)
  Hash.from_xml(xml)
end