Sha256: d74927b12d75b773dd04ca4cc6fffbdcffe1eae84f8904603fa8123d1fc0b2a5

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

# POM xml based valid gemspec environment generation module
# example: "ovirt-engine-sdk" gem
# requires "xmllint" to work
#
module Baltix::Loader::Pom
   def pom propfile
      dir = File.dirname(propfile)

      specfile = Dir.glob(File.join(dir, '*.gemspec')).first

      re = /require.*?(?<version_file>[^"']+version[^"']*)/
      version_line = Dir.glob(File.join(dir, '**', '*.rb')).map { |x| IO.read(x).split("\n").grep(re).first }.compact.first
      return nil if !version_line or !specfile
      version_file = re.match(version_line)[:version_file]
      re_V = /(?<klass>[^\"\'\(\s]+)::VERSION/
      match = re_V.match(IO.read(specfile).split("\n").grep(re_V).first.to_s)
      if match
         klass = match[:klass]
         version = `xmllint pom.xml --xpath "/*[name()='project']/*[name()='version']/text()"`.strip
         if version != ""
            modtext = "module #{klass};VERSION = '#{version}';end"
            File.open(File.join(dir, "lib", version_file), "w+") {|f| f.puts(modtext) }
         end
      end
   rescue Errno::ENOENT
   end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
baltix-0.1.1 lib/baltix/loader/pom.rb