Class: Artisan::Stories::StoriesInteractor
- Inherits:
-
Object
- Object
- Artisan::Stories::StoriesInteractor
- Defined in:
- lib/artisan/stories/stories_interactor.rb
Instance Method Summary collapse
- #backlog(filter_tag = nil) ⇒ Object
- #completed ⇒ Object
- #create(story_attributes, callbacks) ⇒ Object
- #delete(number) ⇒ Object
- #find(number) ⇒ Object
- #find_by_iteration(iteration_number) ⇒ Object
-
#initialize(project_id, user = nil) ⇒ StoriesInteractor
constructor
A new instance of StoriesInteractor.
- #update(number, story_attributes, callbacks) ⇒ Object
Constructor Details
#initialize(project_id, user = nil) ⇒ StoriesInteractor
Returns a new instance of StoriesInteractor.
13 14 15 16 |
# File 'lib/artisan/stories/stories_interactor.rb', line 13 def initialize(project_id, user = nil) @project = project_repository.find(project_id) @user = user end |
Instance Method Details
#backlog(filter_tag = nil) ⇒ Object
40 41 42 43 |
# File 'lib/artisan/stories/stories_interactor.rb', line 40 def backlog(filter_tag = nil) backlog_stories = filtered(filter_tag, @project.stories.backlog) return StoryCollection.new(backlog_stories) end |
#completed ⇒ Object
45 46 47 |
# File 'lib/artisan/stories/stories_interactor.rb', line 45 def completed @project.stories.complete end |
#create(story_attributes, callbacks) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/artisan/stories/stories_interactor.rb', line 18 def create(story_attributes, callbacks) model = repository.create_for_project(@project, story_attributes) set_story_number_for model story = CrudStrategy.create(model, callbacks, repository) Activity::StoryAuditor.created(story.id, @project.id, @user.id, story_attributes) return story end |
#delete(number) ⇒ Object
34 35 36 37 38 |
# File 'lib/artisan/stories/stories_interactor.rb', line 34 def delete(number) story = find(number) repository.delete(story) Activity::StoryAuditor.deleted(story.id, @project.id, @user.id) end |
#find(number) ⇒ Object
54 55 56 |
# File 'lib/artisan/stories/stories_interactor.rb', line 54 def find(number) repository.find(number, @project) end |
#find_by_iteration(iteration_number) ⇒ Object
49 50 51 52 |
# File 'lib/artisan/stories/stories_interactor.rb', line 49 def find_by_iteration(iteration_number) iteration = @project.iterations.find_by_number iteration_number iteration.stories(:include => 'assigned_user') end |
#update(number, story_attributes, callbacks) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/artisan/stories/stories_interactor.rb', line 26 def update(number, story_attributes, callbacks) story = find(number) original_attributes = story.attributes story = CrudStrategy.update(story, story_attributes, @user, callbacks) Activity::StoryAuditor.updated(story.id, @project.id, @user.id, original_attributes, story_attributes) end |