dictionaries 0.3.81

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.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +354 -0
  3. data/bin/dictionaries +7 -0
  4. data/bin/unique_words_in_this_file +7 -0
  5. data/dictionaries.gemspec +84 -0
  6. data/doc/README.gen +292 -0
  7. data/doc/todo/todo.md +8 -0
  8. data/lib/dictionaries/ask_english_word.rb +141 -0
  9. data/lib/dictionaries/ask_italian_word.rb +84 -0
  10. data/lib/dictionaries/base/base.rb +78 -0
  11. data/lib/dictionaries/class/class.rb +903 -0
  12. data/lib/dictionaries/commandline/parse_commandline.rb +85 -0
  13. data/lib/dictionaries/constants/constants.rb +134 -0
  14. data/lib/dictionaries/gui/tk/README.md +2 -0
  15. data/lib/dictionaries/gui/tk/dictionary.rb +85 -0
  16. data/lib/dictionaries/gui/universal_widgets/dictionary/dictionary.rb +516 -0
  17. data/lib/dictionaries/helper_module/helper_module.rb +60 -0
  18. data/lib/dictionaries/project/project.rb +36 -0
  19. data/lib/dictionaries/require_project/require_project.rb +14 -0
  20. data/lib/dictionaries/sinatra/app.rb +123 -0
  21. data/lib/dictionaries/sinatra/english_to_german.rb +84 -0
  22. data/lib/dictionaries/spell_checker/README.md +5 -0
  23. data/lib/dictionaries/spell_checker/spell_checker.rb +133 -0
  24. data/lib/dictionaries/statistics/statistics.rb +59 -0
  25. data/lib/dictionaries/toplevel_methods/e.rb +16 -0
  26. data/lib/dictionaries/toplevel_methods/english_to_german.rb +31 -0
  27. data/lib/dictionaries/toplevel_methods/has_key.rb +32 -0
  28. data/lib/dictionaries/toplevel_methods/is_on_roebe.rb +16 -0
  29. data/lib/dictionaries/toplevel_methods/main_file.rb +88 -0
  30. data/lib/dictionaries/toplevel_methods/misc.rb +231 -0
  31. data/lib/dictionaries/toplevel_methods/module_methods.rb +9 -0
  32. data/lib/dictionaries/toplevel_methods/show_help.rb +31 -0
  33. data/lib/dictionaries/version/version.rb +19 -0
  34. data/lib/dictionaries/yaml/chinese.yml +25 -0
  35. data/lib/dictionaries/yaml/danish.yml +4 -0
  36. data/lib/dictionaries/yaml/deutsche_fremdw/303/266rter.yml +1 -0
  37. data/lib/dictionaries/yaml/dutch.yml +3 -0
  38. data/lib/dictionaries/yaml/english.yml +3263 -0
  39. data/lib/dictionaries/yaml/farsi.yml +8 -0
  40. data/lib/dictionaries/yaml/finnish.yml +2 -0
  41. data/lib/dictionaries/yaml/italian.yml +532 -0
  42. data/lib/dictionaries/yaml/japanese.yml +15 -0
  43. data/lib/dictionaries/yaml/norwegian.yml +26 -0
  44. data/lib/dictionaries/yaml/polish.yml +2 -0
  45. data/lib/dictionaries/yaml/portugese.yml +41 -0
  46. data/lib/dictionaries/yaml/russian.yml +10 -0
  47. data/lib/dictionaries/yaml/spanish.yml +147 -0
  48. data/lib/dictionaries/yaml/swedish.yml +104 -0
  49. data/lib/dictionaries.rb +1 -0
  50. data/test/translation_example.html +2758 -0
  51. metadata +211 -0
