Method: Runcible::Extensions::Unit#copy

Defined in:
lib/runcible/extensions/unit.rb

#copy(source_repo_id, destination_repo_id, optional = {}) ⇒ RestClient::Response

copy contents from source repo to the destination repo

Parameters:

  • source_repo_id (String)

    the source repository ID

  • destination_repo_id (String)

    the destination repository ID

  • optional (Hash) (defaults to: {})

    container for all optional parameters

Returns:

  • (RestClient::Response)

    a task representing the unit copy operation



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/runcible/extensions/unit.rb', line 125

def copy(source_repo_id, destination_repo_id, optional={})
  criteria = {:type_ids => [content_type], :filters => {}}
  criteria[:filters]['association'] = {'unit_id' => {'$in' => optional[:ids]}} if optional[:ids]
  criteria[:filters] = optional[:filters] if optional[:filters]
  criteria[:fields] = {:unit => optional[:fields]} if optional[:fields]

  payload = {:criteria => criteria}
  payload[:override_config] = optional[:override_config] if optional.has_key?(:override_config)

  if optional[:copy_children]
    payload[:override_config] ||= {}
    payload[:override_config][:recursive] = true
  end

  Runcible::Extensions::Repository.new(self.config).unit_copy(destination_repo_id, source_repo_id, payload)
end