class Jekyll::BloggerGenerator
Public Class Methods
new(config = {})
click to toggle source
Calls superclass method
# File lib/jekyll/blogger_generator.rb, line 6 def initialize(config = {}) @config = config @blogger = Google::Apis::BloggerV3::BloggerService.new @blogger.key = blogger_config['key'] super end
Public Instance Methods
generate(site)
click to toggle source
# File lib/jekyll/blogger_generator.rb, line 13 def generate(site) urls = [] << blogger_config['url'] << blogger_config['urls'] urls.flatten.compact.each do |url| blog = @blogger.get_blog_by_url(url['url'] || url) create_pages(site, blog, url['list_page_parameters']) create_posts(site, blog, url['list_post_parameters']) end end
Private Instance Methods
blogger_config()
click to toggle source
# File lib/jekyll/blogger_generator.rb, line 26 def blogger_config @blogger_config ||= @config['blogger'] || {} end
create_pages(site, blog, list_page_parameters)
click to toggle source
# File lib/jekyll/blogger_generator.rb, line 30 def create_pages(site, blog, list_page_parameters) list_page_parameters = blogger_config['list_page_parameters'] if list_page_parameters.nil? list_page_parameters = {} if list_page_parameters.nil? if list_page_parameters parameters = { }.merge(list_page_parameters).deep_symbolize_keys dir = blog.url[/^https?:\/\/([^.]+)\./, 1] @blogger.list_pages(blog.id, **parameters).items.each do |page| blogger_page = PageWithoutAFile.new(site, site.source, dir, page.url[/^.+\/p\/(.+)/, 1]) blogger_page.content = page.content blogger_page.data.merge!(page.to_h.deep_stringify_keys, source: 'Blogger') blogger_page.data.delete('content') site.pages << blogger_page end end end
create_posts(site, blog, list_post_parameters)
click to toggle source
# File lib/jekyll/blogger_generator.rb, line 50 def create_posts(site, blog, list_post_parameters) list_post_parameters = blogger_config['list_post_parameters'] if list_post_parameters.nil? list_post_parameters = {} if list_post_parameters.nil? if list_post_parameters parameters = { max_results: 500 }.merge(list_post_parameters).deep_symbolize_keys loop do list_posts = @blogger.list_posts(blog.id, **parameters) list_posts.items.each do |post| doc = BloggerDocument.new(post, site: site, collection: site.posts, blog_url: blog.url) doc.read site.posts.docs << doc end break if (parameters[:page_token] = list_posts.next_page_token).nil? end end end