Sha256: e09f33442ff670a4307ffcea10b198c9370eb3ac4e3d47b6a47783638e41c857
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
module PkgForge ## # Add version methods to Forge class Forge attr_writer :version_block Contract None => Proc def version_block @version_block ||= proc { raise 'No version block provided' } end Contract None => String def version @version ||= Dir.chdir(tmpdir(:build)) do PkgForge::DSL::Version.new(self).instance_eval(&version_block) end end Contract None => Num def revision @revision ||= `git describe --abbrev=0 --tags`.split('-').last.to_i + 1 end Contract None => String def full_version "#{version}-#{revision}" end end module DSL ## # Add version methods to Forge DSL class Forge Contract Func[None => Maybe[String]] => nil def version(&block) @forge.version_block = block nil end end ## # Add version methods to Version DSL class Version Contract Maybe[Regexp], Maybe[String] => String def git_tag(regex = nil, replace = '\1') tag = `git describe --tags`.rstrip tag.gsub!(regex, replace) if regex tag end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pkgforge-0.4.0 | lib/pkgforge/components/version.rb |
pkgforge-0.3.0 | lib/pkgforge/components/version.rb |