summaryrefslogtreecommitdiff
path: root/lib/gitlab/gitaly_client/diff.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/gitaly_client/diff.rb')
-rw-r--r--lib/gitlab/gitaly_client/diff.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/gitlab/gitaly_client/diff.rb b/lib/gitlab/gitaly_client/diff.rb
new file mode 100644
index 00000000000..54df6304865
--- /dev/null
+++ b/lib/gitlab/gitaly_client/diff.rb
@@ -0,0 +1,21 @@
+module Gitlab
+ module GitalyClient
+ class Diff
+ FIELDS = %i(from_path to_path old_mode new_mode from_id to_id patch overflow_marker collapsed).freeze
+
+ attr_accessor(*FIELDS)
+
+ def initialize(params)
+ params.each do |key, val|
+ public_send(:"#{key}=", val) # rubocop:disable GitlabSecurity/PublicSend
+ end
+ end
+
+ def ==(other)
+ FIELDS.all? do |field|
+ public_send(field) == other.public_send(field) # rubocop:disable GitlabSecurity/PublicSend
+ end
+ end
+ end
+ end
+end