Method: FindAndReplaceObjectNames#run

Defined in:
lib/measures/FindAndReplaceObjectNames/measure.rb

#run(model, runner, user_arguments) ⇒ Object

define what happens when the measure is run



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/measures/FindAndReplaceObjectNames/measure.rb', line 33

def run(model, runner, user_arguments)
  super(model, runner, user_arguments)

  # use the built-in error checking
  if !runner.validateUserArguments(arguments(model), user_arguments)
    return false
  end

  # assign the user inputs to variables
  orig_string = runner.getStringArgumentValue('orig_string', user_arguments)
  new_string = runner.getStringArgumentValue('new_string', user_arguments)

  # check the orig_string for reasonableness
  puts orig_string
  if orig_string == ''
    runner.registerError('No search string was entered.')
    return false
  end

  # reporting initial condition of model
  starting_spaces = model.getSpaces
  runner.registerInitialCondition("The model has #{model.objects.size} objects.")

  # array for objects with names
  named_objects = []

  # loop through model objects and rename if the object has a name
  model.objects.each do |obj|
    if !obj.name.empty?
      old_name = obj.name.get
      new_name = obj.setName(old_name.gsub(orig_string, new_string))
      if old_name != new_name
        named_objects << new_name
      end
    end
  end

  # reporting final condition of model
  runner.registerFinalCondition("#{named_objects.size} objects were renamed.")

  return true
end