istox 0.2.14.2 → 0.2.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0bce8aeff0172a935744cd551d7484db72b031c6d5c1987e333556ca78371472
4
- data.tar.gz: c64f7d731ad1295b6713225e347484c20cc52e240f33c096a5b2196f4ab3f1e0
3
+ metadata.gz: 427be1c188660fb5026b4939d6fe6aeceb05cee84fea5fc44f4e21563b4eb51b
4
+ data.tar.gz: '0068748b30c528b7590148db9aff3cd8b0cef427acf32e433b78d748ad5a11cb'
5
5
  SHA512:
6
- metadata.gz: 0aff2668703907f10658e8d083224e26a15b01871aa73f7118b4405475b96d1442b8c451fa0261a173cc8b42c06c60af939fb2be60b91811e8a36818de53f19b
7
- data.tar.gz: c5bef66c72b43dcd00f9c536a6bc8e186c1d9f657ec749346638ccc624b1762c08a1a5f9173ba609b426187353c8af40784ebfad09aee849dc1a33fe3c1efb11
6
+ metadata.gz: cc56633832f232ab416252243601af865d162024ffc3047da66e80c65cc3e05ac8c1e615c98a87ea34bee8547d01b1ea8e954f767f82b87d949f262ea14b4764
7
+ data.tar.gz: edceb0279ab02097e365420168f6fbb80a68e01afd266958f0acdaa14c4086a0f22e02138b52b04f42aa098dc9bb2b0afbfd3688c54952142eca1d8147561bae
data/.gitignore CHANGED
File without changes
data/.rubocop.yml CHANGED
File without changes
data/.solargraph.yml CHANGED
File without changes
data/CODE_OF_CONDUCT.md CHANGED
File without changes
data/Gemfile CHANGED
File without changes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- istox (0.2.14.2)
4
+ istox (0.2.15)
5
5
  amazing_print
6
6
  awesome_print
7
7
  aws-sdk-sns (~> 1)
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- # rubocop:disable Naming/UncommunicativeMethodParamName
1
+ # rubocop:disable Naming/MethodParameterName
2
2
  module Istox
3
3
  class FMath
4
4
  class << self
@@ -74,6 +74,20 @@ module Istox
74
74
  ::BigDecimal.new(x.to_s).round(digits).to_s
75
75
  end
76
76
 
77
+ def round_half_up(x, digits)
78
+ BigDecimal.mode(BigDecimal::ROUND_MODE, :half_up)
79
+ x = 0 if x.blank?
80
+ ::BigDecimal.new(x.to_s).round(digits).to_s
81
+ end
82
+
83
+ def round(x, digits, rounding_mechanism: :natural)
84
+ return round_up(x, digits) if rounding_mechanism == 'up'
85
+
86
+ return round_down(x, digits) if rounding_mechanism == 'down'
87
+
88
+ round_half_up(x, digits)
89
+ end
90
+
77
91
  private
78
92
 
79
93
  def to_fixed(x)
@@ -86,4 +100,4 @@ module Istox
86
100
  end
87
101
  end
88
102
  end
89
- # rubocop:enable Naming/UncommunicativeMethodParamName
103
+ # rubocop:enable Naming/MethodParameterName
File without changes
File without changes
@@ -13,7 +13,7 @@ module Istox
13
13
  log.info("Acquiring lock for key: #{key}, expired in #{expired_seconds} seconds, result: #{result}")
14
14
 
15
15
  # if result false means the key already exist
16
- result
16
+ [true, 1].include?(result)
17
17
  end
18
18
 
19
19
  def release(key)
@@ -22,6 +22,16 @@ module Istox
22
22
  log.info("Releasing lock for key: #{key}")
23
23
  end
24
24
 
25
+ ### lock with block
26
+ def lock!(key, expired_seconds: 20)
27
+ acquire!(key, expired_seconds: expired_seconds)
28
+ yield
29
+ release(key)
30
+ rescue StandardError => e
31
+ release(key)
32
+ raise e
33
+ end
34
+
25
35
  def request_redis
26
36
  @request_redis ||= ::Istox::RedisManager.request_redis
27
37
  end
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/istox/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Istox
2
- VERSION = '0.2.14.2'.freeze
2
+ VERSION = '0.2.16'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: istox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.14.2
4
+ version: 0.2.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Siong Leng
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-28 00:00:00.000000000 Z
11
+ date: 2021-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -534,7 +534,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
534
534
  - !ruby/object:Gem::Version
535
535
  version: '0'
536
536
  requirements: []
537
- rubygems_version: 3.0.6
537
+ rubygems_version: 3.2.11
538
538
  signing_key:
539
539
  specification_version: 4
540
540
  summary: istox backend shared gem