Merge pull request #4339 from BrokenEagle/version-reports
Add alternate version comparisons
This commit is contained in:
@@ -1,51 +0,0 @@
|
||||
module Reports
|
||||
class UploadTags < ::Post
|
||||
def readonly?
|
||||
true
|
||||
end
|
||||
|
||||
def api_attributes
|
||||
[:id, :uploader_id, :uploader_tags, :added_tags, :removed_tags]
|
||||
end
|
||||
|
||||
def uploader_tags_array
|
||||
@uploader_tags ||= begin
|
||||
uploader_versions = versions.where(updater_id: uploader_id)
|
||||
tags = []
|
||||
uploader_versions.each do |version|
|
||||
tags += version.changes[:added_tags]
|
||||
tags -= version.changes[:removed_tags]
|
||||
end
|
||||
tags.uniq.sort
|
||||
end
|
||||
end
|
||||
|
||||
def current_tags_array
|
||||
latest_tags = tag_array
|
||||
latest_tags << "rating:#{rating}" if rating.present?
|
||||
latest_tags << "parent:#{parent_id}" if parent_id.present?
|
||||
latest_tags << "source:#{source}" if source.present?
|
||||
latest_tags
|
||||
end
|
||||
|
||||
def added_tags_array
|
||||
current_tags_array - uploader_tags_array
|
||||
end
|
||||
|
||||
def removed_tags_array
|
||||
uploader_tags_array - current_tags_array
|
||||
end
|
||||
|
||||
def uploader_tags
|
||||
uploader_tags_array.join(' ')
|
||||
end
|
||||
|
||||
def added_tags
|
||||
added_tags_array.join(' ')
|
||||
end
|
||||
|
||||
def removed_tags
|
||||
removed_tags_array.join(' ')
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,14 +1,12 @@
|
||||
class SetDiff
|
||||
attr_reader :additions, :removals, :added, :removed, :obsolete_added, :obsolete_removed, :changed, :unchanged
|
||||
attr_reader :additions, :removals, :added, :removed, :changed, :unchanged
|
||||
|
||||
def initialize(new, old, latest)
|
||||
new, old, latest = new.to_a, old.to_a, latest.to_a
|
||||
def initialize(this_list, other_list)
|
||||
this, other = this_list.to_a, other_list.to_a
|
||||
|
||||
@additions = new - old
|
||||
@removals = old - new
|
||||
@unchanged = new & old
|
||||
@obsolete_added = additions - latest
|
||||
@obsolete_removed = removals & latest
|
||||
@additions = this - other
|
||||
@removals = other - this
|
||||
@unchanged = this & other
|
||||
@added, @removed, @changed = changes(additions, removals)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user