owoify_rb 0.1.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b497d9273a9d0c4bebc22ed77e3ce53c91927025b3bb0b6f0f163fd29f32763
4
- data.tar.gz: c3d63ee03bc86c20f2745a7dfdbb3cbbbb9ce9d11c6c4fbece1d7ec0d08c8cc7
3
+ metadata.gz: 8bfdaf39ff9167c0f5b58c934c3e50dc68577a00da66db3fd15d95a084f7f3dc
4
+ data.tar.gz: 6a13242bf4fe671035201edd323814c9732cbc6758ceffb7e34bee4348387307
5
5
  SHA512:
6
- metadata.gz: 0d5bffe0b326d4a2e1eeaa0b3626d9140a7a445fa66df206db409e793104230d10b1341223b3ed8956d2f660397f53384e73d268cda2baf70511f3cfb1ee9868
7
- data.tar.gz: 12fe19105c9fa150cffa701688afb0934003f4019605b0a4db1362c604bf7de53cfc66becb9f74573b016a8ec508483e5bb3df019be7f775782c008ccb324b7b
6
+ metadata.gz: 04e6d762b910e25fd80e11ab0045d7992b27486f5ef39c3f760819dcf11eb03ae59d9c69639ae1a0cb598ca77a2fc39ae005d5b95b514a0b01f6a24e32f0ab4f
7
+ data.tar.gz: bd6c8d2eb008957dc5d357d595aa4d8715070c77d13bd5d441684c50012853a228e4d19efc469bb2440b284bdfff146372a2c4390664e41aafd407f410d9756d
data/lib/owoify_rb.rb CHANGED
@@ -9,29 +9,31 @@ require 'utility/presets'
9
9
  module Owoify
10
10
  # The main entry point of the owoify function.
11
11
  # Pass in the source string and the desired owoify level.
12
- def self.owoify(source, level = 'owo')
12
+ # @param [String] source The source string to owoify.
13
+ # @param [Symbol] level The desired owoness level of the result string.
14
+ # @return [String] The owoified string according to the specified owoness level.
15
+ def self.owoify(source, level = :owo)
13
16
  word_matches = source.scan(/[^\s]+/).flatten
14
17
  space_matches = source.scan(/\s+/).flatten
15
18
  words = word_matches.map { |x| Word.new(x) }
16
19
  spaces = space_matches.map { |x| Word.new(x) }
17
- actual_level = level.downcase
18
20
  words.map! do |w|
19
21
  SPECIFIC_WORD_MAPPING_LIST.each do |f|
20
22
  w = f.call(w)
21
23
  end
22
- case actual_level
23
- when 'owo'
24
+ case level
25
+ when :owo
24
26
  OWO_MAPPING_LIST.each do |f|
25
27
  w = f.call(w)
26
28
  end
27
- when 'uwu'
29
+ when :uwu
28
30
  UWU_MAPPING_LIST.each do |f|
29
31
  w = f.call(w)
30
32
  end
31
33
  OWO_MAPPING_LIST.each do |f|
32
34
  w = f.call(w)
33
35
  end
34
- when 'uvu'
36
+ when :uvu
35
37
  UVU_MAPPING_LIST.each do |f|
36
38
  w = f.call(w)
37
39
  end
@@ -51,4 +53,18 @@ module Owoify
51
53
  result_strings = result.map(&:to_s)
52
54
  result_strings.join
53
55
  end
56
+
57
+ # Owoify the source string using :uwu owoness.
58
+ # @param [String] source The source string to owoify
59
+ # @return [String] The owoified string using :uwu owoness level.
60
+ def self.uwuify(source)
61
+ self.owoify(source, :uwu)
62
+ end
63
+
64
+ # Owoify the source string using :uvu owoness.
65
+ # @param [String] source The source string to owoify
66
+ # @return [String] The owoified string using :uvu owoness level.
67
+ def self.uvuify(source)
68
+ self.owoify(source, :uvu)
69
+ end
54
70
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+
3
4
  def interleave_arrays(a, b)
4
5
  arr = []
5
6
  observed = a
6
7
  other = b
7
- temp = []
8
8
 
9
9
  while observed.length.positive?
10
10
  arr.push(observed.delete_at(0))
@@ -46,10 +46,14 @@ LY_TO_WY_UPPER = /Ly/.freeze
46
46
  LY_TO_WY_LOWER = /ly/.freeze
47
47
  PLE_TO_PWE = /([Pp])le/.freeze
48
48
  NR_TO_NW_UPPER = /NR/.freeze
