head_music 8.1.0 → 8.1.1
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/lib/head_music/locales/de.yml +1 -0
- data/lib/head_music/locales/es.yml +1 -0
- data/lib/head_music/locales/fr.yml +1 -0
- data/lib/head_music/locales/it.yml +1 -0
- data/lib/head_music/locales/ru.yml +1 -0
- data/lib/head_music/rudiment/solmization.rb +13 -7
- data/lib/head_music/rudiment/solmizations.yml +6 -12
- data/lib/head_music/version.rb +1 -1
- data/test_translations.rb +15 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d1ca0a4ee8274a955259afdd1c915e09fba454522157a1ef687f8760ec064ed
|
4
|
+
data.tar.gz: 902a3b6f27f50b2a8f354adb22cbcc460798f1916f760f475e9f6c1d6583cc93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e80f4d2337cabdf0cedd69bc0cb9ad54e73bd0f1a9774ccbfc2bcbe70b28d90899ff55debe9917dc5f62776e90ee7d09fd28530ea10fa28892ffc46e0d430c56
|
7
|
+
data.tar.gz: 3d278d05d015f73e25633e3de2ea47fc90c8d8c8377bd4dff6ba13772039e8cce6824288a98e05e2cf31080dfac4f3b8010d84895dc62f24080699574958f8df
|
@@ -1,8 +1,7 @@
|
|
1
1
|
# A module for music rudiments
|
2
2
|
module HeadMusic::Rudiment; end
|
3
3
|
|
4
|
-
# A
|
5
|
-
# TODO: Rewrite to accept a tonal_center and a scale type.
|
4
|
+
# A solmization is the rendering of scale degrees as syllables.
|
6
5
|
class HeadMusic::Rudiment::Solmization
|
7
6
|
include HeadMusic::Named
|
8
7
|
|
@@ -34,20 +33,27 @@ class HeadMusic::Rudiment::Solmization
|
|
34
33
|
def record_for_name(name)
|
35
34
|
key = HeadMusic::Utilities::HashKey.for(name)
|
36
35
|
RECORDS.detect do |record|
|
37
|
-
name_strings = record[:
|
36
|
+
name_strings = [record[:name]] + (record[:aliases] || []) + translation_aliases
|
38
37
|
name_keys = name_strings.map { |name_string| HeadMusic::Utilities::HashKey.for(name_string) }
|
39
38
|
name_keys.include?(key)
|
40
39
|
end
|
41
40
|
end
|
42
41
|
|
43
42
|
def initialize_data_from_record(record)
|
43
|
+
self.name = record[:name]
|
44
44
|
@syllables = record[:syllables]
|
45
|
-
initialize_localized_names(record[:localized_names])
|
46
45
|
end
|
47
46
|
|
48
|
-
def
|
49
|
-
@
|
50
|
-
|
47
|
+
def translation_aliases
|
48
|
+
@translation_aliases ||= load_translation_aliases
|
49
|
+
end
|
50
|
+
|
51
|
+
def load_translation_aliases
|
52
|
+
aliases = []
|
53
|
+
I18n.config.available_locales.each do |locale|
|
54
|
+
translation = I18n.translate("head_music.rudiments.solfege", locale: locale, default: nil)
|
55
|
+
aliases << translation if translation && translation != 'solfege'
|
51
56
|
end
|
57
|
+
aliases.compact.uniq
|
52
58
|
end
|
53
59
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
---
|
2
|
-
- :
|
2
|
+
- :name: solfège
|
3
|
+
:syllables:
|
3
4
|
- do
|
4
5
|
- re
|
5
6
|
- mi
|
@@ -7,14 +8,7 @@
|
|
7
8
|
- sol
|
8
9
|
- la
|
9
10
|
- ti
|
10
|
-
:
|
11
|
-
-
|
12
|
-
-
|
13
|
-
|
14
|
-
- :name: solfège
|
15
|
-
:locale_code: fr
|
16
|
-
- :name: solfeggio
|
17
|
-
:locale_code: it
|
18
|
-
- :name: sol-fa
|
19
|
-
- :name: solfa
|
20
|
-
- :name: solfeo
|
11
|
+
:aliases:
|
12
|
+
- solfege
|
13
|
+
- sol-fa
|
14
|
+
- solfa
|
data/lib/head_music/version.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Test the translation loading functionality
|
4
|
+
|
5
|
+
# First test - German translation of solfege
|
6
|
+
result = system('bundle exec ruby -e "require \'head_music\'; puts HeadMusic::Rudiment::Solmization.get(\'Solfège\')&.name || \'nil\'"')
|
7
|
+
puts "German 'Solfège' test: #{result}"
|
8
|
+
|
9
|
+
# Second test - Italian translation
|
10
|
+
result = system('bundle exec ruby -e "require \'head_music\'; puts HeadMusic::Rudiment::Solmization.get(\'solfeggio\')&.name || \'nil\'"')
|
11
|
+
puts "Italian 'solfeggio' test: #{result}"
|
12
|
+
|
13
|
+
# Third test - Russian translation
|
14
|
+
result = system('bundle exec ruby -e "require \'head_music\'; puts HeadMusic::Rudiment::Solmization.get(\'сольфеджио\')&.name || \'nil\'"')
|
15
|
+
puts "Russian 'сольфеджио' test: #{result}"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: head_music
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.1.
|
4
|
+
version: 8.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Head
|
@@ -225,6 +225,7 @@ files:
|
|
225
225
|
- lib/head_music/style/mark.rb
|
226
226
|
- lib/head_music/utilities/hash_key.rb
|
227
227
|
- lib/head_music/version.rb
|
228
|
+
- test_translations.rb
|
228
229
|
homepage: https://github.com/roberthead/head_music
|
229
230
|
licenses:
|
230
231
|
- MIT
|