class WikidataPositionHistory::PageRewriter
Rewrites a Wiki page
Constants
- MALFORMED_ID_ERROR
- NO_ID_ERROR
- WIKI_PASSWORD
- WIKI_TEMPLATE_NAME
- WIKI_USERNAME
Attributes
mediawiki_site[R]
page_title[R]
Public Class Methods
new(mediawiki_site:, page_title:)
click to toggle source
# File lib/wikidata_position_history.rb, line 51 def initialize(mediawiki_site:, page_title:) @mediawiki_site = mediawiki_site @page_title = page_title.tr('_', ' ') end
Public Instance Methods
new_content()
click to toggle source
# File lib/wikidata_position_history.rb, line 60 def new_content return [NO_ID_ERROR, 'The id parameter was missing'] if position_id.empty? return [MALFORMED_ID_ERROR, 'The id parameter was malformed'] unless position_id[/^Q\d+$/] [WikidataPositionHistory::Report.new(position_id).wikitext, "Successfully updated holders of #{position_id}"] end
run!()
click to toggle source
# File lib/wikidata_position_history.rb, line 56 def run! section.replace_output(*new_content) end
Private Instance Methods
client()
click to toggle source
# File lib/wikidata_position_history.rb, line 85 def client abort 'You must set the WIKI_USERNAME and WIKI_PASSWORD environment variables' unless WIKI_USERNAME && WIKI_PASSWORD @client ||= MediaWiki::Client.new( site: mediawiki_site, username: ENV['WIKI_USERNAME'], password: ENV['WIKI_PASSWORD'] ) end
derived_id()
click to toggle source
# File lib/wikidata_position_history.rb, line 81 def derived_id page_title.scan(/Q\d+/).last.to_s end
id_param()
click to toggle source
# File lib/wikidata_position_history.rb, line 77 def id_param section.params[:id].to_s.strip end
position_id()
click to toggle source
# File lib/wikidata_position_history.rb, line 71 def position_id return id_param unless id_param.empty? derived_id end
section()
click to toggle source
# File lib/wikidata_position_history.rb, line 94 def section @section ||= MediaWiki::Page::ReplaceableContent.new( client: client, title: page_title, template: WIKI_TEMPLATE_NAME ) end