Commit 2cfe218d authored by Jonathan Riddell's avatar Jonathan Riddell 🛶

make it a library, add test

parent 3af7144f
......@@ -20,32 +20,8 @@
# You should have received a copy of the GNU General Public
# License along with this library. If not, see <http://www.gnu.org/licenses/>.
require 'nokogiri'
require 'optparse'
class MetaInfoUpdater
attr_accessor :filename
attr_accessor :doc
def initialize(filename)
@filename = filename
end
def open_file
puts "Filename #{@filename}"
# TODO check file exists etc
@doc = File.open(@filename) { |f| Nokogiri::XML(f, &:noblanks) }
component = @doc.at_css("component")
releases = component.add_child("<releases><release version='1.0' date='today'/></releases>")
puts component.to_xml(:indent => 2)
end
def save_file
#File.write("#{@filename}.new", @doc.to_xml(:indent => 2))
f = File.open("#{@filename}.new", "w")
@doc.write_xml_to(f, {indent: 2})
end
end
require_relative 'lib/appstream-metainfo-release-update'
parser = OptionParser.new do |opts|
opts.banner = <<-EOS
......
#!/usr/bin/env ruby
# coding: utf-8
# frozen_string_literal: true
# Copyright (C) 2019 Jonathan Riddell <sitter@kde.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) version 3, or any
# later version accepted by the membership of KDE e.V. (or its
# successor approved by the membership of KDE e.V.), which shall
# act as a proxy defined in Section 6 of version 3 of the license.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library. If not, see <http://www.gnu.org/licenses/>.
require 'nokogiri'
require 'optparse'
class MetaInfoUpdater
attr_accessor :filename
attr_accessor :doc
attr_accessor :testing
def initialize(filename, testing = false)
@filename = filename
@testing = testing
end
def open_file
puts "Filename #{@filename}"
# TODO check file exists etc
@doc = File.open(@filename) { |f| Nokogiri::XML(f, &:noblanks) }
component = @doc.at_css("component")
releases = component.add_child("<releases><release version='1.0' date='today'/></releases>")
puts component.to_xml(:indent => 2)
end
def save_file
#File.write("#{@filename}.new", @doc.to_xml(:indent => 2))
save_file_name = @filename
save_file_name = "#{@filename}.new" if @testing
f = File.open(save_file_name, "w")
@doc.write_xml_to(f, {indent: 2})
end
end
This diff is collapsed.
This diff is collapsed.
require 'test/unit'
require_relative '../lib/appstream-metainfo-release-update'
class MetaInfoUpdaterTest < Test::Unit::TestCase
def test_new_release
puts "test"
updater = MetaInfoUpdater.new("data/no-releases.appdata.xml", true)
updater.open_file
updater.save_file
# open the __FILE__
# do the thing
# compare the file
assert_true(true)
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment