Inline the #week method.
Inline the #create_time_entry method.
Use the #invalid method for getting invalid time entries.
Use the += method instead of #push.
Clear the instance errors variable.
[Global] Use just return.

It by default returns the nil value.
Move condition for the #detect_unit method outside if it.
Move condition for the #try_to_recreate_* method outside if it.

And rename the method - it isn't anymore trying to recreate.
Split the long name of class into a name with its module.
Rename the cryptic methods into something meaningful.
Inline the #match_project_wuid method.

And use #try method for calling on possible nil object the downcase method.
Remove not used method - nofollow.
Move the stuff related to youtrack to the youtrack recreator class.
Small cleanup in the class.

Put delegation in the top of block.
Remove whitespace.
Use single quoted characters.
Allow project to decide what service use to recreate work unit structure.

Move the class outside of the time entry context.
Add null service - when there are no matches.
Delegate the #work_unit_recreator_class method to project.
Remove begin & end within the project method.
[Clean up] Remove whitespaces.
Move the base class into the proper directory.
Split the dm2 module into small models.