tenji 0.1.0 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 764be0cb138fea3b2d31777f61d2f5658dc14ab99f5eeba4fbc89e7cd9414c2c
4
- data.tar.gz: a81d4ccac660ac397a87d28950de73444206e4209d62640ab7694437091a46b0
3
+ metadata.gz: 161999f7b7d6959029d061aba088685e23910a4644896a8d48fa197a11c24967
4
+ data.tar.gz: c2de6e18ba98f6295be492ec5518873bae8a267ef927835c4754ae93bb274214
5
5
  SHA512:
6
- metadata.gz: 9bc8c3faccc60caa1915be1f548ac447ce7c23d93758de2d6471b250342ab44050ed408f7cac6c9e784cfecfa0704bfdaff2e2609c1f3131265b0d56faea07d0
7
- data.tar.gz: fd72ab56c085d8978620648994055b838bbb8d82a2dee7c7c2da393a6cf67b669abd807f7a182cd4939f0bd6764dcd1fe43ddbd9dac3cd219ab198de5dca00fc
6
+ metadata.gz: '09d3343ebde62caea3de3032090200e625de9290a57e933e4b9f2a2cf891f7c5c3bafd8d5ff5ced7fd305bce60b6e36c5e1a9f97e68f0a9177ff6f5216e4e36a'
7
+ data.tar.gz: c8de17b807c167ec5b20cb047da47fd7e214a4d21c5364714c8611367613d0872a32e54e10c2a99f6e3c58ee98774b07b59dcdb719a242836845677ec172c523
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 3.1
2
+ TargetRubyVersion: 3.4.4
3
3
 
4
4
  Style/StringLiteralsInInterpolation:
5
5
  EnforcedStyle: double_quotes
@@ -20,22 +20,6 @@ Metrics/MethodLength:
20
20
  Max: 20
21
21
  Exclude:
22
22
  - spec/**/*
23
- ExcludedMethods:
24
- - convert_to_tenji
25
-
26
- Metrics/AbcSize:
27
- ExcludedMethods:
28
- - convert_to_tenji
29
- - braille_mirror
30
-
31
- Metrics/CyclomaticComplexity:
32
- ExcludedMethods:
33
- - convert_to_tenji
34
- - braille_mirror
35
-
36
- Metrics/PerceivedComplexity:
37
- ExcludedMethods:
38
- - convert_to_tenji
39
23
 
40
24
  Metrics/BlockLength:
41
25
  Exclude:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.1.2] - 2025-12-18
4
+
5
+ ### Deprecated
6
+
7
+ - 最低保証 Ruby を 3.4.4 に変更
8
+
9
+ ### Fixed
10
+
11
+ - 一部の条件分岐が機能していなかったのを修正
12
+ - その他細かなバグを修正
13
+
14
+ ## [0.1.1] - 2025-10-7
15
+
16
+ ### Fixed
17
+
18
+ - 凹面変換において改行位置まで反転してしまう不具合を修正
19
+
3
20
  ## [0.1.0] - 2025-08-24
4
21
 
5
22
  - Initial release
data/Rakefile CHANGED
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- require "rubocop/rake_task"
8
+ require 'rubocop/rake_task'
9
9
 
10
10
  RuboCop::RakeTask.new
11
11
 
@@ -16,7 +16,7 @@ module Tenji
16
16
  # converter.convert_to_oumen("⠪⠴⠇⠗⠥")
17
17
  # # => "⠬⠺⠸⠦⠕"
18
18
  class Converter
19
- def convert_to_tenji(text)
19
+ def convert_to_tenji(text) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
20
20
  normalize_text = normalize(text)
21
21
  state = :kana
22
22
  result = []
@@ -58,6 +58,8 @@ module Tenji
58
58
  redo
59
59
  end
60
60
  if char.match?(/[a-zA-Z]/)
61
+ # アルファベットで書かれた文字の前に外字符を入れて、alphabet状態に移行
62
+ result << Tenji::Mapping::GAIJIFU
61
63
  state = :alphabet
62
64
  redo
63
65
  end
@@ -68,7 +70,9 @@ module Tenji
68
70
  state = :kana
69
71
  redo
70
72
  end
71
- if char == /[0-9]/
73
+ if char.match?(/[0-9]/)
74
+ # 数字がはじまる合図の数符を入れて、number状態に移行
75
+ result << Tenji::Mapping::SUFU
72
76
  state = :number
73
77
  redo
74
78
  end
@@ -83,7 +87,14 @@ module Tenji
83
87
  end
84
88
 
85
89
  def convert_to_oumen(raised_braille)