49
- NR_TO_NW_LOWER = /nr/.freeze
49
+ NR_TO_NW_LOWER = /([Nn])r/.freeze
50
+ MEM_TO_MWEM_UPPER = /Mem/.freeze
51
+ MEM_TO_MWEM_LOWER = /mem/.freeze
52
+ NYWO_TO_NYO = /([Nn])ywo/.freeze
50
53
  FUC_TO_FWUC = /([Ff])uc/.freeze
51
54
  MOM_TO_MWOM = /([Mm])om/.freeze
52
- ME_TO_MWE = /([Mm])e/.freeze
55
+ ME_TO_MWE_UPPER = /^Me$/.freeze
56
+ ME_TO_MWE_LOWER = /^me$/.freeze
53
57
  N_VOWEL_TO_NY_FIRST = /n([aeiou])/.freeze
54
58
  N_VOWEL_TO_NY_SECOND = /N([aeiou])/.freeze
55
59
  N_VOWEL_TO_NY_THIRD = /N([AEIOU])/.freeze
@@ -62,6 +66,15 @@ YOU_TO_U_LOWER = /\byou\b/.freeze
62
66
  TIME_TO_TIM = /\b([Tt])ime\b/.freeze
63
67
  OVER_TO_OWOR = /([Oo])ver/.freeze
64
68
  WORSE_TO_WOSE = /([Ww])orse/.freeze
69
+ GREAT_TO_GWATE = /([Gg])reat/.freeze
70
+ AVIAT_TO_AWIAT = /([Aa])viat/.freeze
71
+ DEDICAT_TO_DEDITAT = /([Dd])edicat/.freeze
72
+ REMEMBER_TO_REMBER = /([Rr])emember/.freeze
73
+ WHEN_TO_WEN = /([Ww])hen/.freeze
74
+ FRIGHTENED_TO_FRIGTEN = /([Ff])righten(ed)*/.freeze
75
+ MEME_TO_MEM_FIRST = /Meme/.freeze
76
+ MEME_TO_MEM_SECOND = /Mem/.freeze
77
+ FEEL_TO_FELL = /^([Ff])eel$/.freeze
65
78
 
