grc 0.1.1 → 0.1.3
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/.idea/workspace.xml +117 -10
- data/.rubocop.yml +9 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +2 -1
- data/README.md +16 -0
- data/lib/grc/version.rb +1 -1
- data/lib/grc.rb +178 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 607b4978467b7021989bc97c470b46a97996a6e418dbacce9704e1827e87fb38
|
4
|
+
data.tar.gz: f7058a951b8863b30edb9fe0e3c93e350782c7adee00ca018c806888e70ee2f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab9239b4caf50bd0813025a6fc7491a43d9e5e53f07d7eb50db49040089e19a0bebf603027c3ab0c9b5feaf22cc5f8613c7608d2b730bba035e855e79f281e4c
|
7
|
+
data.tar.gz: 767f82f5519ce78f257a165bdfcf712d6f9d854c9dccb2e1d167cff6495635bcd71113e5087a3d7b2b79ba5c73a8ae0eab1791a0f303121231d4be88292dd08d
|
data/.idea/workspace.xml
CHANGED
@@ -4,10 +4,9 @@
|
|
4
4
|
<option name="autoReloadType" value="SELECTIVE" />
|
5
5
|
</component>
|
6
6
|
<component name="ChangeListManager">
|
7
|
-
<list default="true" id="0af4ebef-9f59-4a85-9f65-0d8163baa737" name="Changes" comment="2022-07-
|
7
|
+
<list default="true" id="0af4ebef-9f59-4a85-9f65-0d8163baa737" name="Changes" comment="2022-07-16-03-34">
|
8
8
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
9
|
-
<change beforePath="$PROJECT_DIR$/
|
10
|
-
<change beforePath="$PROJECT_DIR$/lib/grc.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/grc.rb" afterDir="false" />
|
9
|
+
<change beforePath="$PROJECT_DIR$/CHANGELOG.md" beforeDir="false" afterPath="$PROJECT_DIR$/CHANGELOG.md" afterDir="false" />
|
11
10
|
<change beforePath="$PROJECT_DIR$/lib/grc/version.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/grc/version.rb" afterDir="false" />
|
12
11
|
</list>
|
13
12
|
<option name="SHOW_DIALOG" value="false" />
|
@@ -37,11 +36,13 @@
|
|
37
36
|
"keyToString": {
|
38
37
|
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
39
38
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
39
|
+
"last_opened_file_path": "/Users/bcdav/Dropbox/Developer/Ruby/Gems/grc",
|
40
40
|
"nodejs_package_manager_path": "npm",
|
41
|
-
"ruby.rails.projectView.checked": "true"
|
41
|
+
"ruby.rails.projectView.checked": "true",
|
42
|
+
"settings.editor.selected.configurable": "preferences.pluginManager"
|
42
43
|
}
|
43
44
|
}</component>
|
44
|
-
<component name="RunManager" selected="
|
45
|
+
<component name="RunManager" selected="Ruby.grc">
|
45
46
|
<configuration name="grc" type="RubyRunConfigurationType" factoryName="Ruby" temporary="true">
|
46
47
|
<module name="grc" />
|
47
48
|
<RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
|
@@ -92,6 +93,68 @@
|
|
92
93
|
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
|
93
94
|
<method v="2" />
|
94
95
|
</configuration>
|
96
|
+
<configuration name="test_oxia_to_tonos" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest" temporary="true" nameIsGenerated="true">
|
97
|
+
<module name="grc" />
|
98
|
+
<predefined_log_file enabled="true" id="RUBY_TESTUNIT" />
|
99
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-Ilib:test" />
|
100
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
101
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
102
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
103
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
104
|
+
<envs>
|
105
|
+
<env name="JRUBY_OPTS" value="-X+O" />
|
106
|
+
</envs>
|
107
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" BUNDLE_MODE="AUTO" bundleExecEnabled="true" />
|
108
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
109
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" ENABLE_BRANCH_COVERAGE="true" ENABLE_FORKED_COVERAGE="true">
|
110
|
+
<COVERAGE_PATTERN ENABLED="true">
|
111
|
+
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
112
|
+
</COVERAGE_PATTERN>
|
113
|
+
</EXTENSION>
|
114
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.rails.run.RailsRunConfigurationExtension" SCRATCH_USE_RAILS_RUNNER="false" />
|
115
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
116
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/test/test_grc.rb" />
|
117
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPTS_PATHS" VALUE="$MODULE_DIR$/test/test_grc.rb" />
|
118
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
|
119
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="^test_oxia_to_tonos$" />
|
120
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_METHOD" />
|
121
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
122
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
123
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
124
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
|
125
|
+
<method v="2" />
|
126
|
+
</configuration>
|
127
|
+
<configuration name="test_tonos_to_oxia" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest" temporary="true" nameIsGenerated="true">
|
128
|
+
<module name="grc" />
|
129
|
+
<predefined_log_file enabled="true" id="RUBY_TESTUNIT" />
|
130
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-Ilib:test" />
|
131
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
132
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
133
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
134
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
135
|
+
<envs>
|
136
|
+
<env name="JRUBY_OPTS" value="-X+O" />
|
137
|
+
</envs>
|
138
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" BUNDLE_MODE="AUTO" bundleExecEnabled="true" />
|
139
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
140
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" ENABLE_BRANCH_COVERAGE="true" ENABLE_FORKED_COVERAGE="true">
|
141
|
+
<COVERAGE_PATTERN ENABLED="true">
|
142
|
+
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
143
|
+
</COVERAGE_PATTERN>
|
144
|
+
</EXTENSION>
|
145
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.rails.run.RailsRunConfigurationExtension" SCRATCH_USE_RAILS_RUNNER="false" />
|
146
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
147
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/test/test_grc.rb" />
|
148
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPTS_PATHS" VALUE="$MODULE_DIR$/test/test_grc.rb" />
|
149
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
|
150
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="^test_tonos_to_oxia$" />
|
151
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_METHOD" />
|
152
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
153
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
154
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
155
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
|
156
|
+
<method v="2" />
|
157
|
+
</configuration>
|
95
158
|
<configuration name="test_unicode_name" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest" temporary="true" nameIsGenerated="true">
|
96
159
|
<module name="grc" />
|
97
160
|
<predefined_log_file enabled="true" id="RUBY_TESTUNIT" />
|
@@ -125,9 +188,11 @@
|
|
125
188
|
</configuration>
|
126
189
|
<recent_temporary>
|
127
190
|
<list>
|
191
|
+
<item itemvalue="Ruby.grc" />
|
192
|
+
<item itemvalue="Test::Unit/Shoulda/Minitest.test_tonos_to_oxia" />
|
193
|
+
<item itemvalue="Test::Unit/Shoulda/Minitest.test_oxia_to_tonos" />
|
128
194
|
<item itemvalue="Test::Unit/Shoulda/Minitest.test_grc.rb" />
|
129
195
|
<item itemvalue="Test::Unit/Shoulda/Minitest.test_unicode_name" />
|
130
|
-
<item itemvalue="Ruby.grc" />
|
131
196
|
</list>
|
132
197
|
</recent_temporary>
|
133
198
|
</component>
|
@@ -141,7 +206,8 @@
|
|
141
206
|
<option name="presentableId" value="Default" />
|
142
207
|
<updated>1657595515095</updated>
|
143
208
|
<workItem from="1657595516239" duration="5292000" />
|
144
|
-
<workItem from="1657776231899" duration="
|
209
|
+
<workItem from="1657776231899" duration="3819000" />
|
210
|
+
<workItem from="1657925313775" duration="11283000" />
|
145
211
|
</task>
|
146
212
|
<task id="LOCAL-00001" summary="Initial commit">
|
147
213
|
<created>1657596693848</created>
|
@@ -199,7 +265,42 @@
|
|
199
265
|
<option name="project" value="LOCAL" />
|
200
266
|
<updated>1657600429179</updated>
|
201
267
|
</task>
|
202
|
-
<
|
268
|
+
<task id="LOCAL-00009" summary="fixed no_upcase_diacritics">
|
269
|
+
<created>1657776287327</created>
|
270
|
+
<option name="number" value="00009" />
|
271
|
+
<option name="presentableId" value="LOCAL-00009" />
|
272
|
+
<option name="project" value="LOCAL" />
|
273
|
+
<updated>1657776287327</updated>
|
274
|
+
</task>
|
275
|
+
<task id="LOCAL-00010" summary="fixed no_upcase_diacritics">
|
276
|
+
<created>1657776308249</created>
|
277
|
+
<option name="number" value="00010" />
|
278
|
+
<option name="presentableId" value="LOCAL-00010" />
|
279
|
+
<option name="project" value="LOCAL" />
|
280
|
+
<updated>1657776308249</updated>
|
281
|
+
</task>
|
282
|
+
<task id="LOCAL-00011" summary="minor fix">
|
283
|
+
<created>1657777089163</created>
|
284
|
+
<option name="number" value="00011" />
|
285
|
+
<option name="presentableId" value="LOCAL-00011" />
|
286
|
+
<option name="project" value="LOCAL" />
|
287
|
+
<updated>1657777089163</updated>
|
288
|
+
</task>
|
289
|
+
<task id="LOCAL-00012" summary="minor fix">
|
290
|
+
<created>1657777286176</created>
|
291
|
+
<option name="number" value="00012" />
|
292
|
+
<option name="presentableId" value="LOCAL-00012" />
|
293
|
+
<option name="project" value="LOCAL" />
|
294
|
+
<updated>1657777286176</updated>
|
295
|
+
</task>
|
296
|
+
<task id="LOCAL-00013" summary="2022-07-16-03-34">
|
297
|
+
<created>1657953258951</created>
|
298
|
+
<option name="number" value="00013" />
|
299
|
+
<option name="presentableId" value="LOCAL-00013" />
|
300
|
+
<option name="project" value="LOCAL" />
|
301
|
+
<updated>1657953258951</updated>
|
302
|
+
</task>
|
303
|
+
<option name="localTasksCounter" value="14" />
|
203
304
|
<servers />
|
204
305
|
</component>
|
205
306
|
<component name="TypeScriptGeneratedFilesManager">
|
@@ -223,11 +324,17 @@
|
|
223
324
|
<MESSAGE value="2022-07-12-01-11" />
|
224
325
|
<MESSAGE value="2022-07-12-01-24" />
|
225
326
|
<MESSAGE value="2022-07-12-01-33" />
|
226
|
-
<
|
327
|
+
<MESSAGE value="fixed no_upcase_diacritics" />
|
328
|
+
<MESSAGE value="minor fix" />
|
329
|
+
<MESSAGE value="Fixed `oxia_to_tonos` & `tonos_to_oxia` and added the options of `to_tonos` & `to_oxia`. Added `transliterate`." />
|
330
|
+
<MESSAGE value="2022-07-16-03-34" />
|
331
|
+
<option name="LAST_COMMIT_MESSAGE" value="2022-07-16-03-34" />
|
227
332
|
</component>
|
228
333
|
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
334
|
+
<SUITE FILE_PATH="coverage/grc@test_oxia_to_tonos.rcov" NAME="test_oxia_to_tonos Coverage Results" MODIFIED="1657949990401" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="grc" />
|
335
|
+
<SUITE FILE_PATH="coverage/grc@test_tonos_to_oxia.rcov" NAME="test_tonos_to_oxia Coverage Results" MODIFIED="1657950558051" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="grc" />
|
229
336
|
<SUITE FILE_PATH="coverage/grc@test_grc_rb.rcov" NAME="test_grc.rb Coverage Results" MODIFIED="1657599843372" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="grc" />
|
230
337
|
<SUITE FILE_PATH="coverage/grc@test_unicode_name.rcov" NAME="test_unicode_name Coverage Results" MODIFIED="1657596419433" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="grc" />
|
231
|
-
<SUITE FILE_PATH="coverage/grc@grc.rcov" NAME="grc Coverage Results" MODIFIED="
|
338
|
+
<SUITE FILE_PATH="coverage/grc@grc.rcov" NAME="grc Coverage Results" MODIFIED="1657952337434" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="grc" />
|
232
339
|
</component>
|
233
340
|
</project>
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,22 @@
|
|
1
1
|
# GRC - Methods for working with Ancient Greek in Ruby
|
2
2
|
|
3
3
|
[](https://github.com/bcdavasconcelos/grc/actions/workflows/main.yml) [](https://badge.fury.io/rb/grc)
|
4
|
+
|
5
|
+
```ruby
|
6
|
+
'αβγ'.grc? # true
|
7
|
+
'abc'.grc? # false
|
8
|
+
'ἄ'.no_downcase_diacritics # α
|
9
|
+
'Ἀ'.no_upcase_diacritics # Α
|
10
|
+
'ἄἈ'.no_diacritics # αΑ
|
11
|
+
'ά'.tonos_to_oxia # ά
|
12
|
+
'ά'.oxia_to_tonos # ά
|
13
|
+
'ὰ'.grave_to_acute # ά
|
14
|
+
'ά'.acute_to_grave # ὰ
|
15
|
+
'α'.unicode_name # ['GREEK SMALL LETTER ALPHA']
|
16
|
+
'α'.unicode_points # ['\\u03B1']
|
17
|
+
'ᾄ'.nfc # ᾄ
|
18
|
+
'ᾄ'.nfd # ᾄ
|
19
|
+
```
|
4
20
|
|
5
21
|
## Installation
|
6
22
|
|
data/lib/grc/version.rb
CHANGED
data/lib/grc.rb
CHANGED
@@ -6,46 +6,75 @@ require_relative 'grc/version'
|
|
6
6
|
module Grc
|
7
7
|
class Error < StandardError; end
|
8
8
|
|
9
|
+
@std_error = 'ERROR: String does not contain any greek. Summon the muse and try again.'
|
10
|
+
|
9
11
|
def grc?
|
10
12
|
!scan(/(\p{Greek})/).empty?
|
11
13
|
end
|
12
14
|
|
13
15
|
def no_downcase_diacritics
|
16
|
+
return @std_error unless grc?
|
17
|
+
|
14
18
|
tr('ἀἄᾄἂᾂἆᾆᾀἁἅᾅἃᾃἇᾇᾁάάᾴὰᾲᾰᾶᾷᾱᾳἐἔἒἑἕἓέέὲἠἤᾔἢᾒἦᾖᾐἡἥᾕἣᾓἧᾗᾑήήῄὴῂῆῇῃἰἴἲἶἱἵἳἷίίὶῐῖϊϊΐῒῗῑὀὄὂὁὅὃόόὸῤῥὐὔὒὖὑὕὓὗύύὺῠῦϋΰΰΰῢῧῡὠὤᾤὢᾢὦᾦᾠὡὥᾥὣᾣὧᾧᾡώώῴὼῲῶῷῳ',
|
15
19
|
'ααααααααααααααααααααααααααεεεεεεεεεηηηηηηηηηηηηηηηηηηηηηηηηιιιιιιιιιιιιιιιιιιιοοοοοοοοορρυυυυυυυυυυυυυυυυυυυυωωωωωωωωωωωωωωωωωωωωωωωω')
|
16
20
|
end
|
17
21
|
|
18
22
|
def no_upcase_diacritics
|
23
|
+
return @std_error unless grc?
|
24
|
+
|
19
25
|
str = self
|
26
|
+
# Adhoc solution for odd combinations of diacritics with capital letters
|
20
27
|
ars = [[/[́̀͂́́́̀͂]/, ''], [/Α͂/, 'Α'], [/Η͂/, 'Η'], [/Ί|Ὶ|Ι͂|́Ι|̀Ι|͂Ι/, 'Ι'],
|
21
|
-
[/Ρ̓/, 'Ρ'], [/ Ὺ| ́Υ|Υ̓|Ύ|Ὺ|Υ͂|́Υ|̀Υ|͂Υ/, 'Υ'], [/͂Ω/, 'Ω']]
|
28
|
+
[/Ρ̓/, 'Ρ'], [/ Ὺ| ́Υ|Υ̓|Ύ|Ὺ|Υ͂|́Υ|̀Υ|͂Υ/, 'Υ'], [/͂Ω/, 'Ω']]
|
22
29
|
ars.each do |a|
|
23
30
|
str = str.gsub(/#{a[0]}/, a[1])
|
24
31
|
end
|
25
|
-
str
|
26
|
-
|
32
|
+
str.tr('ἈἌἊἎἉἍἋἏΆᾺᾸᾹἘἜἚἙἝἛΈῈἨἬἪἮἩἭἫἯΉῊἸἼἺἾἹἽἻἿΊῚῘΪῙὈὌὊὉὍὋΌῸΡῬὙὝὛὟΎῪῨΫῩὨὬὪὮὩὭὫὯΏῺ',
|
33
|
+
'ΑΑΑΑΑΑΑΑΑΑΑΑΕΕΕΕΕΕΕΕΗΗΗΗΗΗΗΗΗΗΙΙΙΙΙΙΙΙΙΙΙΙΙΟΟΟΟΟΟΟΟΡΡΥΥΥΥΥΥΥΥΥΩΩΩΩΩΩΩΩΩΩ')
|
27
34
|
end
|
28
35
|
|
29
36
|
def no_diacritics
|
37
|
+
return @std_error unless grc?
|
38
|
+
|
30
39
|
no_downcase_diacritics.no_upcase_diacritics
|
31
40
|
end
|
32
41
|
|
33
42
|
def tonos_to_oxia
|
34
|
-
|
35
|
-
|
43
|
+
return @std_error unless grc?
|
44
|
+
|
45
|
+
tr('άΆέΈήΉίΊΐόΌύΎΰώΏ',
|
46
|
+
'άΆέΈήΉίΊΐόΌύΎΰώΏ')
|
47
|
+
end
|
48
|
+
|
49
|
+
def to_oxia
|
50
|
+
return @std_error unless grc?
|
51
|
+
|
52
|
+
tonos_to_oxia
|
36
53
|
end
|
37
54
|
|
38
55
|
def oxia_to_tonos
|
39
|
-
|
40
|
-
|
56
|
+
return @std_error unless grc?
|
57
|
+
|
58
|
+
tr('άΆέΈήΉίΊΐόΌύΎΰώΏ',
|
59
|
+
'άΆέΈήΉίΊΐόΌύΎΰώΏ')
|
60
|
+
end
|
61
|
+
|
62
|
+
def to_tonos
|
63
|
+
return @std_error unless grc?
|
64
|
+
|
65
|
+
oxia_to_tonos
|
41
66
|
end
|
42
67
|
|
43
68
|
def acute_to_grave
|
69
|
+
return @std_error unless grc?
|
70
|
+
|
44
71
|
tr('ἄᾄἅᾅάάᾴἔἕέέἤᾔἥᾕήήῄἴἵίίΐὄὅόόὔὕύύΰΰὤᾤὥᾥώῴ',
|
45
72
|
'ἂᾂἃᾃὰὰᾲἒἓὲὲἢᾒἣᾓὴὴῂἲἳὶὶῒὂὃὸὸὒὓὺὺῢῢὢᾢὣᾣὼῲ')
|
46
73
|
end
|
47
74
|
|
48
75
|
def grave_to_acute
|
76
|
+
return @std_error unless grc?
|
77
|
+
|
49
78
|
tr('ἂᾂἃᾃὰὰᾲἒἓὲὲἢᾒἣᾓὴὴῂἲἳὶὶῒὂὃὸὸὒὓὺὺῢῢὢᾢὣᾣὼῲ',
|
50
79
|
'ἄᾄἅᾅάάᾴἔἕέέἤᾔἥᾕήήῄἴἵίίΐὄὅόόὔὕύύΰΰὤᾤὥᾥώῴ')
|
51
80
|
end
|
@@ -75,6 +104,147 @@ module Grc
|
|
75
104
|
hash
|
76
105
|
end
|
77
106
|
|
107
|
+
def transliterate
|
108
|
+
return @std_error unless grc?
|
109
|
+
|
110
|
+
hash = {
|
111
|
+
ῥ: 'rh',
|
112
|
+
ͱ: '',
|
113
|
+
Ͳ: '',
|
114
|
+
ͳ: '',
|
115
|
+
ʹ: '',
|
116
|
+
"\u0375": '',
|
117
|
+
Ͷ: '',
|
118
|
+
ͷ: '',
|
119
|
+
ͺ: '',
|
120
|
+
ͻ: '',
|
121
|
+
ͼ: '',
|
122
|
+
ͽ: '',
|
123
|
+
Α: 'a',
|
124
|
+
Β: 'b',
|
125
|
+
Γ: 'g',
|
126
|
+
Δ: 'd',
|
127
|
+
Ε: 'e',
|
128
|
+
Ζ: 'z',
|
129
|
+
Η: 'ē',
|
130
|
+
Θ: 'th',
|
131
|
+
Ι: 'i',
|
132
|
+
Κ: 'k',
|
133
|
+
Λ: 'l',
|
134
|
+
Μ: 'm',
|
135
|
+
Ν: 'n',
|
136
|
+
Ξ: 'x',
|
137
|
+
Ο: 'o',
|
138
|
+
Π: 'p',
|
139
|
+
Ρ: 'r',
|
140
|
+
Σ: 's',
|
141
|
+
Τ: 't',
|
142
|
+
Υ: 'y',
|
143
|
+
Φ: 'ph',
|
144
|
+
Χ: 'ch',
|
145
|
+
Ψ: 'ps',
|
146
|
+
Ω: 'ō',
|
147
|
+
α: 'a',
|
148
|
+
β: 'b',
|
149
|
+
γ: 'g',
|
150
|
+
δ: 'd',
|
151
|
+
ε: 'e',
|
152
|
+
ζ: 'z',
|
153
|
+
η: 'ē',
|
154
|
+
θ: 'th',
|
155
|
+
ι: 'i',
|
156
|
+
κ: 'k',
|
157
|
+
λ: 'l',
|
158
|
+
μ: 'm',
|
159
|
+
ν: 'n',
|
160
|
+
ξ: 'x',
|
161
|
+
ο: 'o',
|
162
|
+
π: 'p',
|
163
|
+
ρ: 'r',
|
164
|
+
ς: 's',
|
165
|
+
σ: 's',
|
166
|
+
τ: 't',
|
167
|
+
υ: 'y',
|
168
|
+
φ: 'ph',
|
169
|
+
χ: 'ch',
|
170
|
+
ψ: 'ps',
|
171
|
+
ω: 'ō',
|
172
|
+
Ϗ: '',
|
173
|
+
ϐ: '',
|
174
|
+
ϑ: '',
|
175
|
+
ϒ: '',
|
176
|
+
ϓ: '',
|
177
|
+
ϔ: '',
|
178
|
+
ϕ: '',
|
179
|
+
ϖ: '',
|
180
|
+
ϗ: '',
|
181
|
+
Ϙ: '',
|
182
|
+
ϙ: '',
|
183
|
+
Ϛ: '',
|
184
|
+
ϛ: '',
|
185
|
+
Ϝ: '',
|
186
|
+
ϝ: '',
|
187
|
+
Ϟ: '',
|
188
|
+
ϟ: '',
|
189
|
+
Ϡ: '',
|
190
|
+
ϡ: '',
|
191
|
+
Ϣ: '',
|
192
|
+
ϣ: '',
|
193
|
+
Ϥ: '',
|
194
|
+
ϥ: '',
|
195
|
+
Ϧ: '',
|
196
|
+
ϧ: '',
|
197
|
+
Ϩ: '',
|
198
|
+
ϩ: '',
|
199
|
+
Ϫ: '',
|
200
|
+
ϫ: '',
|
201
|
+
Ϭ: '',
|
202
|
+
ϭ: '',
|
203
|
+
Ϯ: '',
|
204
|
+
ϯ: '',
|
205
|
+
ϰ: '',
|
206
|
+
ϱ: '',
|
207
|
+
ϲ: '',
|
208
|
+
ϳ: '',
|
209
|
+
ϴ: '',
|
210
|
+
ϵ: '',
|
211
|
+
"\u03F6": '',
|
212
|
+
Ϸ: '',
|
213
|
+
ϸ: '',
|
214
|
+
Ϲ: '',
|
215
|
+
Ϻ: '',
|
216
|
+
ϻ: '',
|
217
|
+
ϼ: '',
|
218
|
+
Ͻ: '',
|
219
|
+
Ͼ: '',
|
220
|
+
Ͽ: '',
|
221
|
+
gg: 'ng',
|
222
|
+
gk: 'nk',
|
223
|
+
gx: 'nx',
|
224
|
+
gc: 'nc',
|
225
|
+
"\u{0314}": 'rh',
|
226
|
+
rr: 'rrh',
|
227
|
+
ay: 'au',
|
228
|
+
ey: 'eu',
|
229
|
+
ēy: 'ēu',
|
230
|
+
oy: 'ou',
|
231
|
+
yi: 'ui'
|
232
|
+
}
|
233
|
+
result = []
|
234
|
+
str = self
|
235
|
+
str.split.each do |word|
|
236
|
+
result << if word.grc?
|
237
|
+
the_word = word.gsub(/ῥ/, 'rh')
|
238
|
+
the_word = the_word =~ /[ἁἅᾅἃᾃἇᾇᾁἑἕἓἡἥᾕἣᾓἧᾗᾑἱἵἳἷὁὅὃὑὕὓὗὡὥᾥὣᾣὧᾧᾡ]/ ? "h#{the_word.no_diacritics}" : the_word.no_diacritics
|
239
|
+
hash.each { |k, v| the_word = the_word.gsub(/#{k}/, v) }
|
240
|
+
the_word
|
241
|
+
else
|
242
|
+
word
|
243
|
+
end
|
244
|
+
end
|
245
|
+
result.join(' ')
|
246
|
+
end
|
247
|
+
|
78
248
|
def nfc
|
79
249
|
unicode_normalize(:nfc)
|
80
250
|
end
|
@@ -86,4 +256,4 @@ end
|
|
86
256
|
|
87
257
|
class String
|
88
258
|
include Grc
|
89
|
-
end
|
259
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bernardo C.D.A. Vasconcelos
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|