86
- raised_braille.chars.map { |char| braille_mirror(char) }.reverse.join
90
+ raised_braille.lines.map do |line|
91
+ reversed_line = line.chars.map { |char| braille_mirror(char) }.reverse
92
+ if reversed_line[0] == "\n"
93
+ reversed_line.delete_at(0)
94
+ reversed_line << "\n"
95
+ end
96
+ reversed_line.join
97
+ end.join
87
98
  end
88
99
 
89
100
  private
@@ -106,7 +117,7 @@ module Tenji
106
117
  is_yoon = %w[キ シ チ ニ ヒ ミ リ ギ ジ ヂ ビ ピ].include?(char) && %w[ャ ュ ョ].include?(next_char)
107
118
  is_tokusyuon = %w[ァ ィ ゥ ェ ォ ュ ョ].include?(next_char) && Tenji::Mapping::TOKUSYUON[next_char].include?(char)
108
119
  if is_yoon || is_tokusyuon
109
- one_kana = char << next_char
120
+ one_kana = char + next_char
110
121
  Tenji::Mapping::KANA[one_kana]
111
122
  else
112
123
  Tenji::Mapping::KANA[char]
@@ -114,7 +125,7 @@ module Tenji
114
125
  end
115
126
 
116
127
  def convert_num_to_braille(char)
117
- Tenji::Mapping::NUNBER[char]
128
+ Tenji::Mapping::NUMBER[char]
118
129
  end
119
130
 
120
131
  def convert_alphabet_to_braille(char)
@@ -122,7 +133,7 @@ module Tenji
122
133
  Tenji::Mapping::ALPHABET[lowercase]
123
134
  end
124
135
 
125
- def braille_mirror(char)
136
+ def braille_mirror(char) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
126
137
  code_point = char.ord
127
138
  return char unless (0x2800..0x283F).cover?(code_point)
128
139
 
@@ -139,10 +150,3 @@ module Tenji
139
150
  end
140
151
  end
141
152
  end
142
-
143
- # TODO: リリース前に削除すること
144
- # '0 1 2 3 4 5 6 7 8 9 A B C D E F'
145
- # '⠀ ⠁ ⠂ ⠃ ⠄ ⠅ ⠆ ⠇ ⠈ ⠉ ⠊ ⠋ ⠌ ⠍ ⠎ ⠏'
146
- # '⠐ ⠑ ⠒ ⠓ ⠔ ⠕ ⠖ ⠗ ⠘ ⠙ ⠚ ⠛ ⠜ ⠝ ⠞ ⠟'
147
- # '⠠ ⠡ ⠢ ⠣ ⠤ ⠥ ⠦ ⠧ ⠨ ⠩ ⠪ ⠫ ⠬ ⠭ ⠮ ⠯'
148
- # '⠰ ⠱ ⠲ ⠳ ⠴ ⠵ ⠶ ⠷ ⠸ ⠹ ⠺ ⠻ ⠼ ⠽ ⠾ ⠿'
data/lib/tenji/mapping.rb CHANGED
@@ -68,7 +68,7 @@ module Tenji
68
68
  'ョ' => %w[フ ヴ]
69
69
  }.freeze
70
70
 
71
- NUNBER = {
71
+ NUMBER = {
72
72
  '1' => '⠁', '2' => '⠃', '3' => '⠉', '4' => '⠙', '5' => '⠑',
73
73
  '6' => '⠋', '7' => '⠛', '8' => '⠓', '9' => '⠊', '0' => '⠚',
74
74
 
data/lib/tenji/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tenji
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.2'
5
5
  end
data/lib/tenji.rb CHANGED
@@ -6,7 +6,4 @@ require_relative 'tenji/converter'
6
6
 
7
7
  module Tenji
8
8
  class Error < StandardError; end
9
-
10
- class Braille
11
- end
12
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tenji
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ayu-0505
@@ -13,7 +13,7 @@ description: Tenji provides a straightforward way to convert Japanese Hiragana o
13
13
  Katakana text into Japanese Braille. It is designed to be lightweight and easy to
14
14
  use in Ruby applications.
15
15
  email:
16
- - amehuri.boshi.sh@icloud.com
16
+ - tenji.group.talk.dev@gmail.com
17
17
  executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
@@ -36,7 +36,7 @@ licenses:
36
36
  metadata:
37
37
  homepage_uri: https://github.com/ayu-0505/tenji
38
38
  source_code_uri: https://github.com/ayu-0505/tenji
39
- changelog_uri: https://github.com/ayu-0505/tenji/CHANGELOG.md
39
+ changelog_uri: https://github.com/ayu-0505/tenji/blob/main/CHANGELOG.md
40
40
  rdoc_options: []
41
41
  require_paths:
42
42
  - lib
@@ -44,7 +44,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 3.1.0
47
+ version: 3.4.4
48
48
  required_rubygems_version: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - ">="