# Copies workflows from source to targets
def self.copy(source_tracker, source_role, target_trackers, target_roles)
unless source_tracker.is_a?(Tracker) || source_role.is_a?(Role)
- raise ArgumentError.new("source_tracker or source_role must be specified, given: #{source_tracker.class.name} and #{source_role.class.name}")
+ raise ArgumentError.new(
+ "source_tracker or source_role must be specified, given: " \
+ "#{source_tracker.class.name} and #{source_role.class.name}"
+ )
end
target_trackers = [target_trackers].flatten.compact
else
transaction do
where(:tracker_id => target_tracker.id, :role_id => target_role.id).delete_all
- connection.insert "INSERT INTO #{WorkflowRule.table_name} (tracker_id, role_id, old_status_id, new_status_id, author, assignee, field_name, #{connection.quote_column_name 'rule'}, type)" +
- " SELECT #{target_tracker.id}, #{target_role.id}, old_status_id, new_status_id, author, assignee, field_name, #{connection.quote_column_name 'rule'}, type" +
- " FROM #{WorkflowRule.table_name}" +
- " WHERE tracker_id = #{source_tracker.id} AND role_id = #{source_role.id}"
+ connection.insert(
+ "INSERT INTO #{WorkflowRule.table_name}" \
+ " (tracker_id, role_id, old_status_id, new_status_id," \
+ " author, assignee, field_name, #{connection.quote_column_name 'rule'}, type)" \
+ " SELECT #{target_tracker.id}, #{target_role.id}, old_status_id, new_status_id," \
+ " author, assignee, field_name, #{connection.quote_column_name 'rule'}, type" \
+ " FROM #{WorkflowRule.table_name}" \
+ " WHERE tracker_id = #{source_tracker.id} AND role_id = #{source_role.id}"
+ )
end
true
end