Skip to content

Commit

Permalink
Small Changes
Browse files Browse the repository at this point in the history
  • Loading branch information
kyewei committed Nov 12, 2015
1 parent 4896c3c commit 1aa5cf4
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 11 deletions.
7 changes: 7 additions & 0 deletions ext/semian/semian_integer.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,12 @@ semian_integer_set_value(VALUE self, VALUE num)
return num;
}

static VALUE
semian_integer_reset(VALUE self)
{
return semian_integer_set_value(self, INT2NUM(0));
}

static VALUE
semian_integer_increment(int argc, VALUE *argv, VALUE self)
{
Expand Down Expand Up @@ -113,5 +119,6 @@ Init_semian_integer (void)
rb_define_method(cInteger, "bind_init_fn", semian_integer_bind_init_fn_wrapper, 0);
rb_define_method(cInteger, "value", semian_integer_get_value, 0);
rb_define_method(cInteger, "value=", semian_integer_set_value, 1);
rb_define_method(cInteger, "reset", semian_integer_reset, 0);
rb_define_method(cInteger, "increment", semian_integer_increment, -1);
}
5 changes: 3 additions & 2 deletions lib/semian/circuit_breaker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class CircuitBreaker #:nodoc:
extend Forwardable

def initialize(name, exceptions:, success_threshold:, error_threshold:, error_timeout:, permissions:, implementation:)
@name = name.to_s
@name = name.to_sym
@success_count_threshold = success_threshold
@error_count_threshold = error_threshold
@error_timeout = error_timeout
Expand Down Expand Up @@ -102,7 +102,8 @@ def error_timeout_expired?
end

def push_time(window, duration:, time: Time.now)
@errors.synchronize do # Store an integer amount of milliseconds since epoch
# The sliding window stores the integer amount of milliseconds since epoch as a timestamp
@errors.synchronize do
window.shift while window.first && window.first / 1000 + duration < time.to_i
window << (time.to_f * 1000).to_i
end
Expand Down
4 changes: 2 additions & 2 deletions lib/semian/simple_integer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ module Simple
class Integer #:nodoc:
attr_accessor :value

def initialize
@value = 0
def initialize(**_)
reset
end

def increment(val = 1)
Expand Down
6 changes: 3 additions & 3 deletions lib/semian/simple_sliding_window.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class SlidingWindow #:nodoc:
# like this: if @max_size = 4, current time is 10, @window =[5,7,9,10].
# Another push of (11) at 11 sec would make @window [7,9,10,11], shifting off 5.

def initialize(max_size:)
def initialize(max_size:, **_)
@max_size = max_size
@window = []
end
Expand All @@ -24,9 +24,9 @@ def resize_to(size)
self
end

def push(time_ms)
def push(value)
@window.shift while @window.size >= @max_size
@window << time_ms
@window << value
self
end

Expand Down
2 changes: 1 addition & 1 deletion lib/semian/simple_state.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module Semian
module Simple
class State #:nodoc:
def initialize
def initialize(**_)
reset
end

Expand Down
13 changes: 10 additions & 3 deletions test/simple_integer_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ class TestSimpleInteger < MiniTest::Unit::TestCase

def setup
@integer = CLASS.new
@integer.value = 0
end

def teardown
Expand All @@ -14,7 +13,6 @@ def teardown

module IntegerTestCases
def test_access_value
@integer.value = 0
assert_equal(0, @integer.value)
@integer.value = 99
assert_equal(99, @integer.value)
Expand All @@ -28,14 +26,23 @@ def test_access_value
end

def test_increment
@integer.value = 0
@integer.increment(4)
assert_equal(4, @integer.value)
@integer.increment
assert_equal(5, @integer.value)
@integer.increment(-2)
assert_equal(3, @integer.value)
end

def test_reset_on_init
assert_equal(0, @integer.value)
end

def test_reset
@integer.increment(5)
@integer.reset
assert_equal(0, @integer.value)
end
end

include IntegerTestCases
Expand Down

0 comments on commit 1aa5cf4

Please sign in to comment.