class Rake::Funnel::Support::VersionInfo
Public Class Methods
new(hash = nil)
click to toggle source
Calls superclass method
# File lib/rake/funnel/support/version_info.rb, line 11 def initialize(hash = nil) super(hash) end
parse(context)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 20 def parse(context) VersionInfo.new(assembly_version: assembly_version(context), assembly_file_version: assembly_file_version(context), assembly_informational_version: assembly_informational_version(context)) end
read_version_from(file)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 26 def read_version_from(file) File.open(file, &:readline).strip end
Private Class Methods
assembly_file_version(context)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 50 def assembly_file_version(context) version = assembly_version(context) build_number = numeric(context.fetch(:metadata, {})[:build]) return version.sub(/\.0$/, ".#{build_number}") if build_number version end
assembly_informational_version(context)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 64 def assembly_informational_version(context) # rubocop:disable Metrics/MethodLength version = default_version(context) numeric_version = pad(version, 3) alpha_version = version.sub(/^[\d\.]*/, '') semver = [ numeric_version, alpha_version, pre(context) ].join [ semver, metadata(context) ].compact.join('+') end
assembly_version(context)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 45 def assembly_version(context) version = default_version(context) pad(version, 4) end
default_version(context)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 32 def default_version(context) context[:version].to_s || '0' end
metadata(context)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 88 def metadata(context) metadata = context.fetch(:metadata, {}).reject { |k, _| k == :pre } metadata = metadata.map do |key, value| [key.to_s, value.to_s] if value end.compact return nil if metadata.empty? metadata.join('.') end
numeric(str)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 58 def numeric(str) return str if str.to_s =~ /^\d+$/ nil end
pad(version, parts)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 36 def pad(version, parts) numerics = version.split('.').take(parts).map(&:to_i) template = Array.new(parts) { 0 }.map.with_index do |part, index| numerics[index] || part end template.join('.') end
pre(context)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 81 def pre(context) pre = context.fetch(:metadata, {})[:pre] pre = "-#{pre}" if pre && pre.to_s !~ /^-/ pre end
Public Instance Methods
each(&block)
click to toggle source
# File lib/rake/funnel/support/version_info.rb, line 15 def each(&block) each_pair(&block) end