fbe 0.42.0 → 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/markdown-lint.yml +1 -1
- data/.github/workflows/typos.yml +1 -1
- data/assets/pmp.xml +89 -0
- data/lib/fbe/pmp.rb +43 -12
- data/lib/fbe.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5389d9ecc0b9c343ea11ce2054aa1c8bf2efaff8d62e320e92e142bc3b9ed1cc
|
|
4
|
+
data.tar.gz: e04b7d8d445789490aee49c7ee8a068da1256c6636b01ad1b350b74ddf8168e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e4b269991d90d608370dd3c0fb2ad703d700f1a959022143a0f13291d9699d7af71f85125fa760b4cda3584c59a73fe2b49666445ee95beb4d1c104b66e44a75
|
|
7
|
+
data.tar.gz: ec874b7fb71b3c325c7d05cb3bba9c168270ddfe10e3c8294778a0ffabac5ebf2aa522fafc39eddf11f64f7f7308798d9d88c3adb41559241e97dd88436676fa
|
data/.github/workflows/typos.yml
CHANGED
data/assets/pmp.xml
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
<?xml version='1.0'?>
|
|
2
|
+
<!--
|
|
3
|
+
SPDX-FileCopyrightText: Copyright (c) 2024-2025 Zerocracy
|
|
4
|
+
SPDX-License-Identifier: MIT
|
|
5
|
+
-->
|
|
6
|
+
<pmp>
|
|
7
|
+
<area name="hr">
|
|
8
|
+
<p>
|
|
9
|
+
<name>anger</name>
|
|
10
|
+
<default>2</default>
|
|
11
|
+
<type>int</type>
|
|
12
|
+
<memo>The level of anger</memo>
|
|
13
|
+
</p>
|
|
14
|
+
<p>
|
|
15
|
+
<name>days_to_reward</name>
|
|
16
|
+
<default>14</default>
|
|
17
|
+
<type>int</type>
|
|
18
|
+
<memo>How many days ago an event must happen so that we reward it?</memo>
|
|
19
|
+
</p>
|
|
20
|
+
<p>
|
|
21
|
+
<name>days_of_running_score</name>
|
|
22
|
+
<default>56</default>
|
|
23
|
+
<type>int</type>
|
|
24
|
+
<memo>How many days to include into the score of a person?</memo>
|
|
25
|
+
</p>
|
|
26
|
+
<p>
|
|
27
|
+
<name>master_punish_days</name>
|
|
28
|
+
<default>4</default>
|
|
29
|
+
<type>int</type>
|
|
30
|
+
<memo>Every X days to punish for direct push to master</memo>
|
|
31
|
+
</p>
|
|
32
|
+
</area>
|
|
33
|
+
<area name="integration">
|
|
34
|
+
<p>
|
|
35
|
+
<name>eva_interval</name>
|
|
36
|
+
<default>10</default>
|
|
37
|
+
<type>int</type>
|
|
38
|
+
<memo>Every X days to collect EVA statistics</memo>
|
|
39
|
+
</p>
|
|
40
|
+
<p>
|
|
41
|
+
<name>eva_learn_hours</name>
|
|
42
|
+
<default>8</default>
|
|
43
|
+
<type>int</type>
|
|
44
|
+
<memo>Every X hours to collect EVA numbers and learn the model using them</memo>
|
|
45
|
+
</p>
|
|
46
|
+
</area>
|
|
47
|
+
<area name="quality">
|
|
48
|
+
<p>
|
|
49
|
+
<name>paranoia</name>
|
|
50
|
+
<default>2</default>
|
|
51
|
+
<type>int</type>
|
|
52
|
+
<memo>The level of paranoia</memo>
|
|
53
|
+
</p>
|
|
54
|
+
<p>
|
|
55
|
+
<name>qos_days</name>
|
|
56
|
+
<default>32</default>
|
|
57
|
+
<type>int</type>
|
|
58
|
+
<memo>For how many days to collect QoS data</memo>
|
|
59
|
+
</p>
|
|
60
|
+
</area>
|
|
61
|
+
<area name="scope">
|
|
62
|
+
<p>
|
|
63
|
+
<name>qod_days</name>
|
|
64
|
+
<default>32</default>
|
|
65
|
+
<type>int</type>
|
|
66
|
+
<memo>For how many days to collect QoD data</memo>
|
|
67
|
+
</p>
|
|
68
|
+
</area>
|
|
69
|
+
<area name="cost">
|
|
70
|
+
<p>
|
|
71
|
+
<name>love</name>
|
|
72
|
+
<default>2</default>
|
|
73
|
+
<type>int</type>
|
|
74
|
+
<memo>The level of love</memo>
|
|
75
|
+
</p>
|
|
76
|
+
<p>
|
|
77
|
+
<name>award_price</name>
|
|
78
|
+
<default>0.0</default>
|
|
79
|
+
<type>float</type>
|
|
80
|
+
<memo>How many USD to pay for each award point</memo>
|
|
81
|
+
</p>
|
|
82
|
+
<p>
|
|
83
|
+
<name>slaves</name>
|
|
84
|
+
<default>torvalds</default>
|
|
85
|
+
<type>string</type>
|
|
86
|
+
<memo>List of people, who are not supposed to be paid real cash</memo>
|
|
87
|
+
</p>
|
|
88
|
+
</area>
|
|
89
|
+
</pmp>
|
data/lib/fbe/pmp.rb
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
# SPDX-FileCopyrightText: Copyright (c) 2024-2025 Zerocracy
|
|
4
4
|
# SPDX-License-Identifier: MIT
|
|
5
5
|
|
|
6
|
+
require 'delegate'
|
|
7
|
+
require 'nokogiri'
|
|
6
8
|
require 'others'
|
|
7
9
|
require_relative '../fbe'
|
|
8
10
|
require_relative 'fb'
|
|
@@ -41,18 +43,47 @@ require_relative 'fb'
|
|
|
41
43
|
# # Get deadline from time area
|
|
42
44
|
# deadline = Fbe.pmp.time.deadline
|
|
43
45
|
def Fbe.pmp(fb: Fbe.fb, global: $global, options: $options, loog: $loog)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
xml = Nokogiri::XML(File.read(File.join(__dir__, '../../assets/pmp.xml')))
|
|
47
|
+
pmpv =
|
|
48
|
+
Class.new(SimpleDelegator) do
|
|
49
|
+
def initialize(value, dv)
|
|
50
|
+
super(value)
|
|
51
|
+
@dv = dv
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def default
|
|
55
|
+
@dv
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
Class.new do
|
|
59
|
+
define_method(:areas) do
|
|
60
|
+
xml.xpath('/pmp/area/@name').map(&:value)
|
|
48
61
|
end
|
|
49
|
-
others do |*
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
raise "Unknown area #{area.inspect}" if
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
62
|
+
others do |*args1|
|
|
63
|
+
area = args1.first.to_s
|
|
64
|
+
node = xml.at_xpath("/pmp/area[@name='#{area}']")
|
|
65
|
+
raise "Unknown area #{area.inspect}" if node.nil?
|
|
66
|
+
Class.new do
|
|
67
|
+
define_method(:properties) do
|
|
68
|
+
node.xpath('p/name').map(&:text)
|
|
69
|
+
end
|
|
70
|
+
others do |*args2|
|
|
71
|
+
param = args2.first.to_s
|
|
72
|
+
prop = node.at_xpath("p[name='#{param}']")
|
|
73
|
+
raise "Unknown property #{param.inspect} in the #{area.inspect} area" if prop.nil?
|
|
74
|
+
f = Fbe.fb(global:, fb:, options:, loog:).query("(and (eq what 'pmp') (eq area '#{area}'))").each.first
|
|
75
|
+
r = f&.[](param)&.first
|
|
76
|
+
d = prop.at_xpath('default').text
|
|
77
|
+
t = prop.at_xpath('type').text
|
|
78
|
+
dv =
|
|
79
|
+
case t
|
|
80
|
+
when 'int' then d.to_i
|
|
81
|
+
when 'float' then d.to_f
|
|
82
|
+
else d
|
|
83
|
+
end
|
|
84
|
+
pmpv.new(r || dv, dv)
|
|
85
|
+
end
|
|
86
|
+
end.new
|
|
56
87
|
end
|
|
57
|
-
end
|
|
88
|
+
end.new
|
|
58
89
|
end
|
data/lib/fbe.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fbe
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.43.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yegor Bugayenko
|
|
@@ -375,6 +375,7 @@ files:
|
|
|
375
375
|
- assets/bylaws/published-release-was-rewarded.fe.liquid
|
|
376
376
|
- assets/bylaws/push-to-master-was-punished.fe.liquid
|
|
377
377
|
- assets/bylaws/resolved-bug-was-rewarded.fe.liquid
|
|
378
|
+
- assets/pmp.xml
|
|
378
379
|
- fbe.gemspec
|
|
379
380
|
- lib/fbe.rb
|
|
380
381
|
- lib/fbe/award.rb
|