ucf_messages 0.0.1 → 0.0.5
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/lib/activesupport_extensions.rb +30 -0
- data/lib/ucf_messages.rb +40 -37
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b04e618c82d65ed97fbbcc4ab05db1889d68a0ebaf4fe18b335ecf650c1d4256
|
4
|
+
data.tar.gz: 03b3c2490516d684f233db8d3aceff5c07df6f904314b9baca0aca981c5ff840
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30e30f08d42ff7c68c1f7711242d66a46bbd96816bc5f172d0537d88491203087307da398d6f89d6d3e80fd2b1d9e302633b8c97e5b9939e57ab167a42b95116
|
7
|
+
data.tar.gz: 5867052d2f0f5676aa62a0aebbc3e600088ff9f4d2444ef3d3cdcc31610a8ba96aac18ab99e44804475e97ac045fa37f605eb82e3f923e806c0f26328d0097ab
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Enumerable
|
4
|
+
def many?
|
5
|
+
cnt = 0
|
6
|
+
if block_given?
|
7
|
+
any? do |element|
|
8
|
+
cnt += 1 if yield element
|
9
|
+
cnt > 1
|
10
|
+
end
|
11
|
+
else
|
12
|
+
any? { (cnt += 1) > 1 }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def pluck(*keys)
|
17
|
+
if keys.many?
|
18
|
+
map { |element| keys.map { |key| element[key] } }
|
19
|
+
else
|
20
|
+
key = keys.first
|
21
|
+
map { |element| element[key] }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Array
|
27
|
+
def second
|
28
|
+
self[1]
|
29
|
+
end
|
30
|
+
end
|
data/lib/ucf_messages.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'activesupport_extensions'
|
4
|
+
|
3
5
|
class UcfMessages
|
4
6
|
MAX_REWARD_THRESHOLD = 5000
|
5
7
|
|
@@ -13,7 +15,9 @@ class UcfMessages
|
|
13
15
|
|
14
16
|
private
|
15
17
|
|
16
|
-
#
|
18
|
+
# There are two rewards: the first one is the multiplication factor for regular responses.
|
19
|
+
# The second one is the multiplication factor for the streak responses, of which the threshold
|
20
|
+
# property determines the start of the streak.
|
17
21
|
def streak_size
|
18
22
|
@protocol&.rewards&.second&.threshold || 3
|
19
23
|
end
|
@@ -30,6 +34,7 @@ class UcfMessages
|
|
30
34
|
sms_pool += streak_conditions if sms_pool.empty?
|
31
35
|
sms_pool += default_pool if sms_pool.empty?
|
32
36
|
|
37
|
+
# Sample returns a random entry from the array
|
33
38
|
sms_pool.sample
|
34
39
|
end
|
35
40
|
# rubocop:enable Metrics/PerceivedComplexity
|
@@ -42,7 +47,8 @@ class UcfMessages
|
|
42
47
|
sms_pool = []
|
43
48
|
1000.step(MAX_REWARD_THRESHOLD, 1000) do |threshold|
|
44
49
|
# 1000 = 10 euro
|
45
|
-
sms_pool
|
50
|
+
# override the current sms_pool so we only get the message for the highest threshold reached
|
51
|
+
sms_pool = rewards_threshold_pool(threshold) if rewards_before < threshold && rewards_after >= threshold
|
46
52
|
end
|
47
53
|
sms_pool
|
48
54
|
end
|
@@ -68,7 +74,8 @@ class UcfMessages
|
|
68
74
|
]
|
69
75
|
when 5000 # 50 euro
|
70
76
|
[
|
71
|
-
'Wat heb jij je ontzettend goed ingezet! Inmiddels heb je al bijna 50 euro verdiend!'
|
77
|
+
'Wat heb jij je ontzettend goed ingezet! Inmiddels heb je al bijna 50 euro verdiend! Vul snel de volgende ' \
|
78
|
+
'vragenlijst in.'
|
72
79
|
]
|
73
80
|
else
|
74
81
|
[]
|
@@ -90,56 +97,66 @@ class UcfMessages
|
|
90
97
|
|
91
98
|
def about_to_be_on_streak_pool
|
92
99
|
[
|
93
|
-
'Je bent goed bezig
|
100
|
+
'Je bent goed bezig! Vul deze vragenlijst in en bereik een bonus-streak! Je verdient dan ' \
|
101
|
+
'elke week 50% meer!'
|
94
102
|
]
|
95
103
|
end
|
96
104
|
|
97
105
|
def on_streak_pool
|
98
106
|
[
|
99
|
-
'Fijn dat je zo behulpzaam bent
|
100
|
-
'Je zit nog steeds in je bonus-streak! Je u-can-feel spaarpotje raakt al behoorlijk vol ;)'
|
101
|
-
'
|
102
|
-
'
|
107
|
+
'Fijn dat je zo behulpzaam bent! Vul je opnieuw de vragenlijst in?',
|
108
|
+
'Je zit nog steeds in je bonus-streak! Je u-can-feel spaarpotje raakt al behoorlijk vol ;) Vul direct de ' \
|
109
|
+
'vragenlijst in om je bonus-streak te behouden.',
|
110
|
+
'Bedankt voor je inzet! Ga zo door :D Er staat weer een nieuwe vragenlijst voor je klaar.',
|
111
|
+
'Je bent een topper! Bedankt voor je goede hulp! Vul je direct de vragenlijst weer in?',
|
103
112
|
'Goed bezig met je bonus-streak, ga zo door!',
|
104
113
|
'Super dat je de vragenlijst al zo vaak achter elkaar hebt ingevuld, bedankt en ga zo door!',
|
105
|
-
'Hoi
|
114
|
+
'Hoi! Vul je de vragenlijst weer in om geld te verdienen?'
|
106
115
|
]
|
107
116
|
end
|
108
117
|
|
109
118
|
def first_invitation_pool
|
110
119
|
[
|
111
120
|
'Welkom bij het u-can-feel dagboekonderzoek! Doe je ook mee? We vragen je om elke week in een paar ' \
|
112
|
-
'minuten wat vragen te beantwoorden over hoe het met je gaat. Daarmee help
|
113
|
-
'én kun je geld verdienen. Via de link kun
|
121
|
+
'minuten wat vragen te beantwoorden over hoe het met je gaat. Daarmee help je ons met ons onderzoek ' \
|
122
|
+
'én kun je geld verdienen. Via de link kun je meer informatie krijgen en de eerste vragenlijst ' \
|
114
123
|
'invullen.'
|
115
124
|
]
|
116
125
|
end
|
117
126
|
|
118
127
|
def default_pool
|
119
128
|
[
|
120
|
-
'Hoi
|
129
|
+
'Hoi! Er staat een vragenlijst voor je klaar, vul je hem weer in? :D',
|
121
130
|
'Een u-can-feel tip: vul drie weken achter elkaar een vragenlijst in en verdien een bonus voor elke ' \
|
122
131
|
'vragenlijst!',
|
123
|
-
'Hoi
|
132
|
+
'Hoi! Vul direct de volgende vragenlijst in. Het kost je maar een paar minuten en je helpt ' \
|
124
133
|
'ons enorm!',
|
125
|
-
'
|
126
|
-
'Fijn dat jij meedoet! Door jou kunnen leerlingen met wie het niet zo goed
|
127
|
-
'krijgen in de toekomst!',
|
128
|
-
'Help
|
129
|
-
'Heel fijn dat je meedoet! Hiermee help je
|
134
|
+
'Wil je een euro verdienen? Vul nu de vragenlijst in!',
|
135
|
+
'Fijn dat jij meedoet! Vul je de vragenlijst weer in? Door jou kunnen leerlingen met wie het niet zo goed ' \
|
136
|
+
'gaat nog betere begeleiding krijgen in de toekomst!',
|
137
|
+
'Help je school nog beter te worden in wat ze doen en vul nu de vragenlijst in!',
|
138
|
+
'Heel fijn dat je meedoet! Vul je de vragenlijst weer in? Hiermee help je je school om leerlingen nog ' \
|
139
|
+
'beter te begeleiden!'
|
130
140
|
]
|
131
141
|
end
|
132
142
|
|
133
143
|
def not_everything_missed
|
134
144
|
[
|
135
|
-
'Je hebt ons al enorm geholpen met de vragenlijsten die je hebt ingevuld
|
136
|
-
'weer helpen én daarmee geld verdienen?'
|
145
|
+
'Je hebt ons al enorm geholpen met de vragenlijsten die je hebt ingevuld. Wil je ons ' \
|
146
|
+
'weer helpen én daarmee geld verdienen?',
|
147
|
+
'Hallo, doe je deze week weer mee aan het u-can-feel onderzoek? Vul de vragenlijst in en ' \
|
148
|
+
'verdien een euro.',
|
149
|
+
'Hoi! Vul direct de volgende vragenlijst in. Het kost je maar een paar minuten en je helpt ' \
|
150
|
+
'ons enorm!',
|
151
|
+
'Doe je weer mee aan het u-can-feel onderzoek? Daarmee help je ons enorm én verdien je geld.',
|
152
|
+
'We hebben je al even gemist! Help je deze week weer mee met het u-can-feel onderzoek? Het ' \
|
153
|
+
'kost maar een paar minuten van je tijd. Je helpt ons en je school. En je verdient er zelf ook een euro mee.'
|
137
154
|
]
|
138
155
|
end
|
139
156
|
|
140
157
|
def missed_everything
|
141
158
|
[
|
142
|
-
'Je bent nog niet gestart met het u-can-feel dagboekonderzoek
|
159
|
+
'Je bent nog niet gestart met het u-can-feel dagboekonderzoek! Doe je alsnog mee? We ' \
|
143
160
|
'vragen je om elke week een paar minuten wat vragen te beantwoorden over hoe het met je gaat. Daarmee help ' \
|
144
161
|
'je ons met ons onderzoek én kun je geld verdienen. Via de link kun je meer informatie krijgen en de eerste ' \
|
145
162
|
'vragenlijst invullen.'
|
@@ -148,7 +165,7 @@ class UcfMessages
|
|
148
165
|
|
149
166
|
def missed_one_after_streak
|
150
167
|
[
|
151
|
-
'Je was heel goed bezig met het u-can-feel onderzoek
|
168
|
+
'Je was heel goed bezig met het u-can-feel onderzoek. Probeer je opnieuw de bonus-streak ' \
|
152
169
|
'te halen om extra geld te verdienen?'
|
153
170
|
]
|
154
171
|
end
|
@@ -163,7 +180,7 @@ class UcfMessages
|
|
163
180
|
def rejoined_after_missing_one
|
164
181
|
[
|
165
182
|
'Na een weekje rust ben je er sinds vorige week weer bij. Heel fijn dat je weer mee doet met het u-can-feel ' \
|
166
|
-
'onderzoek! Daarmee help je ons enorm.'
|
183
|
+
'onderzoek! Daarmee help je ons enorm. Vul je direct de volgende vragenlijst in?'
|
167
184
|
]
|
168
185
|
end
|
169
186
|
|
@@ -215,10 +232,6 @@ class UcfMessages
|
|
215
232
|
@curidx.zero?
|
216
233
|
end
|
217
234
|
|
218
|
-
def completed_some?
|
219
|
-
@protocol_completion.pluck(:completed).any?
|
220
|
-
end
|
221
|
-
|
222
235
|
def missed_previous_response?
|
223
236
|
# Minimal pattern: .C (X = completed, C = current)
|
224
237
|
# index: 01
|
@@ -243,16 +256,6 @@ class UcfMessages
|
|
243
256
|
@protocol_completion[@curidx - 2][:streak] >= streak_size
|
244
257
|
end
|
245
258
|
|
246
|
-
# missed more than one in a row (but not all) prior to the current response
|
247
|
-
def missed_more_than_one?
|
248
|
-
# Minimal pattern: X..C (X = completed, C = current)
|
249
|
-
# index: 0123
|
250
|
-
@curidx > 2 &&
|
251
|
-
!@protocol_completion[@curidx - 1][:completed] &&
|
252
|
-
!@protocol_completion[@curidx - 2][:completed] &&
|
253
|
-
@protocol_completion[0..(@curidx - 3)].pluck(:completed).any?
|
254
|
-
end
|
255
|
-
|
256
259
|
def missed_everything?
|
257
260
|
# Minimal pattern: .C (X = completed, C = current)
|
258
261
|
# index: 01
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ucf_messages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ando Emerencia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: library for determining which invitation text to use
|
14
14
|
email: info@compsy.ch
|
@@ -16,6 +16,7 @@ executables: []
|
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
|
+
- lib/activesupport_extensions.rb
|
19
20
|
- lib/ucf_messages.rb
|
20
21
|
homepage: https://github.com/compsy/ucf_messages
|
21
22
|
licenses:
|