Class: TD2Planet::Writer

Inherits:
Object
  • Object
show all
Defined in:
lib/td2planet/writer.rb

Instance Method Summary collapse

Constructor Details

#initialize(config, formatter) ⇒ Writer

Returns a new instance of Writer.



10
11
12
13
14
15
16
17
# File 'lib/td2planet/writer.rb', line 10

def initialize(config, formatter)
  @config = config
  @output_dir ||= Pathname.new(config['output_dir'])
  unless @output_dir.exist?
    @output_dir.mkdir
  end
  @formatter = formatter
end

Instance Method Details

#output_html(rss_list) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/td2planet/writer.rb', line 19

def output_html(rss_list)
  if @config.key?('output_html')
    output_html = @output_dir + @config['output_html']
  else
    output_html = @output_dir + 'index.html'
  end

  output_html.open('wb') do |f|
    f.write(@formatter.to_html(rss_list))
  end
end

#output_opml(rss_list) ⇒ Object



31
32
33
34
35
36
# File 'lib/td2planet/writer.rb', line 31

def output_opml(rss_list)
  output_opml = @output_dir + 'opml.xml'
  output_opml.open('wb') do |f|
    f.write(@formatter.to_opml(rss_list))
  end
end

#output_rss(rss_list) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/td2planet/writer.rb', line 38

def output_rss(rss_list)
  [
    ['1.0', 'rss10.xml'],
    ['2.0', 'rss20.xml'],
  ].each do |rss_version, basename|
    output_rss = @output_dir + basename
    output_rss.open('wb') do |f|
      f.write(@formatter.to_rss(rss_list, rss_version, basename))
    end
  end
end