ImpUnit 0.3.2 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ImpUnit.gemspec +2 -2
- data/lib/ImpUnit/version.rb +1 -1
- data/lib/ImpUnit.rb +332 -72
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab8b641cf21e85d33c9da3b065bc529c5063315351fce6bde74cf2305469f25d
|
4
|
+
data.tar.gz: 6bac22ca5c38b6697745ee79375f26d651d7c77c50e4d96b8aa7101d77c17839
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 410f4c0df14789813d7cd16e850170985773d61b75ac1c7bcd05dbffc560fba5bd8339a1b3a6b57b368382453ac8b2ce203833d224c3f8054d32e42625fd7e0b
|
7
|
+
data.tar.gz: 48ba497efbafd5b323546133fbcebfb4b141373a53b89edd056734f93021fd4f27bef00974843443a33ea9a3adf07ac94f471e22cdf7527a75ae0f3ba7723dd9
|
data/ImpUnit.gemspec
CHANGED
@@ -10,8 +10,8 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["lwflouisa@gmail.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{ImpUnit engine. The intent is a human like intelligence small enough to fit into a thumb drive.}
|
13
|
-
spec.description = %q{Implementing the main engine and subroutines into a gem so I don't have to continuously recreate the wheel.}
|
14
|
-
spec.homepage = "https://
|
13
|
+
spec.description = %q{Implementing the main engine and subroutines into a gem so I don't have to continuously recreate the wheel. Finally got the local subscriptions feed for rikusuto mode to work.}
|
14
|
+
spec.homepage = "https://github.com/LWFlouisa/ImpUnitApp"
|
15
15
|
|
16
16
|
# Specify which files should be added to the gem when it is released.
|
17
17
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
data/lib/ImpUnit/version.rb
CHANGED
data/lib/ImpUnit.rb
CHANGED
@@ -13,7 +13,7 @@ module ImpUnit
|
|
13
13
|
# def self.manual
|
14
14
|
# end
|
15
15
|
# end
|
16
|
-
|
16
|
+
|
17
17
|
class MainAI
|
18
18
|
def self.seed
|
19
19
|
number = 0
|
@@ -120,8 +120,233 @@ end"
|
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
123
|
+
# Naive Baysian model on Fraponic.
|
124
|
+
class LanguageFraponic
|
125
|
+
def self.grammar_feed
|
126
|
+
input = File.read("data/language/input.txt").downcase.split(" ")
|
127
|
+
|
128
|
+
number = 0
|
129
|
+
|
130
|
+
size_limit = input.size.to_i
|
131
|
+
|
132
|
+
require "naive_bayes"
|
133
|
+
|
134
|
+
size_limit.times do
|
135
|
+
require "naive_bayes"
|
136
|
+
|
137
|
+
grammar = NaiveBayes.new(:word_gender,
|
138
|
+
:personal_pronouns,
|
139
|
+
:nouns,
|
140
|
+
:adjectives,
|
141
|
+
:conjucation_prepositions,
|
142
|
+
:verbs,
|
143
|
+
:adverbs,
|
144
|
+
)
|
145
|
+
|
146
|
+
# Train on word genders.
|
147
|
+
grammar.train(:word_gender, "u", "word")
|
148
|
+
grammar.train(:word_gender, "a", "word")
|
149
|
+
grammar.train(:word_gender, "os", "word")
|
150
|
+
|
151
|
+
# Train on personal pronouns
|
152
|
+
grammar.train(:personal_pronouns, "ne", "word")
|
153
|
+
grammar.train(:personal_pronouns, "miyo", "word")
|
154
|
+
grammar.train(:personal_pronouns, "viyo", "word")
|
155
|
+
grammar.train(:personal_pronouns, "tiyo", "word")
|
156
|
+
grammar.train(:personal_pronouns, "niyo", "word")
|
157
|
+
grammar.train(:personal_pronouns, "iye", "word")
|
158
|
+
grammar.train(:personal_pronouns, "iyesu", "word")
|
159
|
+
grammar.train(:personal_pronouns, "eye", "word")
|
160
|
+
grammar.train(:personal_pronouns, "eyesa", "word")
|
161
|
+
|
162
|
+
# Train on personal pronouns
|
163
|
+
grammar.train(:personal_pronouns, "iyeniyo", "word")
|
164
|
+
grammar.train(:personal_pronouns, "eyeniyo", "word")
|
165
|
+
grammar.train(:personal_pronouns, "iyesuniyo", "word")
|
166
|
+
grammar.train(:personal_pronouns, "eyesaniyo", "word")
|
167
|
+
|
168
|
+
# Train on family members.
|
169
|
+
grammar.train(:nouns, "pede", "word")
|
170
|
+
grammar.train(:nouns, "mede", "word")
|
171
|
+
grammar.train(:nouns, "sferede", "word")
|
172
|
+
grammar.train(:nouns, "sfude", "word")
|
173
|
+
grammar.train(:nouns, "cusfijere", "word")
|
174
|
+
grammar.train(:nouns, "cusfijera", "word")
|
175
|
+
grammar.train(:nouns, "cusfijeres", "word")
|
176
|
+
grammar.train(:nouns, "tanite", "word")
|
177
|
+
grammar.train(:nouns, "oji", "word")
|
178
|
+
|
179
|
+
# Train on secondary nouns
|
180
|
+
grammar.train(:nouns, "cuto", "word")
|
181
|
+
grammar.train(:nouns, "cere", "word")
|
182
|
+
grammar.train(:nouns, "xase", "word")
|
183
|
+
grammar.train(:nouns, "tankobon", "word")
|
184
|
+
grammar.train(:nouns, "michite", "word")
|
185
|
+
grammar.train(:nouns, "gahe", "word")
|
186
|
+
grammar.train(:nouns, "gahene", "word")
|
187
|
+
grammar.train(:nouns, "koroyo", "word")
|
188
|
+
grammar.train(:nouns, "toko", "word")
|
189
|
+
grammar.train(:nouns, "hadajo", "word")
|
190
|
+
grammar.train(:nouns, "makadama", "word")
|
191
|
+
grammar.train(:nouns, "ishiniko", "word")
|
192
|
+
grammar.train(:nouns, "tasfijo", "word")
|
193
|
+
grammar.train(:nouns, "musilijero", "word")
|
194
|
+
grammar.train(:nouns, "itami", "word")
|
195
|
+
grammar.train(:nouns, "kiho", "word")
|
196
|
+
grammar.train(:nouns, "enekurofire", "word")
|
197
|
+
grammar.train(:nouns, "ehamatoragune", "word")
|
198
|
+
grammar.train(:nouns, "robosekusurite", "word")
|
199
|
+
grammar.train(:nouns, "sekusurite", "word")
|
200
|
+
grammar.train(:nouns, "apetite", "word")
|
201
|
+
grammar.train(:nouns, "hakusu", "word")
|
202
|
+
grammar.train(:nouns, "basukete", "word")
|
203
|
+
grammar.train(:nouns, "gerope", "word")
|
204
|
+
grammar.train(:nouns, "banidoru", "word")
|
205
|
+
grammar.train(:nouns, "sfavare", "word")
|
206
|
+
grammar.train(:nouns, "sfabine", "word")
|
207
|
+
grammar.train(:nouns, "atimosipilere", "word")
|
208
|
+
grammar.train(:nouns, "funiki", "word")
|
209
|
+
grammar.train(:nouns, "boruto", "word")
|
210
|
+
grammar.train(:nouns, "verohe", "word")
|
211
|
+
grammar.train(:nouns, "xehene", "word")
|
212
|
+
grammar.train(:nouns, "kytapira", "word")
|
213
|
+
|
214
|
+
# Train on adjectives
|
215
|
+
grammar.train(:adjectives, "ebax", "word")
|
216
|
+
grammar.train(:adjectives, "beloyan", "word")
|
217
|
+
grammar.train(:adjectives, "uchay", "word")
|
218
|
+
grammar.train(:adjectives, "berane", "word")
|
219
|
+
grammar.train(:adjectives, "pahe", "word")
|
220
|
+
grammar.train(:adjectives, "enere", "word")
|
221
|
+
grammar.train(:adjectives, "visarize", "word")
|
222
|
+
grammar.train(:adjectives, "venituse", "word")
|
223
|
+
grammar.train(:adjectives, "kiwotsukero", "word")
|
224
|
+
grammar.train(:adjectives, "kebuka", "word")
|
225
|
+
grammar.train(:adjectives, "sula", "word")
|
226
|
+
grammar.train(:adjectives, "kosatasu", "word")
|
227
|
+
grammar.train(:adjectives, "hatadake", "word")
|
228
|
+
grammar.train(:adjectives, "ateroce", "word")
|
229
|
+
grammar.train(:adjectives, "aboradaberu", "word")
|
230
|
+
grammar.train(:adjectives, "regarabehe", "word")
|
231
|
+
grammar.train(:adjectives, "arutesiqe", "word")
|
232
|
+
grammar.train(:adjectives, "etimire", "word")
|
233
|
+
grammar.train(:adjectives, "eseru", "word")
|
234
|
+
grammar.train(:adjectives, "hitori", "word")
|
235
|
+
|
236
|
+
# Train on conjucations and prepositions
|
237
|
+
grammar.train(:conjucation_prepositions, "di", "word")
|
238
|
+
grammar.train(:conjucation_prepositions, "ni", "word")
|
239
|
+
grammar.train(:conjucation_prepositions, "si", "word")
|
240
|
+
grammar.train(:conjucation_prepositions, "isi", "word")
|
241
|
+
grammar.train(:conjucation_prepositions, "ow", "word")
|
242
|
+
grammar.train(:conjucation_prepositions, "axo", "word")
|
243
|
+
grammar.train(:conjucation_prepositions, "swa", "word")
|
244
|
+
grammar.train(:conjucation_prepositions, "esoma", "word")
|
245
|
+
grammar.train(:conjucation_prepositions, "peru", "word")
|
246
|
+
grammar.train(:conjucation_prepositions, "somene", "word")
|
247
|
+
grammar.train(:conjucation_prepositions, "uu", "word")
|
248
|
+
grammar.train(:conjucation_prepositions, "qi", "word")
|
249
|
+
grammar.train(:conjucation_prepositions, "qo", "word")
|
250
|
+
grammar.train(:conjucation_prepositions, "qe", "word")
|
251
|
+
grammar.train(:conjucation_prepositions, "qunida", "word")
|
252
|
+
grammar.train(:conjucation_prepositions, "cero", "word")
|
253
|
+
grammar.train(:conjucation_prepositions, "aves", "word")
|
254
|
+
grammar.train(:conjucation_prepositions, "dez", "word")
|
255
|
+
grammar.train(:conjucation_prepositions, "sonite", "word")
|
256
|
+
grammar.train(:conjucation_prepositions, "etere", "word")
|
257
|
+
grammar.train(:conjucation_prepositions, "oqe", "word")
|
258
|
+
|
259
|
+
# Train on verbs.
|
260
|
+
grammar.train(:verbs, "eru", "word")
|
261
|
+
grammar.train(:verbs, "cupo", "word")
|
262
|
+
grammar.train(:verbs, "uvere", "word")
|
263
|
+
grammar.train(:verbs, "asochi", "word")
|
264
|
+
grammar.train(:verbs, "lisoje", "word")
|
265
|
+
grammar.train(:verbs, "decite", "word")
|
266
|
+
grammar.train(:verbs, "sufere", "word")
|
267
|
+
grammar.train(:verbs, "exipoze", "word")
|
268
|
+
grammar.train(:verbs, "kimeru", "word")
|
269
|
+
grammar.train(:verbs, "hoko", "word")
|
270
|
+
grammar.train(:verbs, "uzuke", "word")
|
271
|
+
grammar.train(:verbs, "xosfe", "word")
|
272
|
+
grammar.train(:verbs, "yubiwa", "word")
|
273
|
+
grammar.train(:verbs, "atachi", "word")
|
274
|
+
grammar.train(:verbs, "furuma", "word")
|
275
|
+
grammar.train(:verbs, "zokusuru", "word")
|
276
|
+
grammar.train(:verbs, "cerine", "word")
|
277
|
+
grammar.train(:verbs, "konitoru", "word")
|
278
|
+
grammar.train(:verbs, "erokute", "word")
|
279
|
+
grammar.train(:verbs, "vohonite", "word")
|
280
|
+
grammar.train(:verbs, "exusfe", "word")
|
281
|
+
grammar.train(:verbs, "salaza", "word")
|
282
|
+
grammar.train(:verbs, "eperi", "word")
|
283
|
+
grammar.train(:verbs, "mageru", "word")
|
284
|
+
grammar.train(:verbs, "eroge", "word")
|
285
|
+
grammar.train(:verbs, "sekimen", "word")
|
286
|
+
grammar.train(:verbs, "emiperunite", "word")
|
287
|
+
grammar.train(:verbs, "karite", "word")
|
288
|
+
|
289
|
+
# Train on adverbs.
|
290
|
+
grammar.train(:verbs, "vite", "word")
|
291
|
+
grammar.train(:verbs, "hente", "word")
|
292
|
+
grammar.train(:verbs, "mute", "word")
|
293
|
+
grammar.train(:verbs, "dolemente", "word")
|
294
|
+
grammar.train(:verbs, "pedecise", "word")
|
295
|
+
grammar.train(:verbs, "mopedecise", "word")
|
296
|
+
grammar.train(:verbs, "vivemeje", "word")
|
297
|
+
grammar.train(:verbs, "ketasuzejo", "word")
|
298
|
+
grammar.train(:verbs, "dusa", "word")
|
299
|
+
grammar.train(:verbs, "terebereme", "word")
|
300
|
+
|
301
|
+
b = input[number]
|
302
|
+
|
303
|
+
result = "#{grammar.classify(*b)}"
|
304
|
+
|
305
|
+
# Generate description and XML timeline.
|
306
|
+
description = "#{result}"
|
307
|
+
|
308
|
+
open("documents/#{date_title}.txt", "w") { |f|
|
309
|
+
f.puts description
|
310
|
+
}
|
311
|
+
|
312
|
+
new_output = "
|
313
|
+
<item>
|
314
|
+
<title>#{date}</title>
|
315
|
+
<link>http://localhost:8000/documents/#{date_title}.txt</link>
|
316
|
+
<description><![CDATA[<p>#{description}</p>]]></description>
|
317
|
+
</item>"
|
318
|
+
|
319
|
+
open("feed/old_feed.txt", "w") { |f|
|
320
|
+
f.puts new_output
|
321
|
+
}
|
322
|
+
|
323
|
+
generate_xml = "<?xml version='1.0' encoding='UTF-8' ?>
|
324
|
+
<rss version='2.0'>
|
325
|
+
|
326
|
+
<channel>
|
327
|
+
<title>Grammar Feed</title>
|
328
|
+
<link>http://localhost:8000/feed.xml</link>
|
329
|
+
<description>Local Feed for naive bayes output.</description>
|
330
|
+
|
331
|
+
#{new_output}
|
332
|
+
#{old_output}
|
333
|
+
</channel>
|
334
|
+
|
335
|
+
</rss>"
|
336
|
+
|
337
|
+
open("feed/feed.xml", "w") { |f|
|
338
|
+
f.puts generate_xml
|
339
|
+
}
|
340
|
+
|
341
|
+
sleep(1)
|
342
|
+
|
343
|
+
number = number + 1
|
344
|
+
end
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
123
348
|
# Bleeding edge
|
124
|
-
class
|
349
|
+
class Object
|
125
350
|
def self.what_object
|
126
351
|
input = File.read("data/object/object_chart.txt").split(" ")
|
127
352
|
|
@@ -355,9 +580,9 @@ end"
|
|
355
580
|
attributes = ['Rikusuto']
|
356
581
|
|
357
582
|
training = [
|
358
|
-
[ 0.5,
|
359
|
-
[ 50.0, "will you obtain
|
360
|
-
[100.0,
|
583
|
+
[ 0.5, "vohonitos viyos eros"], # will you get
|
584
|
+
[ 50.0, "vohonitos viyos obetenos"], # will you obtain
|
585
|
+
[100.0, "putos ne avoros"], # may I have
|
361
586
|
]
|
362
587
|
|
363
588
|
# Instantiate the tree, and train it based on the data (set default to '1')
|
@@ -391,11 +616,11 @@ end"
|
|
391
616
|
attributes = ['Atemu']
|
392
617
|
|
393
618
|
training = [
|
394
|
-
[ 0.5,
|
395
|
-
[ 25.0,
|
396
|
-
[ 50.0,
|
397
|
-
[ 75.0, "
|
398
|
-
[100.0,
|
619
|
+
[ 0.5, "Eramos onas bananos"], # Banana
|
620
|
+
[ 25.0, "Eramos onas oranigos"], # Orange
|
621
|
+
[ 50.0, "Eramos onas pomos"], # Apple
|
622
|
+
[ 75.0, "Eramos onas pinapuros"], # Pineapple
|
623
|
+
[100.0, "Eramos onas himos"], # Lime
|
399
624
|
]
|
400
625
|
|
401
626
|
# Instantiate the tree, and train it based on the data (set default to '1')
|
@@ -451,15 +676,18 @@ end"
|
|
451
676
|
|
452
677
|
# ImpUnit::FXML.generate
|
453
678
|
def self.generate
|
454
|
-
|
679
|
+
old_output = File.read("feed/old_feed.txt")
|
455
680
|
|
456
|
-
|
681
|
+
# Get the date.
|
682
|
+
system("date > date/date.txt")
|
457
683
|
|
458
|
-
#
|
459
|
-
|
460
|
-
|
684
|
+
# Immutables
|
685
|
+
date = File.read("date/date.txt").strip
|
686
|
+
date_title = date.tr " ", "_"
|
461
687
|
|
462
688
|
# Read in from files.
|
689
|
+
system("ruby .rikusuto.rb; ruby .atemu.rb; ruby .yuza.rb")
|
690
|
+
|
463
691
|
agent_name = File.read("data/usr_identity/name.txt").strip.to_s
|
464
692
|
request_type = File.read("data/rikusuto/request.txt").strip.to_s
|
465
693
|
item = File.read("data/atemu/items.txt").strip.to_s
|
@@ -467,14 +695,14 @@ end"
|
|
467
695
|
local_name = File.read("data/usr_identity/local_name.txt").strip.to_s
|
468
696
|
|
469
697
|
# Create XML tags
|
470
|
-
salut = "
|
471
|
-
ejento = "
|
472
|
-
rikusuto = "
|
473
|
-
atemu = "
|
474
|
-
nitote = "
|
475
|
-
kara = "
|
476
|
-
yuza = "
|
477
|
-
lieu = "
|
698
|
+
salut = "Ehiyo"
|
699
|
+
ejento = "#{agent_name}!"
|
700
|
+
rikusuto = "#{request_type}"
|
701
|
+
atemu = "#{item}"
|
702
|
+
nitote = "nitote"
|
703
|
+
kara = "kara"
|
704
|
+
yuza = "#{user_name}?"
|
705
|
+
lieu = "#{local_name}?"
|
478
706
|
|
479
707
|
conjucate = [nitote, kara]
|
480
708
|
consign = conjucate.sample
|
@@ -482,16 +710,40 @@ end"
|
|
482
710
|
user_location = [yuza, lieu]
|
483
711
|
usign = user_location[0]
|
484
712
|
|
485
|
-
|
713
|
+
# Generate description and XML timeline.
|
714
|
+
description = "#{salut} #{ejento} #{atemu} #{rikusuto} #{consign} #{usign}"
|
715
|
+
|
716
|
+
open("documents/#{date_title}.txt", "w") { |f|
|
717
|
+
f.puts description
|
718
|
+
}
|
719
|
+
|
720
|
+
new_output = "
|
721
|
+
<item>
|
722
|
+
<title>#{date}</title>
|
723
|
+
<link>http://localhost:8000/documents/#{date_title}.txt</link>
|
724
|
+
<description><![CDATA[<p>#{description}</p>]]></description>
|
725
|
+
</item>"
|
726
|
+
|
727
|
+
open("feed/old_feed.txt", "w") { |f|
|
728
|
+
f.puts new_output
|
729
|
+
}
|
730
|
+
|
731
|
+
generate_xml = "<?xml version='1.0' encoding='UTF-8' ?>
|
732
|
+
<rss version='2.0'>
|
733
|
+
|
734
|
+
<channel>
|
735
|
+
<title>Request Feed</title>
|
736
|
+
<link>http://localhost:8000/feed.xml</link>
|
737
|
+
<description>Local Feed for ImpUnit output.</description>
|
738
|
+
|
739
|
+
#{new_output}
|
740
|
+
#{old_output}
|
741
|
+
</channel>
|
486
742
|
|
487
|
-
|
743
|
+
</rss>"
|
488
744
|
|
489
|
-
open("
|
490
|
-
f.puts
|
491
|
-
f.puts "title: '#{date} Update'"
|
492
|
-
f.puts "layout: post"
|
493
|
-
f.puts "---"
|
494
|
-
f.puts "#{salut} #{ejento} #{rikusuto} #{atemu} #{consign} #{usign}"
|
745
|
+
open("feed/feed.xml", "w") { |f|
|
746
|
+
f.puts generate_xml
|
495
747
|
}
|
496
748
|
end
|
497
749
|
end
|
@@ -580,7 +832,7 @@ end"
|
|
580
832
|
|
581
833
|
def self.cumin
|
582
834
|
spoon_size = [ "1/8 ", "1/4 ", "1/2 ", "1 ",
|
583
|
-
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
835
|
+
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
584
836
|
"2 1/8 ", "2 1/4th ", "2 1/2 ", "3 "]
|
585
837
|
|
586
838
|
spoon_type = ["teaspoon ", "tablespoon ", "cup ", "shotglass "]
|
@@ -592,7 +844,7 @@ end"
|
|
592
844
|
|
593
845
|
def self.cayenne
|
594
846
|
spoon_size = [ "1/8 ", "1/4 ", "1/2 ", "1 ",
|
595
|
-
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
847
|
+
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
596
848
|
"2 1/8 ", "2 1/4th ", "2 1/2 ", "3 "]
|
597
849
|
|
598
850
|
spoon_type = ["teaspoon ", "tablespoon ", "cup ", "shotglass "]
|
@@ -604,7 +856,7 @@ end"
|
|
604
856
|
|
605
857
|
def self.chilly_powder
|
606
858
|
spoon_size = [ "1/8 ", "1/4 ", "1/2 ", "1 ",
|
607
|
-
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
859
|
+
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
608
860
|
"2 1/8 ", "2 1/4th ", "2 1/2 ", "3 "]
|
609
861
|
|
610
862
|
spoon_type = ["teaspoon ", "tablespoon ", "cup ", "shotglass "]
|
@@ -616,7 +868,7 @@ end"
|
|
616
868
|
|
617
869
|
def self.crushed_peppers
|
618
870
|
spoon_size = [ "1/8 ", "1/4 ", "1/2 ", "1 ",
|
619
|
-
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
871
|
+
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
620
872
|
"2 1/8 ", "2 1/4th ", "2 1/2 ", "3 "]
|
621
873
|
|
622
874
|
spoon_type = ["teaspoon ", "tablespoon ", "cup ", "shotglass "]
|
@@ -628,7 +880,7 @@ end"
|
|
628
880
|
|
629
881
|
def self.garlic_powder
|
630
882
|
spoon_size = [ "1/8 ", "1/4 ", "1/2 ", "1 ",
|
631
|
-
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
883
|
+
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
632
884
|
"2 1/8 ", "2 1/4th ", "2 1/2 ", "3 "]
|
633
885
|
|
634
886
|
spoon_type = ["teaspoon ", "tablespoon ", "cup ", "shotglass "]
|
@@ -640,7 +892,7 @@ end"
|
|
640
892
|
|
641
893
|
def self.onion_powder
|
642
894
|
spoon_size = [ "1/8 ", "1/4 ", "1/2 ", "1 ",
|
643
|
-
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
895
|
+
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
644
896
|
"2 1/8 ", "2 1/4th ", "2 1/2 ", "3 "]
|
645
897
|
|
646
898
|
spoon_type = ["teaspoon ", "tablespoon ", "cup ", "shotglass "]
|
@@ -652,7 +904,7 @@ end"
|
|
652
904
|
|
653
905
|
def self.cocao_powder
|
654
906
|
spoon_size = [ "1/8 ", "1/4 ", "1/2 ", "1 ",
|
655
|
-
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
907
|
+
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
656
908
|
"2 1/8 ", "2 1/4th ", "2 1/2 ", "3 "]
|
657
909
|
|
658
910
|
spoon_type = ["teaspoon ", "tablespoon ", "cup ", "shotglass "]
|
@@ -664,7 +916,7 @@ end"
|
|
664
916
|
|
665
917
|
def self.cinnamon
|
666
918
|
spoon_size = [ "1/8 ", "1/4 ", "1/2 ", "1 ",
|
667
|
-
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
919
|
+
"1 1/8 ", "1 1/4th ", "1 1/2 ", "2 ",
|
668
920
|
"2 1/8 ", "2 1/4th ", "2 1/2 ", "3 "]
|
669
921
|
|
670
922
|
spoon_type = ["teaspoon ", "tablespoon ", "cup ", "shotglass "]
|
@@ -676,30 +928,38 @@ end"
|
|
676
928
|
end
|
677
929
|
end
|
678
930
|
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
931
|
+
module Bianca
|
932
|
+
class SmallTalk
|
933
|
+
def self.discuss
|
934
|
+
require "programr"
|
683
935
|
|
684
|
-
|
685
|
-
|
936
|
+
bot_name = File.read("data/bot_identity/name.txt").strip
|
937
|
+
usr_name = File.read("data/usr_identity/name.txt").strip
|
686
938
|
|
687
|
-
|
688
|
-
#end
|
939
|
+
brains = Dir.glob("brain/*")
|
689
940
|
|
690
|
-
|
691
|
-
|
941
|
+
robot = ProgramR::Facade.new
|
942
|
+
robot.learn(brains)
|
692
943
|
|
693
|
-
|
694
|
-
#end
|
944
|
+
puts " Welcome to #{bot_name}. This is the terminal for Bianca."
|
695
945
|
|
696
|
-
|
697
|
-
|
946
|
+
while true
|
947
|
+
print "#{usr_name } >> "
|
948
|
+
s = STDIN.gets.chomp
|
698
949
|
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
#
|
950
|
+
reaction = robot.get_reaction(s)
|
951
|
+
|
952
|
+
if reaction == ""
|
953
|
+
STDOUT.puts "#{bot_name} << I have no idea."
|
954
|
+
elsif reaction == "Closing"
|
955
|
+
abort
|
956
|
+
else
|
957
|
+
STDOUT.puts "#{bot_name} << #{reaction}"
|
958
|
+
end
|
959
|
+
end
|
960
|
+
end
|
961
|
+
end
|
962
|
+
end
|
703
963
|
|
704
964
|
## Measuring the distance between objects and size of objects in space.
|
705
965
|
#module SpatialRelationships
|
@@ -711,56 +971,56 @@ end
|
|
711
971
|
#def positive_perimeters
|
712
972
|
# Base radius of static objects.
|
713
973
|
#base_radius = 2500
|
714
|
-
|
974
|
+
|
715
975
|
# Specfic multipliers for Earth index based objects.
|
716
|
-
#base_two = 2
|
976
|
+
#base_two = 2
|
717
977
|
#base_fro = 4
|
718
978
|
#base_six = 6
|
719
979
|
#base_eit = 8
|
720
|
-
|
980
|
+
|
721
981
|
# Size of specific objects.
|
722
982
|
#size_of_planets = base_radius ** base_fro
|
723
983
|
#size_of_moons = base_radius ** base_two
|
724
984
|
#size_of_stars = base_radius ** base_six
|
725
985
|
#size_of_blackholes = base_radius ** base_eit
|
726
|
-
|
986
|
+
|
727
987
|
# Total output sizes of specific objects.
|
728
988
|
#puts "The size of the planets is #{size_of_planets} radius."; sleep(3)
|
729
989
|
#puts "The size of the moons is #{size_of_moons} radius."; sleep(3)
|
730
990
|
#puts "The size of the stars is #{size_of_stars} radius."; sleep(3)
|
731
991
|
#puts "The size of a blackhole is #{size_of_blackholes} radius."; sleep(3)
|
732
992
|
#end
|
733
|
-
|
993
|
+
|
734
994
|
# Space between the objects.
|
735
995
|
#def negative_perimeters
|
736
996
|
# Base distance between objects.
|
737
997
|
#base_distance = 1_000_000_000
|
738
|
-
|
998
|
+
|
739
999
|
# Estimated divider between specific objects to base distance.
|
740
1000
|
#space_between_planets = 43.8
|
741
1001
|
#space_between_moons = 14.6
|
742
1002
|
#space_between_stars = 876
|
743
1003
|
#space_between_blackholes = 2628
|
744
|
-
|
1004
|
+
|
745
1005
|
# Minimum distance between objects.
|
746
1006
|
#planet_distance = base_distance / space_between_planets
|
747
1007
|
#moon_distance = base_distance / space_between_moons
|
748
1008
|
#star_distance = base_distance / space_between_stars
|
749
1009
|
#blackhole_distance = base_distance / space_between_blackholes
|
750
|
-
|
1010
|
+
|
751
1011
|
# Actual distance between objects
|
752
1012
|
#actual_planets = planet_distance * 10
|
753
1013
|
#actual_moons = moon_distance * 10
|
754
1014
|
#actual_stars = star_distance * 10
|
755
1015
|
#actual_blackholes = blackhole_distance * 10
|
756
|
-
|
1016
|
+
|
757
1017
|
# The output results of distance between objects.
|
758
1018
|
#puts "The distance between planets is #{actual_planets} miles."; sleep(3)
|
759
1019
|
#puts "The distance between moons is #{actual_moons} miles."; sleep(3)
|
760
1020
|
#puts "The distance between stars is #{actual_stars} miles."; sleep(3)
|
761
1021
|
#puts "The distance between blackholes is #{actual_blackholes} miles."; sleep(3)
|
762
1022
|
#end
|
763
|
-
|
1023
|
+
|
764
1024
|
#end
|
765
1025
|
|
766
1026
|
# Changing perimeters
|
@@ -771,26 +1031,26 @@ end
|
|
771
1031
|
#spaceship = File.read("data/dynamic/positive_perimenters/spaceship_size.txt").strip.to_i
|
772
1032
|
#space_station = spaceship * 200
|
773
1033
|
#satalite = space_station / 10
|
774
|
-
|
1034
|
+
|
775
1035
|
#puts "The total size of the space shuttle is #{spaceship} feet."; sleep(3)
|
776
1036
|
#puts "The total size of the space station is #{space_station} feet."; sleep(3)
|
777
1037
|
#puts "The total size of the satalite is #{satalite} feet."; sleep(3)
|
778
1038
|
#end
|
779
|
-
|
1039
|
+
|
780
1040
|
# Space between the objects.
|
781
1041
|
#def negative_perimeters
|
782
1042
|
#base_multiplier = 10
|
783
|
-
|
1043
|
+
|
784
1044
|
# Minimum space between objects.
|
785
1045
|
#space_between_spaceships = File.read("data/dynamic/negative_perimeters/space_between_spaceships.txt").strip.to_i
|
786
1046
|
#space_between_station = File.read("data/dynamic/negative_perimeters/space_between_station.txt").strip.to_i
|
787
1047
|
#space_between_satalite = File.read("data/dynamic/negative_perimeters/space_between_satalite.txt").strip.to_i
|
788
|
-
|
1048
|
+
|
789
1049
|
# Actual space between objects
|
790
1050
|
#actual_spaceship_distance = space_between_spaceships * base_multiplier
|
791
1051
|
#actual_station_distance = space_between_station * base_multiplier
|
792
1052
|
#actual_satalite_distance = space_between_satalite * base_multiplier
|
793
|
-
|
1053
|
+
|
794
1054
|
#puts "The minimum space between shuttles is #{actual_spaceship_distance} feet."; sleep(3)
|
795
1055
|
#puts "The minimum space between stations is #{actual_station_distance} feet."; sleep(3)
|
796
1056
|
#puts "The minimum space between satalites is #{actual_satalite_distance} feet."; sleep(3)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ImpUnit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- LWFlouisa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,7 +39,8 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
description: Implementing the main engine and subroutines into a gem so I don't have
|
42
|
-
to continuously recreate the wheel.
|
42
|
+
to continuously recreate the wheel. Finally got the local subscriptions feed for
|
43
|
+
rikusuto mode to work.
|
43
44
|
email:
|
44
45
|
- lwflouisa@gmail.com
|
45
46
|
executables: []
|
@@ -55,7 +56,7 @@ files:
|
|
55
56
|
- bin/setup
|
56
57
|
- lib/ImpUnit.rb
|
57
58
|
- lib/ImpUnit/version.rb
|
58
|
-
homepage: https://
|
59
|
+
homepage: https://github.com/LWFlouisa/ImpUnitApp
|
59
60
|
licenses: []
|
60
61
|
metadata: {}
|
61
62
|
post_install_message:
|