class PuppetModule::Pkg::Tasks::Modulefile
Attributes
metadata[R]
Public Class Methods
new(str)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 13 def initialize(str) @metadata = OpenStruct.new @metadata.dependencies = [] binding.eval str validate_required_fields end
parse(file)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 7 def self.parse(file) self.new(File.read(file)).metadata end
Public Instance Methods
method_missing(*args)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 20 def method_missing(*args) # TODO: Maybe display an info message about the # unrecognized/unsupported field? (it might be a typo, so the user # might be happy to know what have been ignored) end
Private Instance Methods
dependency(mod, ver)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 60 def dependency(mod, ver) a, n = mod.split('/') @metadata.dependencies << { :name => n, :author => a, :versions => dependency_versions_for(ver), } end
dependency_versions_for(versions_str)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 69 def dependency_versions_for(versions_str) versions = [] versions_str.split(/(>=|<=|==|=|<|>)\s*/)\ .select { |s| !s.empty? }\ .each_slice(2) { |v| versions << v.map { |s| s.strip }.join(" ") } versions end
description(s)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 52 def description(s) @metadata.description = s end
license(s)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 44 def license(s) @metadata.license = s end
name(s)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 28 def name(s) @metadata.author, @metadata.name = s.split %r{[-/]} end
project_page(s)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 56 def project_page(s) @metadata.project_page = s end
source(s)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 36 def source(s) @metadata.source = s end
summary(s)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 48 def summary(s) @metadata.summary = s end
validate_required_fields()
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 80 def validate_required_fields raise ArgumentError, 'Modulefile doesn`t contain name or author' unless @metadata.name and @metadata.author raise ArgumentError, 'Modulefile doesn`t contain version information' unless @metadata.version end
version(s)
click to toggle source
# File lib/puppet_module/pkg/tasks/modulefile.rb, line 32 def version(s) @metadata.version = s end