ruby_toys 0.2.0 → 0.3.0

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: 7f15e30e98bbbd6820e27abd5d640a176fe7f0ab0977c4b352b4dd9d93a1d911
4
- data.tar.gz: 22f06207521b45cc2f08286249d5bd1c0d22d3b3f7c2fd3019f0a5493860d639
3
+ metadata.gz: 57a09073280ac5aa6d1b7c66a7be577803842cef6c35a21e0c3239193b44d270
4
+ data.tar.gz: 0c99e587399ab6e91cee39c840692ab749f7e703fb132d28bfb51f0560f6df80
5
5
  SHA512:
6
- metadata.gz: d3550d400f41398ea27851cfb366b875f5de1d82f121a7c160218f156e41509d2d0324962ede35e24031ea3dcf4ff4cd0bfb8e3dc8d18fb6fd3900106152621b
7
- data.tar.gz: 9cf9d80ee335392551ee59940a9fd2c801ec661f56009acc7c753ee89c5f70ac306e9d1d02ae0c1558bd8b87100b1276284d2b68ee049568213ec6d5dc4a0d8e
6
+ metadata.gz: f469b1c075e9a050ad280b48bbbe48c7a25456582ff7dd3e9fd1533fe4c90e6e58b22b37c745105e351274c7af32325ae0838d80f6bcc837d7a88b5741727125
7
+ data.tar.gz: bfc964d8c43b5628335e0fd238743d01ac8e419f3e24fedd7c86042548ebf7679a4343cd502622079b4982e5b329f2b7f6ccfb37e7e8f3e49e75b7793ff6b77a
data/.DS_Store ADDED
Binary file
@@ -23,9 +23,38 @@ module RubyToys
23
23
  str
24
24
  end
25
25
 
26
+ # 英単語の前後の空白だけを削除する
27
+ def self.format_word(text)
28
+ # ChatGPTが解決できずGeminiに教えて貰う(英単語を検索する方法ではうまくいかず、日本語文字列を指定する方法)
29
+ # 1. 文字列全体の先頭と末尾の空白を削除(trim)
30
+ trimmed_text = text.strip
31
+
32
+ # 2. 英単語以外の文字(ここでは日本語を想定)の直前・直後の空白を削除
33
+ # - \s* は0回以上の空白文字
34
+ # - ([\p{Han}\p{Hiragana}\p{Katakana}]+) は日本語の文字(漢字、ひらがな、カタカナ、記号)をキャプチャ
35
+ # - \1 はキャプチャした日本語の文字に戻す
36
+ cleaned_text = trimmed_text.gsub(/\s*([\p{Han}\p{Hiragana}\p{Katakana}\p{Punctuation}]+)\s*/, '\1')
37
+
38
+ # 3. 英語と日本語の間の空白も整えるため、再度全体をtrimする(念のため)
39
+ cleaned_text.strip
40
+ end
41
+
42
+ # 全角コロン or 半角コロン(後ろにスペースがない場合も含む)正規化
43
+ def self.format_colon(text)
44
+ text.gsub(/\s*[:\uFF1A]\s*/, ': ') # コロンの前に空白があれば削除
45
+ end
46
+
26
47
  def self.format(str)
48
+ # puts "Input: #{str}"
49
+ # 最初に空白を削除しとかないとformat_colonが正しく動作しないので注意(あとからformat_wordを呼ぶと追加した空白が削除されてしまう)
50
+ str = format_word(str)
51
+ #puts "After word formatting: #{str}"
27
52
  str = format_parentheses(str)
53
+ #puts "After parentheses: #{str}"
28
54
  str = format_comma(str)
55
+ #puts "After comma: #{str}"
56
+ str = format_colon(str)
57
+ #puts "After colon: #{str}"
29
58
  str
30
59
  end
31
60
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyToys
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_toys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - src
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-10-13 00:00:00.000000000 Z
11
+ date: 2025-10-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: My Ruby Library
14
14
  email:
@@ -18,6 +18,7 @@ executables:
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
+ - ".DS_Store"
21
22
  - ".ruby-version"
22
23
  - CHANGELOG.md
23
24
  - CODE_OF_CONDUCT.md