igo 0.1.5 → 0.1.5.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/igo/ja.rb +29 -22
  3. data/lib/igo/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f601c65deddd555e091f5688fec28cad9a5a38e9b1c30e6618ce076e8dacce6a
4
- data.tar.gz: dcab0296c1c6e1ee7e6ad44f0fc77900235364a932c89e1f7795292f6b36cc07
3
+ metadata.gz: 81b5f3fec925891f2ab69645a249aebd65c2e2cf1ae14957cb80d4c85861c138
4
+ data.tar.gz: 0aacd859a7c85dc0385be5630083b1862293c008214bf6c0c230ebd071a0a65e
5
5
  SHA512:
6
- metadata.gz: 2724f4e58e730c0c86b107475dc18c27d65ea3c5b990236e4ebe9e55db9d959ac538004d0957563a986397e0ca240846b5025259f6e192c8007bbfc958694e2a
7
- data.tar.gz: b6dfe00759471e08c933827822db4e9bc0cf869c614b24173a26bd451076db17439b96e5d81adeca647167741d1ef43e5098fb34bfedbcf42efd21d00ccdee9f
6
+ metadata.gz: 6d995a0dca73847507437bf4c33bf0e937f58ee4f8e959836cea94f643e2dff2ae4a9ffeb62dca790fc1aaf8a433fa7b16855f233c401be7cad6f73567718c5b
7
+ data.tar.gz: 04c947e5b3e0cb76b77afddb6f271fdfa998243bb4aea60a036073873c013a0435cdb59db62bb98c2b40cf7da360c7573e1ccc6d76013b7a6486ec59a6396378
data/lib/igo/ja.rb CHANGED
@@ -70,8 +70,9 @@ module Igo
70
70
  # else cutted.map(&:last)
71
71
  # end
72
72
 
73
- tag(str, s: s, lr: lr, tag: false, kana: true)
73
+ tag(str, s: s, lr: lr, tag: false, kana: true, kana_only: true)
74
74
  end
75
+
75
76
  def ruby str, s: false, lr: "()"
76
77
  # str = URI.encode_www_form_component(str)
77
78
  # doc = Nokogiri::HTML(URI.open(SEARCH_URL + str).read)
@@ -93,7 +94,7 @@ module Igo
93
94
  # else cutted
94
95
  # end
95
96
 
96
- tag(str, s: s, lr: lr, kana: 1, tag: false)
97
+ tag(str, s: s, lr: lr, kana: true, tag: false)
97
98
 
98
99
  end
99
100
  # TODO: tag word function
@@ -102,7 +103,7 @@ module Igo
102
103
 
103
104
  end
104
105
 
105
- def tag str, s: false, ns: 0, lr: "()", sp:"_", short: false, tag: true, kana: false, timeout: 10
106
+ def tag str, s: false, ns: 0, lr: "()", sp:"_", short: false, tag: true, kana: false, timeout: 10, kana_only: false
106
107
 
107
108
  def async_query(arr, timeout=0, &block)
108
109
  promises = arr.map do |element|
@@ -126,7 +127,7 @@ module Igo
126
127
  results
127
128
  end
128
129
 
129
- def _tag str, vis_kana: true, vis_tag: true
130
+ def _tag str
130
131
  str = URI.encode_www_form_component(str)
131
132
  doc = Nokogiri::HTML(URI.open(SEARCH_URL + str).read)
132
133
 
@@ -135,35 +136,41 @@ module Igo
135
136
  _1&.css(".japanese_word__furigana").text||nil, # kana
136
137
  _1.attr("data-pos")] # tag
137
138
  end
138
- # .map{_1.values_at(* [0, vis_kana ? 1 : 0, vis_tag ? 2 : 0].uniq)}
139
139
  end
140
140
 
141
- def _stringify cutted, s: "/", lr: "()", sp:"_", short: false, vis_tag: true, vis_kana: true
141
+ def _stringify cutted, s: "/", lr: "()", sp:"_", short: false, vis_tag: true, vis_kana: true, kana_only: false
142
142
  # cutted.each{ _1[1] = nil } unless vis_kana
143
143
  # cutted.each{ _1[2] = nil } unless vis_tag
144
- unless s.is_a?(String)
145
- s = " "
146
- end
147
- left, right = case lr
148
- when String then (lr*2).split("").values_at(0, -1)
149
- when Array then lr
144
+ if kana_only
145
+ return cutted.map do
146
+ (_1[1].empty? ? _1[0] : _1[1]) +
147
+ ((vis_kana && _1[2]) ? (sp + _1[2]) : "")
148
+ end.join(s)
149
+ else
150
+ unless s.is_a?(String)
151
+ s = " "
152
+ end
153
+ left, right = case lr
154
+ when String then (lr*2).split("").values_at(0, -1)
155
+ when Array then lr
156
+ end
157
+ cutted.map do
158
+ _1[0] +
159
+ ((vis_tag && !_1[1]&.empty? )? (left + _1[1] + right) : "") +
160
+ ((vis_kana && _1[2]) ? (sp + _1[2]) : "")
161
+ end.join(s)
150
162
  end
151
- cutted.map do
152
- _1[0] +
153
- ((vis_tag && !_1[1]&.empty? )? (left + _1[1] + right) : "") +
154
- ((vis_kana && _1[2]) ? (sp + _1[2]) : "")
155
- end.join(s)
156
163
  end
157
164
 
158
- def singo_proc str, s: false, ns: 0, lr: "()", sp:"_", short: false, vis_tag: true, vis_kana: true
159
- cutted = _tag str, vis_kana: vis_kana, vis_tag: vis_tag
165
+ def singo_proc str, s: false, ns: 0, lr: "()", sp:"_", short: false, vis_tag: true, vis_kana: true, kana_only: false
166
+ cutted = _tag str
160
167
  if short
161
168
  short = short.is_a?(Integer) ? short : 4
162
169
  cutted = cutted.map{[ *_1[0,2], (_1[2][0, short].downcase rescue nil) ]}
163
170
  end
164
171
 
165
172
  if s
166
- _stringify cutted, s: s, lr: lr, sp: sp, short: short, vis_tag: vis_kana, vis_kana: vis_tag
173
+ _stringify cutted, s: s, lr: lr, sp: sp, short: short, vis_tag: vis_kana, vis_kana: vis_tag, kana_only: kana_only
167
174
  else
168
175
  cutted = cutted.map{_1.values_at(* [0, vis_kana ? 1 : 0, vis_tag ? 2 : 0].uniq)}
169
176
  cutted[0].size == 1 ? cutted.flatten : cutted
@@ -172,10 +179,10 @@ module Igo
172
179
 
173
180
  case str
174
181
  when String
175
- singo_proc str, s: s, ns: ns, lr: lr, sp: sp, short: short, vis_tag: tag, vis_kana: kana
182
+ singo_proc str, s: s, ns: ns, lr: lr, sp: sp, short: short, vis_tag: tag, vis_kana: kana, kana_only: kana_only
176
183
  when Array
177
184
  async_query str, timeout do
178
- singo_proc _1, s: s, ns: ns, lr: lr, sp: sp, short: short, vis_tag: tag, vis_kana: kana
185
+ singo_proc _1, s: s, ns: ns, lr: lr, sp: sp, short: short, vis_tag: tag, vis_kana: kana, kana_only: kana_only
179
186
  end
180
187
  end
181
188
  # TODO
data/lib/igo/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Igo
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.5.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: igo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - saisui