translit_kit 0.9

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 (64) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +86 -0
  4. data/Rakefile +29 -0
  5. data/lib/hebrewword.rb +60 -0
  6. data/lib/permuter.rb +97 -0
  7. data/lib/phoneme_maps.rb +80 -0
  8. data/lib/phoneme_maps/long.json +41 -0
  9. data/lib/phoneme_maps/short.json +39 -0
  10. data/lib/phoneme_maps/single.json +40 -0
  11. data/lib/phonemizer.rb +170 -0
  12. data/lib/readme.md +120 -0
  13. data/lib/translit_kit.rb +2 -0
  14. data/lib/translit_kit/version.rb +3 -0
  15. data/lib/transliterator.rb +115 -0
  16. data/test/dummy/README.rdoc +28 -0
  17. data/test/dummy/Rakefile +6 -0
  18. data/test/dummy/app/assets/javascripts/application.js +13 -0
  19. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  20. data/test/dummy/app/controllers/application_controller.rb +5 -0
  21. data/test/dummy/app/helpers/application_helper.rb +2 -0
  22. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  23. data/test/dummy/bin/bundle +3 -0
  24. data/test/dummy/bin/rails +4 -0
  25. data/test/dummy/bin/rake +4 -0
  26. data/test/dummy/bin/setup +34 -0
  27. data/test/dummy/bin/update +29 -0
  28. data/test/dummy/config.ru +4 -0
  29. data/test/dummy/config/application.rb +15 -0
  30. data/test/dummy/config/boot.rb +3 -0
  31. data/test/dummy/config/cable.yml +9 -0
  32. data/test/dummy/config/database.yml +25 -0
  33. data/test/dummy/config/environment.rb +5 -0
  34. data/test/dummy/config/environments/development.rb +54 -0
  35. data/test/dummy/config/environments/production.rb +86 -0
  36. data/test/dummy/config/environments/test.rb +42 -0
  37. data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  38. data/test/dummy/config/initializers/assets.rb +11 -0
  39. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  40. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  41. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  42. data/test/dummy/config/initializers/inflections.rb +16 -0
  43. data/test/dummy/config/initializers/mime_types.rb +4 -0
  44. data/test/dummy/config/initializers/new_framework_defaults.rb +23 -0
  45. data/test/dummy/config/initializers/session_store.rb +3 -0
  46. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  47. data/test/dummy/config/locales/en.yml +23 -0
  48. data/test/dummy/config/puma.rb +47 -0
  49. data/test/dummy/config/routes.rb +3 -0
  50. data/test/dummy/config/secrets.yml +22 -0
  51. data/test/dummy/config/spring.rb +6 -0
  52. data/test/dummy/db/test.sqlite3 +0 -0
  53. data/test/dummy/log/test.log +85939 -0
  54. data/test/dummy/public/404.html +67 -0
  55. data/test/dummy/public/422.html +67 -0
  56. data/test/dummy/public/500.html +66 -0
  57. data/test/dummy/public/favicon.ico +0 -0
  58. data/test/hebrewword_test.rb +45 -0
  59. data/test/permuter_test.rb +53 -0
  60. data/test/phoneme_maps_test.rb +29 -0
  61. data/test/phonemizer_test.rb +209 -0
  62. data/test/test_helper.rb +29 -0
  63. data/test/transliterator_test.rb +75 -0
  64. metadata +155 -0
