class Pod::Command::RepoSvn::Update

Public Class Methods

new(argv) click to toggle source
Calls superclass method
# File lib/pod/command/repo_svn/update.rb, line 15
def initialize(argv)
  @name = argv.shift_argument
  super
end

Public Instance Methods

run() click to toggle source
# File lib/pod/command/repo_svn/update.rb, line 27
def run
  update(@name, true) #todo: dusty
end
validate!() click to toggle source
Calls superclass method
# File lib/pod/command/repo_svn/update.rb, line 20
def validate!
  super
  unless @name
    help! "Updating a spec-repo needs a `NAME`."
  end
end

Private Instance Methods

svn_repo?(dir) click to toggle source

Returns whether a source is a SVN repo.

@param [Pathname] dir

The directory where the source is stored.

@return [Bool] Whether the given source is a SVN repo.

# File lib/pod/command/repo_svn/update.rb, line 112
def svn_repo?(dir)
  Dir.chdir(dir) { `svn info > /dev/null` }
  $?.success?
end
svn_source_named(name) click to toggle source

@return [Source] The svn source with the given name. If no svn source

with given name is found it raises.

@param [String] name

The name of the source.
# File lib/pod/command/repo_svn/update.rb, line 83
def svn_source_named(name)
  specified_source = Config.instance.sources_manager.aggregate.sources.find { |s| s.name == name }
  unless specified_source
    raise Informative, "Unable to find the `#{name}` repo."
  end
  unless svn_repo?(specified_source.repo)
    raise Informative, "The `#{name}` repo is not a svn repo."
  end
  specified_source
end
svn_sources() click to toggle source

@return [Source] The list of the svn sources.

# File lib/pod/command/repo_svn/update.rb, line 96
def svn_sources
  # SourcesManager.all.select do |source|
  #   svn_repo?(source.repo)
  # end
  Config.instance.sources_manager.all.select do |source|
    svn_repo?(source.repo)
  end
end
update(source_name = nil, show_output = false) click to toggle source

Updates the local copy of the spec-repo with the given name

@param [String] source_name name

@return [void]

# File lib/pod/command/repo_svn/update.rb, line 50
def update(source_name = nil, show_output = false)
  if source_name
    sources = [svn_source_named(source_name)]
  else
    sources =  svn_sources
  end

  sources.each do |source|
    UI.section "Updating spec repo `#{source.name}`" do
      Dir.chdir(source.repo) do
        begin
          #output = svn('up --non-interactive --trust-server-cert')
          output = `svn up --non-interactive --trust-server-cert`
          UI.puts output if show_output && !config.verbose?
        rescue Informative => e
          UI.warn 'CocoaPods was not able to update the ' \
          "`#{source.name}` repo. If this is an unexpected issue " \
          'and persists you can inspect it running ' \
          '`pod repo-svn update --verbose`'
        end
      end
      # SourcesManager.check_version_information(source.repo)
      Config.instance.sources_manager.sources([source.repo.basename.to_s]).each(&:verify_compatibility!) #todo: TEST ME
    end
  end
end