ucf_messages 0.0.1 → 0.0.5

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: 2748d9b5ab8838e5ace4a57d1d804f747c1c1c07639831b259376e40daecc354
4
- data.tar.gz: 6f38d12c95bbc1ef5cb6a1040a44f791e983bc6312928319db6b2c6581a71871
3
+ metadata.gz: b04e618c82d65ed97fbbcc4ab05db1889d68a0ebaf4fe18b335ecf650c1d4256
4
+ data.tar.gz: 03b3c2490516d684f233db8d3aceff5c07df6f904314b9baca0aca981c5ff840
5
5
  SHA512:
6
- metadata.gz: 3892f43d5f208976beb8de97fe659a8dea68751a5dddcc895e8202005e614d0d3df6a0d6bc68a247969988da25b8b5b3022533115f74697fa997202a1f9e1765
7
- data.tar.gz: 541355e76b06638bfa0a2c769eef3ca3a744822087b1dab8c05c4c9fd55236e513510f68668a6a2e4792d4cc830295fe453e55fd7d057d616f6a36c7ee062ea1
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
- # TODO: check this calculation! Why is there two rewards?
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 += rewards_threshold_pool(threshold) if rewards_before < threshold && rewards_after >= threshold
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 {{deze_student}}! Vul deze vragenlijst in en bereik een bonus-streak!'
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, {{deze_student}}! Vul je opnieuw de vragenlijst in?',
100
- 'Je zit nog steeds in je bonus-streak! Je u-can-feel spaarpotje raakt al behoorlijk vol ;)',
101
- 'Bedankt voor je inzet! Ga zo door :D',
102
- '{{deze_student}}, je bent een topper! Bedankt voor je goede hulp!',
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 {{deze_student}}! Vul je de vragenlijst weer in om geld te verdienen?'
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 j eons met ons onderzoek ' \
113
- 'én kun je geld verdienen. Via de link kun j emeer informatie krijgen en de eerste vragenlijst ' \
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 {{deze_student}}! Er staat een vragenlijst voor je klaar, vul je hem weer in? :D',
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 {{deze_student}}! Vul direct de vovlgende vragenlijst in. Het kost je maar een paar minuten en je helpt ' \
132
+ 'Hoi! Vul direct de volgende vragenlijst in. Het kost je maar een paar minuten en je helpt ' \
124
133
  'ons enorm!',
125
- 'Hallo {{deze_student}}, verdien een euro! Vul nu de vragenlijst in!',
126
- 'Fijn dat jij meedoet! Door jou kunnen leerlingen met wie het niet zo goed gaat nog betere begeleiding ' \
127
- 'krijgen in de toekomst!',
128
- 'Help {{je_school}} nog beter te worden in wat ze doen en vul nu de vragenlijst in!',
129
- 'Heel fijn dat je meedoet! Hiermee help je {{je_school}} om leerlingen nog beter te begeleiden!'
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, {{deze_student}}. Wil je ons ' \
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, {{deze_student}}! Doe je alsnog mee? We ' \
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 {{deze_student}}. Probeer je opnieuw de bonus-streak ' \
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.1
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: 2021-09-29 00:00:00.000000000 Z
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: