samhuri.net/server/spec/helpers.rb

71 lines
1.3 KiB
Ruby

module Helpers
def increasing?(list)
comparisons(list).all? { |x| x && x <= 0 }
end
def decreasing?(list)
comparisons(list).all? { |x| x && x >= 0 }
end
def comparisons(list)
x = list.first
list.drop(1).map do |y|
x <=> y
end
end
def git_bare?(dir)
if File.exist?(File.join(dir, '.git'))
false
elsif File.exist?(File.join(dir, 'HEAD'))
true
else
raise "what is this dir? #{dir} #{Dir[dir + '/*'].join(', ')}"
end
end
def git_sha(dir)
if git_bare?(dir)
`cd '#{dir}' && cat "$(cut -d' ' -f2 HEAD)"`.strip
else
`cd '#{dir}' && git log -n1`.split[1].strip
end
end
def git_reset_hard(dir, ref = nil)
if git_bare?(dir)
raise 'git_reset_hard does not support bare repos ' + dir + ' -- ' + ref.to_s
else
args = ref ? "'#{ref}'" : ''
`cd '#{dir}' && git reset --hard #{args}`
end
end
class TitleFinder
attr_accessor :title
def initialize(title)
@title = title
end
def find_title(url) @title end
end
def mock_title_finder(title)
TitleFinder.new(title)
end
class VersionFinder
attr_accessor :version
def initialize(version)
@version = version
end
def find_version(url = nil)
@version
end
end
def mock_version_finder(version)
VersionFinder.new(version)
end
end