lib/tracker_api/resources/story.rb in tracker_api-0.2.6 vs lib/tracker_api/resources/story.rb in tracker_api-0.2.7
- old
+ new
@@ -1,9 +1,9 @@
module TrackerApi
module Resources
class Story
- include Virtus.model
+ include TrackerApi::Resources::Base
attribute :client
attribute :accepted_at, DateTime
attribute :comment_ids, Array[Integer]
@@ -12,17 +12,17 @@
attribute :deadline, DateTime
attribute :description, String
attribute :estimate, Float
attribute :external_id, String
attribute :follower_ids, Array[Integer]
- attribute :id, Integer
attribute :integration_id, Integer
attribute :kind, String
attribute :label_ids, Array[Integer]
attribute :labels, Array[TrackerApi::Resources::Label]
attribute :name, String
attribute :owned_by_id, Integer # deprecated!
+ attribute :owner_ids, Array[Integer]
attribute :owners, Array[TrackerApi::Resources::Person]
attribute :planned_iteration_number, Integer
attribute :project_id, Integer
attribute :requested_by_id, Integer
attribute :story_type, String # (feature, bug, chore, release)
@@ -34,15 +34,34 @@
# @return [String] Comma separated list of labels.
def label_list
@label_list ||= labels.collect(&:name).join(',')
end
+ # Provides a list of all the activity performed on the story.
+ #
+ # @param [Hash] params
+ # @return [Array[Activity]]
+ def activity(params = {})
+ Endpoints::Activity.new(client).get_story(project_id, id, params)
+ end
+
+ # @param [Hash] params
+ # @return [Array[Task]]
def tasks(params = {})
if @tasks.any?
@tasks
else
@tasks = Endpoints::Tasks.new(client).get(project_id, id, params)
end
+ end
+
+ # Save changes to an existing Story.
+ def save
+ raise ArgumentError, 'Can not update a story with an unknown project_id.' if project_id.nil?
+
+ Endpoints::Story.new(client).update(self, just_changes)
+
+ changes_applied
end
end
end
end