zold-score 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/README.md +21 -0
- data/lib/zold/score.rb +13 -11
- data/zold-score.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae6b7b325d1fc6a2fe0ebc40a24d74dc0fd9aa6d55ab12f3db8ee5e99a9b6b9c
|
4
|
+
data.tar.gz: 97fb4c79c78a25e1c50909585772a3dcd5c80dbf3865cc3eec813459b5484a86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71d647ded91e78b60a2bc4997a0438ec6c5e7de38e26c103491fcd02aca6c5bfc130ca33e2c79c0190bd432cb7823530d64a51e3c2315b03aa2f0afdcfe47eb0
|
7
|
+
data.tar.gz: 66f9b065d6262d66b8be14e261d17f043a3323f38ce9da166b29585b2518bdf0b38162113cf8fed5c29d064aea8998ff55c571f173f0c92b3a4fefa163df6c6e
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -21,6 +21,27 @@ The license is [MIT](https://github.com/zold-io/zold-score/blob/master/LICENSE.t
|
|
21
21
|
|
22
22
|
This small Ruby Gem calculates the score for Zold nodes.
|
23
23
|
|
24
|
+
To calculate a new Score you create an object first:
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
score = Zold::Score.new(
|
28
|
+
host: 'example.com',
|
29
|
+
port: 4096,
|
30
|
+
invoice: 'MYPREFIX@ffffffffffffffff',
|
31
|
+
strength: 6
|
32
|
+
)
|
33
|
+
```
|
34
|
+
|
35
|
+
This score has zero value and the strength of six. Then you just ask it to calculate the next score:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
n = score.next
|
39
|
+
```
|
40
|
+
|
41
|
+
That's it.
|
42
|
+
|
43
|
+
This project is actively used in our [main Ruby repo](https://github.com/zold-io/zold).
|
44
|
+
|
24
45
|
# How to contribute
|
25
46
|
|
26
47
|
Read [these guidelines](https://www.yegor256.com/2014/04/15/github-guidelines.html).
|
data/lib/zold/score.rb
CHANGED
@@ -73,19 +73,21 @@ module Zold
|
|
73
73
|
)
|
74
74
|
end
|
75
75
|
|
76
|
+
# Pattern to match from string
|
77
|
+
PTN = Regexp.new(
|
78
|
+
'^' + [
|
79
|
+
'([0-9]+)/(?<strength>[0-9]+):',
|
80
|
+
' (?<time>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)',
|
81
|
+
' (?<host>[0-9a-z\.\-]+)',
|
82
|
+
' (?<port>[0-9]+)',
|
83
|
+
' (?<invoice>[a-zA-Z0-9]{8,32}@[a-f0-9]{16})',
|
84
|
+
'(?<suffixes>( [a-zA-Z0-9]+)*)'
|
85
|
+
].join + '$'
|
86
|
+
)
|
87
|
+
|
76
88
|
# Parses it back from the text generated by <tt>to_s</tt>.
|
77
89
|
def self.parse(text)
|
78
|
-
|
79
|
-
'^' + [
|
80
|
-
'([0-9]+)/(?<strength>[0-9]+):',
|
81
|
-
' (?<time>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)',
|
82
|
-
' (?<host>[0-9a-z\.\-]+)',
|
83
|
-
' (?<port>[0-9]+)',
|
84
|
-
' (?<invoice>[a-zA-Z0-9]{8,32}@[a-f0-9]{16})',
|
85
|
-
'(?<suffixes>( [a-zA-Z0-9]+)*)'
|
86
|
-
].join + '$'
|
87
|
-
)
|
88
|
-
m = re.match(text.strip)
|
90
|
+
m = Score::PTN.match(text.strip)
|
89
91
|
raise "Invalid score '#{text}', doesn't match: #{re}" if m.nil?
|
90
92
|
Score.new(
|
91
93
|
time: Time.parse(m[:time]), host: m[:host],
|
data/zold-score.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.rubygems_version = '2.2'
|
28
28
|
s.required_ruby_version = '>=2.3'
|
29
29
|
s.name = 'zold-score'
|
30
|
-
s.version = '0.2.
|
30
|
+
s.version = '0.2.1'
|
31
31
|
s.license = 'MIT'
|
32
32
|
s.summary = 'Zold score'
|
33
33
|
s.description = 'Score calculating Ruby Gem for Zold'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zold-score
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: codecov
|