66
79
  FACES = [
67
80
  '(・`ω´・)', ';;w;;', 'owo', 'UwU', '>w<', '^w^', '(* ^ ω ^)',
@@ -211,10 +224,19 @@ module Mapping
211
224
  end
212
225
 
213
226
  MAP_NR_TO_NW = lambda do |input|
214
- input.replace(NR_TO_NW_LOWER, 'nw')
227
+ input.replace(NR_TO_NW_LOWER, '\1w')
215
228
  .replace(NR_TO_NW_UPPER, 'NW')
216
229
  end
217
230
 
231
+ MAP_MEM_TO_MWEM = lambda do |input|
232
+ input.replace(MEM_TO_MWEM_UPPER, 'mwem')
233
+ .replace(MEM_TO_MWEM_LOWER, 'Mwem')
234
+ end
235
+
236
+ UNMAP_NYWO_TO_NYO = lambda do |input|
237
+ input.replace(NYWO_TO_NYO, '\1yo')
238
+ end
239
+
218
240
  MAP_FUC_TO_FWUC = lambda do |input|
219
241
  input.replace(FUC_TO_FWUC, '\1wuc')
220
242
  end
@@ -224,7 +246,8 @@ module Mapping
224
246
  end
225
247
 
226
248
  MAP_ME_TO_MWE = lambda do |input|
227
- input.replace(ME_TO_MWE, '\1we')
249
+ input.replace(ME_TO_MWE_UPPER, 'Mwe')
250
+ .replace(ME_TO_MWE_LOWER, 'mwe')
228
251
  end
229
252
 
230
253
  MAP_N_VOWEL_TO_NY = lambda do |input|
@@ -262,4 +285,37 @@ module Mapping
262
285
  MAP_WORSE_TO_WOSE = lambda do |input|
263
286
  input.replace(WORSE_TO_WOSE, '\1ose')
264
287
  end
288
+
289
+ MAP_GREAT_TO_GWATE = lambda do |input|
290
+ input.replace(GREAT_TO_GWATE, '\1wate')
291
+ end
292
+
293
+ MAP_AVIAT_TO_AWIAT = lambda do |input|
294
+ input.replace(AVIAT_TO_AWIAT, '\1wiat')
295
+ end
296
+
297
+ MAP_DEDICAT_TO_DEDITAT = lambda do |input|
298
+ input.replace(DEDICAT_TO_DEDITAT, '\1editat')
299
+ end
300
+
301
+ MAP_REMEMBER_TO_REMBER = lambda do |input|
302
+ input.replace(REMEMBER_TO_REMBER, '\1ember')
303
+ end
304
+
305
+ MAP_WHEN_TO_WEN = lambda do |input|
306
+ input.replace(WHEN_TO_WEN, '\1en')
307
+ end
308
+
309
+ MAP_FRIGHTENED_TO_FRIGTEN = lambda do |input|
310
+ input.replace(FRIGHTENED_TO_FRIGTEN, '\1rigten')
311
+ end
312
+
313
+ MAP_MEME_TO_MEM = lambda do |input|
314
+ input.replace(MEME_TO_MEM_FIRST, 'mem')
315
+ .replace(MEME_TO_MEM_SECOND, 'Mem')
316
+ end
317
+
318
+ MAP_FEEL_TO_FELL = lambda do |input|
319
+ input.replace(FEEL_TO_FELL, '\1ell')
320
+ end
265
321
  end
@@ -4,8 +4,11 @@ require 'utility/mapping'
4
4
 
5
5
  SPECIFIC_WORD_MAPPING_LIST = [
6
6
  Mapping::MAP_FUC_TO_FWUC, Mapping::MAP_MOM_TO_MWOM, Mapping::MAP_TIME_TO_TIM, Mapping::MAP_ME_TO_MWE,
7
- Mapping::MAP_N_VOWEL_TO_NY, Mapping::MAP_OVER_TO_OWOR, Mapping::MAP_OVE_TO_UV, Mapping::MAP_HAHA_TO_HEHE_XD,
8
- Mapping::MAP_THE_TO_TEH, Mapping::MAP_YOU_TO_U, Mapping::MAP_READ_TO_WEAD, Mapping::MAP_WORSE_TO_WOSE
7
+ Mapping::MAP_OVER_TO_OWOR, Mapping::MAP_OVE_TO_UV, Mapping::MAP_HAHA_TO_HEHE_XD,
8
+ Mapping::MAP_THE_TO_TEH, Mapping::MAP_YOU_TO_U, Mapping::MAP_READ_TO_WEAD, Mapping::MAP_WORSE_TO_WOSE,
9
+ Mapping::MAP_GREAT_TO_GWATE, Mapping::MAP_AVIAT_TO_AWIAT, Mapping::MAP_DEDICAT_TO_DEDITAT,
10
+ Mapping::MAP_REMEMBER_TO_REMBER, Mapping::MAP_WHEN_TO_WEN, Mapping::MAP_FRIGHTENED_TO_FRIGTEN,
11
+ Mapping::MAP_MEME_TO_MEM, Mapping::MAP_FEEL_TO_FELL
9
12
  ].freeze
10
13
 
11
14
  UVU_MAPPING_LIST = [
@@ -20,9 +23,10 @@ UWU_MAPPING_LIST = [
20
23
  ].freeze
21
24
 
22
25
  OWO_MAPPING_LIST = [
23
- Mapping::MAP_LL_TO_WW, Mapping::MAP_VOWEL_OR_R_EXCEPT_O_L_TO_WL, Mapping::MAP_OLD_TO_OWLD,
26
+ Mapping::MAP_N_VOWEL_TO_NY, Mapping::MAP_LL_TO_WW, Mapping::MAP_VOWEL_OR_R_EXCEPT_O_L_TO_WL, Mapping::MAP_OLD_TO_OWLD,
24
27
  Mapping::MAP_OL_TO_OWL, Mapping::MAP_L_OR_R_O_TO_WO, Mapping::MAP_SPECIFIC_CONSONANTS_O_TO_LETTER_AND_WO,
25
28
  Mapping::MAP_V_OR_W_LE_TO_WAL, Mapping::MAP_FI_TO_FWI, Mapping::MAP_VER_TO_WER, Mapping::MAP_POI_TO_PWOI,
26
29
  Mapping::MAP_SPECIFIC_CONSONANTS_LE_TO_LETTER_AND_WAL, Mapping::MAP_CONSONANT_R_TO_CONSONANT_W,
27
- Mapping::MAP_LY_TO_WY, Mapping::MAP_PLE_TO_PWE, Mapping::MAP_NR_TO_NW
30
+ Mapping::MAP_LY_TO_WY, Mapping::MAP_PLE_TO_PWE, Mapping::MAP_NR_TO_NW, Mapping::MAP_MEM_TO_MWEM,
31
+ Mapping::UNMAP_NYWO_TO_NYO
28
32
  ].freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: owoify_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chehui Chou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-27 00:00:00.000000000 Z
11
+ date: 2023-12-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This is a Ruby port of mohan-cao's owoify-js, which will help you turn
14
14
  any string into nonsensical babyspeak similar to LeafySweet's infamous Chrome extension.
@@ -42,7 +42,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0'
44
44
  requirements: []
45
- rubygems_version: 3.2.3
45
+ rubygems_version: 3.3.7
46
46
  signing_key:
47
47
  specification_version: 4
48
48
  summary: Turning your worst nightmare into a Ruby gem.