lib/fig/repository.rb in fig-0.1.7 vs lib/fig/repository.rb in fig-0.1.8
- old
+ new
@@ -1,14 +1,16 @@
require 'fig/parser'
module Fig
class Repository
- def initialize(os, local_repository_dir, remote_repository_url, remote_repository_user=nil)
+ def initialize(os, local_repository_dir, remote_repository_url, remote_repository_user=nil, update=false, update_if_missing=true)
@os = os
@local_repository_dir = local_repository_dir
@remote_repository_url = remote_repository_url
@remote_repository_user = remote_repository_user
+ @update = update
+ @update_if_missing = update_if_missing
@parser = Parser.new
end
def clean(package_name, version_name)
dir = File.join(@local_repository_dir, package_name)
@@ -90,11 +92,13 @@
end
new_package_statements
end
def load_package(package_name, version_name)
- update_package(package_name, version_name) if @remote_repository_url
+ if @update || (@update_if_missing && package_missing?(package_name, version_name))
+ update_package(package_name, version_name)
+ end
read_local_package(package_name, version_name)
end
def update_package(package_name, version_name)
remote_fig_file = remote_fig_file_for_package(package_name, version_name)
@@ -191,8 +195,12 @@
"#{@remote_repository_url}/#{package_name}/#{version_name}"
end
def temp_dir_for_package(package_name, version_name)
File.join(@local_repository_dir, "tmp")
+ end
+
+ def package_missing?(package_name, version_name)
+ not File.exist?(local_fig_file_for_package(package_name, version_name))
end
end
end