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