@@ -0,0 +1,29 @@
1
+ # Coverage Analysis
2
+ require 'simplecov'
3
+ SimpleCov.start
4
+
5
+ # Configure Rails Environment
6
+ ENV["RAILS_ENV"] = "test"
7
+
8
+ require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
9
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
10
+
11
+ require "rails/test_help"
12
+
13
+ # Enable Coveralls test coverage tester
14
+ require 'coveralls'
15
+ Coveralls.wear!
16
+
17
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
18
+ # to be shown.
19
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
20
+
21
+ # Load support files
22
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
23
+
24
+ # Load fixtures from the engine
25
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
26
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
27
+ ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
28
+ ActiveSupport::TestCase.fixtures :all
29
+ end
@@ -0,0 +1,75 @@
1
+ require 'test_helper'
2
+ require 'transliterator'
3
+
4
+ class TransliteratorTest < ActiveSupport::TestCase
5
+
6
+ test "should require a string on init" do
7
+ assert_raise (ArgumentError) { Transliterator.new }
8
+ end
9
+
10
+ test "should init without blowing up" do
11
+ assert_nothing_raised { Transliterator.new "תְּשׁוּבָה"}
12
+ end
13
+
14
+ test "should not change supplied test" do
15
+ assert_equal "תְּשׁוּבָה", Transliterator.new("תְּשׁוּבָה").raw
16
+ assert_equal "תְּשׁוּבָה", Transliterator.new("תְּשׁוּבָה").to_s
17
+ end
18
+
19
+ test "should correctly find phonemes" do
20
+ assert_equal ["תּ", "ְ", "שׁ", "וּ", "ב", "ָ", "ה"], Transliterator.new("תְּשׁוּבָה").phonemes
21
+ end
22
+
23
+ test "should select 'short' list by default" do
24
+ assert_equal :short, Transliterator.new("תְּשׁוּבָה").phoneme_map
25
+ end
26
+
27
+ test "should remember the list named during init" do
28
+ t = Transliterator.new("תְּשׁוּבָה", :single)
29
+ assert_equal :single, t.phoneme_map
30
+ end
31
+
32
+ test "should remember the list selected during init even after transliteration" do
33
+ t = Transliterator.new("תְּשׁוּבָה", :single)
34
+ t.transliterate
35
+ assert_equal :single, t.phoneme_map
36
+ end
37
+
38
+ test "should transliterate with stored list by default" do
39
+ t = Transliterator.new("תְּשׁוּבָה")
40
+ assert_equal :short, t.phoneme_map
41
+ assert_equal t.transliterate, ["tashuvo", "tashuvoh", "tashuva", "tashuvah", "tashuve", "tashuveh", "tashoovo", "tashoovoh", "tashoova", "tashoovah", "tashoove", "tashooveh", "tasheuvo", "tasheuvoh", "tasheuva", "tasheuvah", "tasheuve", "tasheuveh", "teshuvo", "teshuvoh", "teshuva", "teshuvah", "teshuve", "teshuveh", "teshoovo", "teshoovoh", "teshoova", "teshoovah", "teshoove", "teshooveh", "tesheuvo", "tesheuvoh", "tesheuva", "tesheuvah", "tesheuve", "tesheuveh", "tishuvo", "tishuvoh", "tishuva", "tishuvah", "tishuve", "tishuveh", "tishoovo", "tishoovoh", "tishoova", "tishoovah", "tishoove", "tishooveh", "tisheuvo", "tisheuvoh", "tisheuva", "tisheuvah", "tisheuve", "tisheuveh", "t'shuvo", "t'shuvoh", "t'shuva", "t'shuvah", "t'shuve", "t'shuveh", "t'shoovo", "t'shoovoh", "t'shoova", "t'shoovah", "t'shoove", "t'shooveh", "t'sheuvo", "t'sheuvoh", "t'sheuva", "t'sheuvah", "t'sheuve", "t'sheuveh"]
42
+
43
+ t = Transliterator.new("תְּשׁוּבָה", :single)
44
+ assert_equal :single, t.phoneme_map
45
+ assert_equal t.transliterate, ["teshuvoh"]
46
+ end
47
+
48
+ test "should fail if bad list name given" do
49
+ assert_raise (RuntimeError) { Transliterator.new("תְּשׁוּבָה", :blah) }
50
+ assert_raise (RuntimeError) { Transliterator.new("תְּשׁוּבָה").phoneme_map = :blah }
51
+ assert_raise (RuntimeError) { Transliterator.new("תְּשׁוּבָה").transliterate(:blah) }
52
+ end
53
+
54
+ test "should change list when told to" do
55
+ t = Transliterator.new("תְּשׁוּבָה")
56
+ assert_equal :short, t.phoneme_map
57
+
58
+
59
+ t.phoneme_map = :single
60
+ assert_equal :single, t.phoneme_map
61
+ assert_equal t.transliterate, ["teshuvoh"]
62
+ end
63
+
64
+ test "should use supplied list when list supplied in #transliterate" do
65
+ t = Transliterator.new("תְּשׁוּבָה")
66
+ assert_equal :short, t.phoneme_map
67
+
68
+ assert_equal t.transliterate(:single), ["teshuvoh"]
69
+ end
70
+
71
+ test "`inspect` function outputs correct translit counts" do
72
+ t = Transliterator.new "אַברָהָם"
73
+ assert_equal t.inspect, "אַברָהָם: Permutations: #{t.transliterate(:single).length} single | #{t.transliterate(:short).length} short | #{t.transliterate(:long).length} long"
74
+ end
75
+ end
metadata ADDED
@@ -0,0 +1,155 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: translit_kit
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.9'
5
+ platform: ruby
6
+ authors:
7
+ - Michoel Samuels
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-06-15 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A Ruby gem for transliterating Hebrew text (with Niqqud) into English
14
+ characters
15
+ email:
16
+ - k2co3@icloud.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - MIT-LICENSE
22
+ - README.md
23
+ - Rakefile
24
+ - lib/hebrewword.rb
25
+ - lib/permuter.rb
26
+ - lib/phoneme_maps.rb
27
+ - lib/phoneme_maps/long.json
28
+ - lib/phoneme_maps/short.json
29
+ - lib/phoneme_maps/single.json
30
+ - lib/phonemizer.rb
31
+ - lib/readme.md
32
+ - lib/translit_kit.rb
33
+ - lib/translit_kit/version.rb
34
+ - lib/transliterator.rb
35
+ - test/dummy/README.rdoc
36
+ - test/dummy/Rakefile
37
+ - test/dummy/app/assets/javascripts/application.js
38
+ - test/dummy/app/assets/stylesheets/application.css
39
+ - test/dummy/app/controllers/application_controller.rb
40
+ - test/dummy/app/helpers/application_helper.rb
41
+ - test/dummy/app/views/layouts/application.html.erb
42
+ - test/dummy/bin/bundle
43
+ - test/dummy/bin/rails
44
+ - test/dummy/bin/rake
45
+ - test/dummy/bin/setup
46
+ - test/dummy/bin/update
47
+ - test/dummy/config.ru
48
+ - test/dummy/config/application.rb
49
+ - test/dummy/config/boot.rb
50
+ - test/dummy/config/cable.yml
51
+ - test/dummy/config/database.yml
52
+ - test/dummy/config/environment.rb
53
+ - test/dummy/config/environments/development.rb
54
+ - test/dummy/config/environments/production.rb
55
+ - test/dummy/config/environments/test.rb
56
+ - test/dummy/config/initializers/application_controller_renderer.rb
57
+ - test/dummy/config/initializers/assets.rb
58
+ - test/dummy/config/initializers/backtrace_silencers.rb
59
+ - test/dummy/config/initializers/cookies_serializer.rb
60
+ - test/dummy/config/initializers/filter_parameter_logging.rb
61
+ - test/dummy/config/initializers/inflections.rb
62
+ - test/dummy/config/initializers/mime_types.rb
63
+ - test/dummy/config/initializers/new_framework_defaults.rb
64
+ - test/dummy/config/initializers/session_store.rb
65
+ - test/dummy/config/initializers/wrap_parameters.rb
66
+ - test/dummy/config/locales/en.yml
67
+ - test/dummy/config/puma.rb
68
+ - test/dummy/config/routes.rb
69
+ - test/dummy/config/secrets.yml
70
+ - test/dummy/config/spring.rb
71
+ - test/dummy/db/test.sqlite3
72
+ - test/dummy/log/test.log
73
+ - test/dummy/public/404.html
74
+ - test/dummy/public/422.html
75
+ - test/dummy/public/500.html
76
+ - test/dummy/public/favicon.ico
77
+ - test/hebrewword_test.rb
78
+ - test/permuter_test.rb
79
+ - test/phoneme_maps_test.rb
80
+ - test/phonemizer_test.rb
81
+ - test/test_helper.rb
82
+ - test/transliterator_test.rb
83
+ homepage: https://github.com/AnalyzePlatypus/TranslitKit
84
+ licenses:
85
+ - MIT
86
+ metadata: {}
87
+ post_install_message:
88
+ rdoc_options: []
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ requirements: []
102
+ rubyforge_project:
103
+ rubygems_version: 2.6.8
104
+ signing_key:
105
+ specification_version: 4
106
+ summary: Hebrew -> English Transliteration engine
107
+ test_files:
108
+ - test/dummy/app/assets/javascripts/application.js
109
+ - test/dummy/app/assets/stylesheets/application.css
110
+ - test/dummy/app/controllers/application_controller.rb
111
+ - test/dummy/app/helpers/application_helper.rb
112
+ - test/dummy/app/views/layouts/application.html.erb
113
+ - test/dummy/bin/bundle
114
+ - test/dummy/bin/rails
115
+ - test/dummy/bin/rake
116
+ - test/dummy/bin/setup
117
+ - test/dummy/bin/update
118
+ - test/dummy/config/application.rb
119
+ - test/dummy/config/boot.rb
120
+ - test/dummy/config/cable.yml
121
+ - test/dummy/config/database.yml
122
+ - test/dummy/config/environment.rb
123
+ - test/dummy/config/environments/development.rb
124
+ - test/dummy/config/environments/production.rb
125
+ - test/dummy/config/environments/test.rb
126
+ - test/dummy/config/initializers/application_controller_renderer.rb
127
+ - test/dummy/config/initializers/assets.rb
128
+ - test/dummy/config/initializers/backtrace_silencers.rb
129
+ - test/dummy/config/initializers/cookies_serializer.rb
130
+ - test/dummy/config/initializers/filter_parameter_logging.rb
131
+ - test/dummy/config/initializers/inflections.rb
132
+ - test/dummy/config/initializers/mime_types.rb
133
+ - test/dummy/config/initializers/new_framework_defaults.rb
134
+ - test/dummy/config/initializers/session_store.rb
135
+ - test/dummy/config/initializers/wrap_parameters.rb
136
+ - test/dummy/config/locales/en.yml
137
+ - test/dummy/config/puma.rb
138
+ - test/dummy/config/routes.rb
139
+ - test/dummy/config/secrets.yml
140
+ - test/dummy/config/spring.rb
141
+ - test/dummy/config.ru
142
+ - test/dummy/db/test.sqlite3
143
+ - test/dummy/log/test.log
144
+ - test/dummy/public/404.html
145
+ - test/dummy/public/422.html
146
+ - test/dummy/public/500.html
147
+ - test/dummy/public/favicon.ico
148
+ - test/dummy/Rakefile
149
+ - test/dummy/README.rdoc
150
+ - test/hebrewword_test.rb
151
+ - test/permuter_test.rb
152
+ - test/phoneme_maps_test.rb
153
+ - test/phonemizer_test.rb
154
+ - test/test_helper.rb
155
+ - test/transliterator_test.rb