lib/convenient_service/support/counter.rb in convenient_service-0.12.0 vs lib/convenient_service/support/counter.rb in convenient_service-0.13.0
- old
+ new
@@ -9,12 +9,12 @@
# - https://github.com/ruby/spec/blob/master/language/break_spec.rb
# - https://github.com/ruby/spec/blob/master/language/next_spec.rb
# - https://stackoverflow.com/a/1402764/12201472
#
class Counter
- module Errors
- class ValueAfterIncrementIsGreaterThanMaxValue < ::ConvenientService::Error
+ module Exceptions
+ class ValueAfterIncrementIsGreaterThanMaxValue < ::ConvenientService::Exception
##
# @param n [Integer]
# @param current_value [Integer]
# @param max_value [Integer]
# @return [void]
@@ -30,11 +30,11 @@
super(message)
end
end
- class ValueAfterDecrementIsLowerThanMinValue < ::ConvenientService::Error
+ class ValueAfterDecrementIsLowerThanMinValue < ::ConvenientService::Exception
##
# @param n [Integer]
# @param current_value [Integer]
# @param min_value [Integer]
# @return [void]
@@ -89,11 +89,10 @@
def initialize(initial_value: 0, min_value: -::Float::INFINITY, max_value: ::Float::INFINITY)
@initial_value = initial_value
@current_value = initial_value
@min_value = min_value
@max_value = max_value
- @lock = ::Mutex.new
end
##
# @param n [Integer]
# @return [Integer]
@@ -112,21 +111,21 @@
end
##
# @param n [Integer]
# @return [Integer]
- # @raise [ConvenientService::Support::ThreadSafeCounter::Errors::ValueAfterIncrementIsGreaterThanMaxValue]
+ # @raise [ConvenientService::Support::ThreadSafeCounter::Exceptions::ValueAfterIncrementIsGreaterThanMaxValue]
#
# @internal
# NOTE: Instance variables are accessed directly to release the lock faster.
#
# NOTE: The name is inspired by Rails.
# - https://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-save
# - https://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-save-21
#
def increment!(n = 1)
- raise Errors::ValueAfterIncrementIsGreaterThanMaxValue.new(n: n, current_value: @current_value, max_value: @max_value) if @current_value + n > @max_value
+ raise Exceptions::ValueAfterIncrementIsGreaterThanMaxValue.new(n: n, current_value: @current_value, max_value: @max_value) if @current_value + n > @max_value
@current_value += n
end
##
@@ -165,20 +164,20 @@
end
##
# @param n [Integer]
# @return [Integer]
- # @raise [ConvenientService::Support::ThreadSafeCounter::Errors::ValueAfterDecrementIsLowerThanMinValue]
+ # @raise [ConvenientService::Support::ThreadSafeCounter::Exceptions::ValueAfterDecrementIsLowerThanMinValue]
#
# @internal
# NOTE: Instance variables are accessed directly to release the lock faster.
#
# NOTE: The name is inspired by Rails.
# - https://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-save
# - https://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-save-21
#
def decrement!(n = 1)
- raise Errors::ValueAfterDecrementIsLowerThanMinValue.new(n: n, current_value: @current_value, min_value: @min_value) if @current_value - n < @min_value
+ raise Exceptions::ValueAfterDecrementIsLowerThanMinValue.new(n: n, current_value: @current_value, min_value: @min_value) if @current_value - n < @min_value
@current_value -= n
end
##