Chris@0: module ObjectDaddyHelpers Chris@0: # TODO: Remove these three once everyone has ported their code to use the Chris@0: # new object_daddy version with protected attribute support Chris@0: def User.generate_with_protected(attributes={}) Chris@0: User.generate(attributes) Chris@0: end Chris@0: Chris@0: def User.generate_with_protected!(attributes={}) Chris@0: User.generate!(attributes) Chris@0: end Chris@0: Chris@0: def User.spawn_with_protected(attributes={}) Chris@0: User.spawn(attributes) Chris@0: end Chris@0: chris@22: def User.add_to_project(user, project, roles) chris@22: roles = [roles] unless roles.is_a?(Array) chris@22: Member.generate!(:principal => user, :project => project, :roles => roles) chris@22: end chris@22: Chris@0: # Generate the default Query Chris@0: def Query.generate_default!(attributes={}) Chris@0: query = Query.spawn(attributes) Chris@0: query.name ||= '_' Chris@0: query.save! Chris@0: query Chris@0: end Chris@0: Chris@0: # Generate an issue for a project, using it's trackers Chris@0: def Issue.generate_for_project!(project, attributes={}) Chris@0: issue = Issue.spawn(attributes) do |issue| Chris@0: issue.project = project chris@22: issue.tracker = project.trackers.first unless project.trackers.empty? chris@22: yield issue if block_given? Chris@0: end Chris@0: issue.save! Chris@0: issue Chris@0: end Chris@0: Chris@0: end