@@ -0,0 +1,516 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Dictionaries::GUI::UniversalWidgets::Dictionary
6
+ #
7
+ # Usage example:
8
+ #
9
+ # Dictionaries::GUI::UniversalWidgets::Dictionary.new(ARGV)
10
+ #
11
+ # =========================================================================== #
12
+ # require 'dictionaries/gui/universal_widgets/dictionary/dictionary.rb'
13
+ # Dictionaries::GUI::UniversalWidgets::Dictionary.run
14
+ # =========================================================================== #
15
+ require 'dictionaries/base/base.rb'
16
+
17
+ module Dictionaries
18
+
19
+ module GUI
20
+
21
+ module UniversalWidgets
22
+
23
+ class Dictionary < ::Dictionaries::Base # === Dictionaries::GUI::UniversalWidgets::Dictionary
24
+
25
+ require 'universal_widgets/base_module/base_module.rb'
26
+ include ::UniversalWidgets::BaseModule
27
+
28
+ require 'dictionaries/toplevel_methods/e.rb'
29
+ require 'dictionaries/toplevel_methods/misc.rb'
30
+ require 'dictionaries/class/class.rb'
31
+
32
+ # ========================================================================= #
33
+ # === TITLE
34
+ # ========================================================================= #
35
+ TITLE = 'Dictionary'
36
+
37
+ # ========================================================================= #
38
+ # === WIDTH
39
+ # ========================================================================= #
40
+ WIDTH = '28% or minimum 280px'
41
+
42
+ # ========================================================================= #
43
+ # === HEIGHT
44
+ # ========================================================================= #
45
+ HEIGHT = '26% or minimum 240px'
46
+
47
+ # ========================================================================= #
48
+ # === USE_THIS_FONT
49
+ # ========================================================================= #
50
+ USE_THIS_FONT = :dejavu_condensed_22
51
+
52
+ # ========================================================================= #
53
+ # === LARGER_FONT
54
+ # ========================================================================= #
55
+ LARGER_FONT = :hack_25
56
+
57
+ # ========================================================================= #
58
+ # === SMALLER_FONT
59
+ #
60
+ # This one should be relative to the font used above.
61
+ # ========================================================================= #
62
+ SMALLER_FONT = :dejavu_condensed_18
63
+
64
+ # ========================================================================= #
65
+ # === initialize
66
+ # ========================================================================= #
67
+ def initialize(
68
+ commandline_arguments = nil,
69
+ run_already = true
70
+ )
71
+ super(:vertical) if use_gtk3?
72
+ determine_the_GUI_to_be_used(commandline_arguments) # This must come first, even before reset().
73
+ reset
74
+ set_commandline_arguments(
75
+ commandline_arguments
76
+ )
77
+ on_delete_event_quit_the_application
78
+ run if run_already
79
+ end
80
+
81
+ # ========================================================================= #
82
+ # === reset (reset tag)
83
+ # ========================================================================= #
84
+ def reset
85
+ super() if respond_to?(:super)
86
+ reset_the_shared_module # This can come early.
87
+ reset_the_base_module
88
+ reset_the_internal_variables
89
+ infer_the_namespace
90
+ # ======================================================================= #
91
+ # === @configuration
92
+ # ======================================================================= #
93
+ @configuration = [true, __dir__, namespace?]
94
+ # ======================================================================= #
95
+ # === Set the title, width, height and the font in use.
96
+ # ======================================================================= #
97
+ title_width_height_font(TITLE, WIDTH, HEIGHT, USE_THIS_FONT)
98
+ if use_gtk3?
99
+ handle_CSS_rules
100
+ end
101
+ infer_the_size_automatically
102
+ # ======================================================================= #
103
+ # === @dictionaries
104
+ # ======================================================================= #
105
+ @dictionaries = Dictionaries.new(:do_not_run_yet)
106
+ Dictionaries.set_main_file(:default)
107
+ @dictionaries.load_the_english_file
108
+ # ======================================================================= #
109
+ # === @array_style_these_buttons
110
+ # ======================================================================= #
111
+ @array_style_these_buttons = []
112
+ end
113
+
114
+ # ========================================================================= #
115
+ # === smaller_font?
116
+ # ========================================================================= #
117
+ def smaller_font?
118
+ SMALLER_FONT
119
+ end
120
+
121
+ # ========================================================================= #
122
+ # === handle_CSS_rules (CSS tag)
123
+ # ========================================================================= #
124
+ def handle_CSS_rules
125
+ use_gtk_paradise_project_css_file
126
+ append_project_css_file
127
+ more_CSS_then_apply_it '
128
+
129
+ '
130
+ end
131
+
132
+ # ========================================================================= #
133
+ # === reset_the_shared_module
134
+ # ========================================================================= #
135
+ def reset_the_shared_module
136
+ end
137
+
138
+ # ========================================================================= #
139
+ # === e
140
+ # ========================================================================= #
141
+ def e(i = '')
142
+ ::Dictionaries.e(i)
143
+ end
144
+
145
+ # ========================================================================= #
146
+ # === update_the_statistics_frame (update tag)
147
+ # ========================================================================= #
148
+ def update_the_statistics_frame(
149
+ i = return_currently_selected_file
150
+ )
151
+ @label_currently_selected_file.set_text(i)
152
+ @label_currently_selected_file.do_markify
153
+ end
154
+
155
+ # ========================================================================= #
156
+ # === add_ask_the_question_button
157
+ # ========================================================================= #
158
+ def add_ask_the_question_button
159
+ button = bold_button('_Translate into german')
160
+ button.clear_background
161
+ button.bblack2
162
+ button.hint =
163
+ 'Click this button in order to <b>translate the english '\
164
+ 'word into the german equivalent word</b>.'
165
+ button.on_clicked {
166
+ button_pressed_so_try_to_convert_the_input
167
+ }
168
+ @array_style_these_buttons << button
169
+ hbox1 = create_hbox
170
+ hbox1.minimal(button, 1)
171
+ hbox1.halign_center
172
+ return hbox1
173
+ end
174
+
175
+ # ========================================================================= #
176
+ # === padding?
177
+ # ========================================================================= #
178
+ def padding?
179
+ 2
180
+ end
181
+
182
+ # ========================================================================= #
183
+ # === border_size?
184
+ # ========================================================================= #
185
+ def border_size?
186
+ 2
187
+ end
188
+
189
+ # ========================================================================= #
190
+ # === create_the_header_bar
191
+ # ========================================================================= #
192
+ def create_the_header_bar
193
+ # ======================================================================= #
194
+ # === @header_bar
195
+ # ======================================================================= #
196
+ @header_bar = default_header_bar
197
+ @header_bar.title = 'Dictionary'
198
+ end
199
+
200
+ # ========================================================================= #
201
+ # === create_answer_field
202
+ #
203
+ # This method builds up the "answer-widget".
204
+ # ========================================================================= #
205
+ def create_answer_field
206
+ # ======================================================================= #
207
+ # === @answer_field
208
+ # ======================================================================= #
209
+ @answer_field = create_input_field
210
+ @answer_field.center
211
+ @answer_field.hint = 'The translated string may appear here.'
212
+ @answer_field.very_light_yellow_background
213
+ end
214
+
215
+ # ========================================================================= #
216
+ # === button_pressed_so_try_to_convert_the_input (click tag)
217
+ #
218
+ # This action is called when the user clicks on the button.
219
+ # ========================================================================= #
220
+ def button_pressed_so_try_to_convert_the_input
221
+ user_input = @input_field.return_input
222
+ unless user_input.empty? # We check whether the user did input something.
223
+ translated_word = @dictionaries.translate(user_input)
224
+ e "#{::Colours.sfancy(user_input)} → "\
225
+ "#{::Colours.simp(translated_word)}"
226
+ @answer_field.set_text(translated_word)
227
+ end
228
+ end
229
+
230
+ # ========================================================================= #
231
+ # === add_the_widget_for_remote_query_of_the_dictionary_at_leo (bottom tag)
232
+ #
233
+ # This is the bottom widget.
234
+ # ========================================================================= #
235
+ def add_the_widget_for_remote_query_of_the_dictionary_at_leo
236
+ bottom_vbox = create_vbox
237
+ bold_label = bold_label(
238
+ 'Query from a remote website instead (more entries available)'
239
+ )
240
+ bottom_vbox.minimal(bold_label, 15)
241
+ # This is the user-input entry at the bottom.
242
+ @entry_for_the_remote_query = create_entry
243
+ @entry_for_the_remote_query.center
244
+ @entry_for_the_remote_query.on_key_press_event { |widget, event|
245
+ case Gdk::Keyval.to_name(event.keyval)
246
+ when 'Return', 'KP_Enter'
247
+ do_perform_a_remote_query_to_the_leo_dictionary
248
+ end
249
+ }
250
+ bottom_vbox.minimal(@entry_for_the_remote_query)
251
+ # ======================================================================= #
252
+ # === button_for_the_remote_query
253
+ # ======================================================================= #
254
+ button_for_the_remote_query = button(
255
+ '_Query from a remote dictionary'
256
+ )
257
+ button_for_the_remote_query.clear_background
258
+ button_for_the_remote_query.bblack2
259
+ button_for_the_remote_query.make_bold
260
+ button_for_the_remote_query.hint =
261
+ 'This will <b>query the remote dictionary</b> at leo instead. '\
262
+ 'The <b>advantage</b> here is that the dataset at leo will '\
263
+ 'contain many more entries than does the knowledgebase '\
264
+ 'distributed with the <b>dictionaries gem</b>.'
265
+ button_for_the_remote_query.on_clicked {
266
+ do_perform_a_remote_query_to_the_leo_dictionary
267
+ }
268
+ bottom_vbox.minimal(
269
+ @entry_at_the_bottom_showing_the_result_from_online_leo, 2
270
+ )
271
+ @array_style_these_buttons << button_for_the_remote_query
272
+ small_hbox = create_hbox
273
+ small_hbox.minimal(button_for_the_remote_query, 1)
274
+ small_hbox.halign_center
275
+ bottom_vbox.minimal(
276
+ small_hbox, 2
277
+ )
278
+ return bottom_vbox
279
+ end
280
+
281
+ # ========================================================================= #
282
+ # === return_input_field_on_top
283
+ #
284
+ # This is the main widget for user input. The user types in some
285
+ # words, and then hits the main button on the bottom, in order
286
+ # to translate the (english) word to german.
287
+ # ========================================================================= #
288
+ def return_input_field_on_top
289
+ text_for_the_label = 'Input an english word in the field below'
290
+ text = label(text_for_the_label)
291
+ text.slateblue
292
+ text.set_markup(
293
+ '<span size="x-large" weight="bold">'+text_for_the_label+'</span>',
294
+ use_underline: true
295
+ )
296
+ # ======================================================================= #
297
+ # Add the "input field" next for the english word that is to
298
+ # be translated.
299
+ # ======================================================================= #
300
+ @input_field = create_input_field
301
+ @input_field.hint = 'Input the word that should be translated '\
302
+ 'here. Then, press the "enter" key or the button '\
303
+ '"Translate into german" below.'
304
+ @input_field.very_light_yellow_background
305
+ completion = create_entry_completion
306
+ @input_field.completion = completion # Assign the completion.
307
+ completion_model = ::Gtk::ListStore.new(String)
308
+ @dictionaries.array.each { |word|
309
+ iter = completion_model.append
310
+ iter[0] = word
311
+ }
312
+ completion.model = completion_model
313
+ # ======================================================================= #
314
+ # Use model column 0 as the text column
315
+ # ======================================================================= #
316
+ completion.text_column = 0
317
+ @input_field.center
318
+ @input_field.on_key_press_event { |widget, event|
319
+ case Gdk::Keyval.to_name(event.keyval)
320
+ when 'Return', 'KP_Enter'
321
+ button_pressed_so_try_to_convert_the_input
322
+ end
323
+ }
324
+ hbox_holding_label_and_input_field = create_vbox(
325
+ text, @input_field
326
+ )
327
+ return hbox_holding_label_and_input_field
328
+ end
329
+
330
+ # ========================================================================= #
331
+ # === connect_the_skeleton (connect tag)
332
+ # ========================================================================= #
333
+ def connect_the_skeleton
334
+ abort_on_exception
335
+
336
+ outer_box = create_vbox
337
+
338
+ outer_box.add(add_the_header_bar)
339
+ outer_box.add(return_input_field_on_top)
340
+ outer_box.add(add_the_answer_field)
341
+ outer_box.add(add_ask_the_question_button)
342
+ outer_box.add(add_the_widget_for_remote_query_of_the_dictionary_at_leo)
343
+ outer_box.add(add_the_statistics_frame)
344
+
345
+ window = create_window_or_runner(nil, width?, height?, title?)
346
+ window << outer_box
347
+
348
+ properly_prepare_this_window(window,
349
+ {
350
+ title: title?,
351
+ font: font?,
352
+ width: width?,
353
+ height: height?,
354
+ padding: padding?,
355
+ border_size: border_size?
356
+ }
357
+ )
358
+ window.show_all
359
+ window.top_left
360
+ do_all_startup_related_actions
361
+ run_main
362
+ end
363
+
364
+ # ========================================================================= #
365
+ # === do_all_startup_related_actions
366
+ # ========================================================================= #
367
+ def do_all_startup_related_actions
368
+ update_the_statistics_frame
369
+ do_style_the_important_buttons
370
+ end
371
+
372
+ # ========================================================================= #
373
+ # === do_style_the_important_buttons
374
+ # ========================================================================= #
375
+ def do_style_the_important_buttons
376
+ @array_style_these_buttons.each {|this_button|
377
+ this_button.modify_background(:normal, :khaki) # ← default colour
378
+ this_button.modify_background(:prelight, :paleturquoise) # ← mouse-on-over events
379
+ this_button.modify_background(:active, :slategray) # ← colour on mouse-press-event
380
+ }
381
+ end
382
+
383
+ # ========================================================================= #
384
+ # === do_perform_a_remote_query_to_the_leo_dictionary
385
+ # ========================================================================= #
386
+ def do_perform_a_remote_query_to_the_leo_dictionary(
387
+ i = @entry_for_the_remote_query.text.to_s
388
+ )
389
+ if i and !i.empty?
390
+ array = ::Dictionaries.return_array_of_translated_words_from_online_leo(i)
391
+ result = array.first
392
+ @entry_at_the_bottom_showing_the_result_from_online_leo.set_text(result)
393
+ end
394
+ end
395
+
396
+ # ========================================================================= #
397
+ # === return_currently_selected_file
398
+ # ========================================================================= #
399
+ def return_currently_selected_file
400
+ 'Currently selected file: <b>'+
401
+ File.basename(
402
+ @dictionaries.currently_selected_file?.to_s
403
+ )+'</b>'
404
+ end
405
+
406
+ # ========================================================================= #
407
+ # === create_the_entries (entries tag, entry tag)
408
+ # ========================================================================= #
409
+ def create_the_entries
410
+ # ======================================================================= #
411
+ # === @entry_at_the_bottom_showing_the_result_from_online_leo
412
+ # ======================================================================= #
413
+ @entry_at_the_bottom_showing_the_result_from_online_leo = create_entry
414
+ @entry_at_the_bottom_showing_the_result_from_online_leo.center
415
+ end
416
+
417
+ # ========================================================================= #
418
+ # === add_the_header_bar
419
+ # ========================================================================= #
420
+ def add_the_header_bar
421
+ return @header_bar
422
+ end
423
+
424
+ # ========================================================================= #
425
+ # === add_the_statistics_frame
426
+ # ========================================================================= #
427
+ def add_the_statistics_frame
428
+ return @frame_statistics
429
+ end
430
+
431
+ # ========================================================================= #
432
+ # === add_the_answer_field
433
+ # ========================================================================= #
434
+ def add_the_answer_field
435
+ return @answer_field # ← Translation appears here.
436
+ end
437
+
438
+ # ========================================================================= #
439
+ # === create_the_skeleton (create tag, skeleton tag)
440
+ # ========================================================================= #
441
+ def create_the_skeleton
442
+ create_the_entries
443
+ create_the_header_bar
444
+ create_answer_field
445
+ create_the_statistics_frame
446
+ end
447
+
448
+ # ========================================================================= #
449
+ # === create_the_statistics_frame
450
+ # ========================================================================= #
451
+ def create_the_statistics_frame
452
+ # ======================================================================= #
453
+ # === @frame_statistics
454
+ # ======================================================================= #
455
+ @frame_statistics = create_frame
456
+ @frame_statistics.set_label((' Statistics '))
457
+ @frame_statistics.make_bold
458
+ @frame_statistics.use_this_font = smaller_font?
459
+ vbox = create_vbox
460
+ @label_currently_selected_file = label(return_currently_selected_file)
461
+ vbox.minimal(
462
+ @label_currently_selected_file, 0
463
+ )
464
+ @frame_statistics.add(vbox)
465
+ end
466
+
467
+ # ========================================================================= #
468
+ # === run (run tag)
469
+ # ========================================================================= #
470
+ def run
471
+ run_super
472
+ end
473
+
474
+ # ========================================================================= #
475
+ # === Dictionaries::GUI::Gtk::Dictionary.run
476
+ # ========================================================================= #
477
+ def self.run(
478
+ i = ARGV
479
+ )
480
+ require 'gtk_paradise/run'
481
+ _ = ::Dictionaries::GUI::Gtk::Dictionary.new(i)
482
+ r = ::Gtk.run
483
+ _.set_parent_widget(r) # Must come before we enable the key-combinations.
484
+ r << _
485
+ r.automatic_size_then_automatic_title
486
+ r.enable_quick_exit
487
+ r.set_background :white
488
+ r.border_width = 12
489
+ r.top_left_then_run
490
+ end; self.instance_eval { alias start_gui_application run } # === Dictionaries::GUI::Gtk::Dictionary.start_gui_application
491
+
492
+ # ========================================================================= #
493
+ # === Dictionaries::GUI::UniversalWidgets::Dictionary[]
494
+ # ========================================================================= #
495
+ def self.[](i = ARGV)
496
+ new(i)
497
+ end
498
+
499
+ end; end; end
500
+
501
+ # =========================================================================== #
502
+ # === Dictionaries.gtk_widget
503
+ #
504
+ # This toplevel-method can be used to return the gtk-widget, which
505
+ # can then be embedded by other ruby-gtk applications, in particular
506
+ # admin_panel.rb of the gtk_paradise project.
507
+ # =========================================================================== #
508
+ def self.gtk_widget
509
+ Dictionaries::GUI::Gtk::Dictionary.new
510
+ end
511
+
512
+ end
513
+
514
+ if __FILE__ == $PROGRAM_NAME
515
+ Dictionaries::GUI::UniversalWidgets::Dictionary.new(ARGV)
516
+ end # guishell
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'dictionaries/helper_module/helper_module.rb'
6
+ # include Dictionaries::HelperModule
7
+ # =========================================================================== #
8
+ module Dictionaries
9
+
10
+ module HelperModule
11
+
12
+ require 'html_tags'
13
+ include HtmlTags
14
+
15
+ # ========================================================================= #
16
+ # === Dictionaries::HelperModule.return_search_button
17
+ # ========================================================================= #
18
+ def self.return_search_button
19
+ '<input type="submit" name="user_input_submit" value="Search" '\
20
+ 'style="font-weight: bold; font-size: larger; '\
21
+ 'border: 2px dotted slateblue; margin: 4px; margin-left: 2em">'
22
+ end
23
+
24
+ # ========================================================================= #
25
+ # === Dictionaries::HelperModule.html_header_default_title_and_start_of_the_body_tag
26
+ # ========================================================================= #
27
+ def self.html_header_default_title_and_start_of_the_body_tag
28
+ "<html>\n"\
29
+ "<title>Dictionaries</title>\n"\
30
+ "<body>\n"
31
+ end
32
+
33
+ # ========================================================================= #
34
+ # === Dictionaries::HelperModule.return_english_to_german_form
35
+ # ========================================================================= #
36
+ def self.return_english_to_german_form
37
+ route_to_this_action = '/english_to_german/'
38
+ html_header_default_title_and_start_of_the_body_tag+
39
+ HtmlTags.h5('Input an english word to see the translation.')+
40
+ HtmlTags.div(css_style: 'padding: 0.1em') {
41
+ HtmlTags.p(
42
+ '<b>Enter the word here:</b>',
43
+ css_style: 'padding: 0.15em'
44
+ )+
45
+ HtmlTags.form(action: route_to_this_action,
46
+ id: 'english_to_german',
47
+ css_style: 'margin-left:1em; margin-top:2px') {
48
+ '<input type="text" name="user_input" style="border:3px solid slateblue; padding: 4px"><br>'+
49
+ return_search_button
50
+ }
51
+ }
52
+ end
53
+
54
+ end; end
55
+
56
+ if __FILE__ == $PROGRAM_NAME
57
+ alias e puts
58
+ include Dictionaries::HelperModule
59
+ e Dictionaries::HelperModule.return_english_to_german_form
60
+ end
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # This file will point to the yaml directory of the Dictionaries project.
6
+ # =========================================================================== #
7
+ # require 'dictionaries/project/project.rb'
8
+ # =========================================================================== #
9
+ module Dictionaries
10
+
11
+ # ========================================================================= #
12
+ # === Dictionaries::PROJECT_BASE_DIRECTORY
13
+ # ========================================================================= #
14
+ PROJECT_BASE_DIRECTORY =
15
+ File.absolute_path("#{__dir__}/..")+'/'
16
+
17
+ # ========================================================================= #
18
+ # === Dictionaries.project_base_dir?
19
+ # ========================================================================= #
20
+ def self.project_base_dir?
21
+ PROJECT_BASE_DIRECTORY
22
+ end
23
+
24
+ # ========================================================================= #
25
+ # === PROJECT_YAML_DIRECTORY
26
+ # ========================================================================= #
27
+ PROJECT_YAML_DIRECTORY = "#{PROJECT_BASE_DIRECTORY}yaml/"
28
+
29
+ # ========================================================================= #
30
+ # === Dictionaries.project_yaml_dir?
31
+ # ========================================================================= #
32
+ def self.project_yaml_dir?
33
+ PROJECT_YAML_DIRECTORY
34
+ end; self.instance_eval { alias dictionary_directory? project_yaml_dir? } # === Dictionaries.dictionary_directory?
35
+
36
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'dictionaries/require_project/require_project.rb'
6
+ # =========================================================================== #
7
+ require 'dictionaries/project/project.rb'
8
+ require 'dictionaries/ask_italian_word.rb'
9
+ require 'dictionaries/toplevel_methods/has_key.rb' # This file requires the files above.
10
+ require 'dictionaries/toplevel_methods/module_methods.rb'
11
+ require 'dictionaries/toplevel_methods/english_to_german.rb'
12
+ require 'dictionaries/toplevel_methods/is_on_roebe.rb'
13
+ require 'dictionaries/sinatra/app.rb'
14
+ require 'dictionaries/statistics/statistics.rb'