Class: Creator
- Inherits:
-
Object
- Object
- Creator
- Defined in:
- lib/creator.rb
Overview
Copyright © 2013 Cornelius Schumacher <[email protected]>
This program 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) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Instance Method Summary collapse
- #create(version, release_date) ⇒ Object
- #create_dir ⇒ Object
- #create_generic ⇒ Object
- #create_generic_manifest ⇒ Object
- #create_kf5(version, release_date) ⇒ Object
- #create_manifest(version, release_date) ⇒ Object
-
#initialize(settings, name) ⇒ Creator
constructor
A new instance of Creator.
- #is_new? ⇒ Boolean
- #manifest_basename ⇒ Object
- #update(version, release_date) ⇒ Object
- #validate_directory ⇒ Object
- #write_manifest(manifest) ⇒ Object
Constructor Details
#initialize(settings, name) ⇒ Creator
Returns a new instance of Creator.
19 20 21 22 23 24 |
# File 'lib/creator.rb', line 19 def initialize settings, name @settings = settings @settings.offline = true @name = name @dir = File.join settings.manifest_path, name end |
Instance Method Details
#create(version, release_date) ⇒ Object
100 101 102 103 104 |
# File 'lib/creator.rb', line 100 def create version, release_date create_dir m = create_manifest version, release_date write_manifest m end |
#create_dir ⇒ Object
52 53 54 |
# File 'lib/creator.rb', line 52 def create_dir FileUtils.mkdir_p File.join(@settings.manifest_path,@name) end |
#create_generic ⇒ Object
94 95 96 97 98 |
# File 'lib/creator.rb', line 94 def create_generic create_dir m = create_generic_manifest write_manifest m end |
#create_generic_manifest ⇒ Object
86 87 88 89 90 91 92 |
# File 'lib/creator.rb', line 86 def create_generic_manifest m = ManifestGeneric.new m.name = @name m.display_name = @name.capitalize m.platforms = [ "Linux" ] m end |
#create_kf5(version, release_date) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/creator.rb', line 106 def create_kf5 version, release_date create_dir m = create_manifest version, release_date m["authors"] = [ "The KDE Community" ] m["licenses"] = [ "LGPLv2.1+" ] vcs = "https://projects.kde.org/projects/kde/kdelibs/repository/revisions/frameworks/show/tier1/" vcs += @name m["urls"] = { "vcs" => vcs, "homepage" => "http://community.kde.org/Frameworks" } m["packages"] = { "source" => "http://anongit.kde.org/kdelibs/kdelibs-latest.tar.gz" } write_manifest m end |
#create_manifest(version, release_date) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/creator.rb', line 56 def create_manifest version, release_date m = ManifestRelease.new m.name = @name m.version = version m.release_date = release_date if version == "edge" m.maturity = "edge" else m.maturity = "stable" end m.platforms = [ "Linux" ] m end |
#is_new? ⇒ Boolean
26 27 28 |
# File 'lib/creator.rb', line 26 def is_new? return !File.exists?( @dir ) end |
#manifest_basename ⇒ Object
82 83 84 |
# File 'lib/creator.rb', line 82 def manifest_basename File.join @settings.manifest_path, @name, @name end |
#update(version, release_date) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/creator.rb', line 36 def update version, release_date filename = File.join @settings.manifest_path, @name, "#{@name}.#{release_date}.manifest" mh = ManifestHandler.new @settings mh.read_remote m = mh.manifest @name m.version = version m.release_date = release_date File.open( filename, "w" ) do |file| file.puts m.to_json end end |
#validate_directory ⇒ Object
30 31 32 33 34 |
# File 'lib/creator.rb', line 30 def validate_directory if !File.exists? @dir raise "Unable to find manifest directory '#{@dir}'" end end |
#write_manifest(manifest) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/creator.rb', line 70 def write_manifest manifest filename = manifest_basename if manifest.release_date filename += ".#{manifest.release_date}" end filename += ".manifest" File.open( filename, "w" ) do |file| file.puts manifest.to_json end end |