Class: Gitlab::RepositorySizeChecker
- Inherits:
-
Object
- Object
- Gitlab::RepositorySizeChecker
- Defined in:
- lib/gitlab/repository_size_checker.rb
Overview
Centralized class for repository size related calculations.
Instance Attribute Summary collapse
-
#limit ⇒ Object
readonly
Returns the value of attribute limit.
Instance Method Summary collapse
- #above_size_limit? ⇒ Boolean
- #additional_repo_storage_available? ⇒ Boolean
- #changes_will_exceed_size_limit?(change_size, _project) ⇒ Boolean
-
#current_size ⇒ Integer
Bytes.
- #enabled? ⇒ Boolean
- #error_message ⇒ Object
- #exceeded_size(change_size = 0) ⇒ Object
-
#initialize(current_size_proc:, limit:, namespace:, enabled: true) ⇒ RepositorySizeChecker
constructor
A new instance of RepositorySizeChecker.
Constructor Details
#initialize(current_size_proc:, limit:, namespace:, enabled: true) ⇒ RepositorySizeChecker
Returns a new instance of RepositorySizeChecker.
9 10 11 12 13 14 |
# File 'lib/gitlab/repository_size_checker.rb', line 9 def initialize(current_size_proc:, limit:, namespace:, enabled: true) @current_size_proc = current_size_proc @limit = limit @namespace = namespace @enabled = enabled && limit != 0 end |
Instance Attribute Details
#limit ⇒ Object (readonly)
Returns the value of attribute limit.
6 7 8 |
# File 'lib/gitlab/repository_size_checker.rb', line 6 def limit @limit end |
Instance Method Details
#above_size_limit? ⇒ Boolean
25 26 27 28 29 |
# File 'lib/gitlab/repository_size_checker.rb', line 25 def above_size_limit? return false unless enabled? current_size > limit end |
#additional_repo_storage_available? ⇒ Boolean
49 50 51 |
# File 'lib/gitlab/repository_size_checker.rb', line 49 def additional_repo_storage_available? false end |
#changes_will_exceed_size_limit?(change_size, _project) ⇒ Boolean
32 33 34 35 36 |
# File 'lib/gitlab/repository_size_checker.rb', line 32 def changes_will_exceed_size_limit?(change_size, _project) return false unless enabled? above_size_limit? || exceeded_size(change_size) > 0 end |
#current_size ⇒ Integer
Returns bytes.
17 18 19 |
# File 'lib/gitlab/repository_size_checker.rb', line 17 def current_size @current_size ||= @current_size_proc.call end |
#enabled? ⇒ Boolean
21 22 23 |
# File 'lib/gitlab/repository_size_checker.rb', line 21 def enabled? @enabled end |
#error_message ⇒ Object
45 46 47 |
# File 'lib/gitlab/repository_size_checker.rb', line 45 def @error_message_object ||= ::Gitlab::RepositorySizeErrorMessage.new(self) end |
#exceeded_size(change_size = 0) ⇒ Object
39 40 41 42 43 |
# File 'lib/gitlab/repository_size_checker.rb', line 39 def exceeded_size(change_size = 0) size = current_size + change_size - limit [size, 0].max end |