borkalyzer 1.0.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 +7 -0
- data/README.md +60 -0
- data/lib/borkalyzer.rb +160 -0
- metadata +88 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ad6c2ba799b45fd4c207a6b0ed8c50c94d847ebc
|
4
|
+
data.tar.gz: '058d168167cb2a4e1de30dd8bd790b538cdc80f7'
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 68b555f9ec0d6eca4ec811112999941a81056b8c6250781c39a2c8c92fae3cb62989ca1a5253e517810b9811696757c48ad54bcbc6137acb22a74ffae086d9ad
|
7
|
+
data.tar.gz: 9ee27ffeae8d7681aea0bc3ce7a49ea33f25d007c14f524d4f82b89b712c5e0d7d99cc3e507095d23f3c53d2b82b6339e3272d7ee9676c8e4acc52572071da90
|
data/README.md
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
# Borkalyzer
|
2
|
+
|
3
|
+
[](https://codeclimate.com/github/brundage/borkalyzer)
|
4
|
+
|
5
|
+
## Enstelleshun
|
6
|
+
|
7
|
+
Edd thes lene-a tu yuoor eppleceshun's Gemffele-a:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'borkalyzer'
|
11
|
+
```
|
12
|
+
|
13
|
+
Und then ixecoote-a:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Oor enstell et yuoorselff es:
|
18
|
+
|
19
|
+
$ gem install borkalyzer
|
20
|
+
|
21
|
+
## Usege-a
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
Borkalyzer.bork 'some string'
|
25
|
+
=> "sume-a streng"
|
26
|
+
```
|
27
|
+
|
28
|
+
# En Reels
|
29
|
+
|
30
|
+
Borkalyzer munkey-petches zee Streng cless... coose-a thet's zee Reels Vey ... und edds String#bork
|
31
|
+
|
32
|
+
Noo yuoo cun du cuul stooffff leke-a
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
# app/views/users/show.html.erb
|
36
|
+
|
37
|
+
<%= "#{@user.name} updated his status".bork %>
|
38
|
+
```
|
39
|
+
Prudooces
|
40
|
+
|
41
|
+
```
|
42
|
+
Deun updeted hes stetoos
|
43
|
+
```
|
44
|
+
|
45
|
+
## Defelupment
|
46
|
+
|
47
|
+
Effter checkeng oooot zee repu, roon `ben/setoop` tu enstell dependencees. Then, roon `reke-a spec` tu roon zee tests. Yuoo cun elsu roon `ben/cunsule-a` fur un enterectefe-a prumpt thet vell elloo yuoo tu ixperement.
|
48
|
+
|
49
|
+
Tu enstell thes gem oontu yuoor lucel mechene-a, roon `boondle-a ixec reke-a enstell`. Tu releese-a e noo ferseun, updete-a zee ferseun noomber en `ferseun.rb`, und then roon `boondle-a ixec reke-a releese-a`, vhech vell creete-a e get teg fur zee ferseun, poosh get cummets und tegs, und poosh zee `.gem` fele-a tu [roobygems.oorg](https://rubygems.org).
|
50
|
+
|
51
|
+
## Cuntrebooteng
|
52
|
+
|
53
|
+
Boog repurts und pooll reqooests ere-a velcume-a oon [GetHoob](https://github.com/brundage/borkalyzer).
|
54
|
+
|
55
|
+
|
56
|
+
## Lecense-a
|
57
|
+
|
58
|
+
Zee gem es efeeleble-a es oopen suoorce-a under zee terms ooff zee [MIT Lecense-a](http://opensource.org/licenses/MIT).
|
59
|
+
|
60
|
+
Bork Bork Bork!
|
data/lib/borkalyzer.rb
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'strscan'
|
3
|
+
|
4
|
+
module Borkalyzer
|
5
|
+
extend self
|
6
|
+
|
7
|
+
VERSION = '1.0.0'
|
8
|
+
|
9
|
+
BEGINNING_REGEXP = /^an|^a|^en|^e|^f|^o|^u|^the$|^bork$/.freeze
|
10
|
+
ENDING_REGEXP = /tion$|a$|e$|ow$|ow$|o$|u$/.freeze
|
11
|
+
|
12
|
+
module StringMethods
|
13
|
+
def bork; Borkalyzer.bork(self); end
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
def bork(string)
|
18
|
+
result = ''
|
19
|
+
s = StringScanner.new(string)
|
20
|
+
until s.eos? do
|
21
|
+
word = s.scan(/\w+|\W+/)
|
22
|
+
result << if( word =~ /^\W+$/ )
|
23
|
+
tr_nonword word
|
24
|
+
else
|
25
|
+
tr_word word
|
26
|
+
end
|
27
|
+
end
|
28
|
+
result
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
def monkey_patch(mod)
|
33
|
+
mod.send :include, self.const_get(:StringMethods)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def tr_nonword(nonword)
|
39
|
+
if nonword =~ /\n/
|
40
|
+
nonword + "Bork Bork Bork!\n"
|
41
|
+
else
|
42
|
+
nonword
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def tr_word(word)
|
47
|
+
return if word.nil?
|
48
|
+
capitalized = (word == word.capitalize)
|
49
|
+
upcased = (word == word.upcase)
|
50
|
+
array = split(word.downcase)
|
51
|
+
borked = tr_beginning(array[0]) + tr_middle(array[1]) + tr_end(array[2])
|
52
|
+
borked = borked.capitalize if capitalized
|
53
|
+
borked = borked.upcase if upcased
|
54
|
+
return borked
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
def split(word)
|
59
|
+
b = beginning(word)
|
60
|
+
[b[0]] + ending(b[1])
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
def beginning(word)
|
65
|
+
result = word.partition BEGINNING_REGEXP
|
66
|
+
result[0] == "" ? result[1..2] : ["", word]
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
def ending(word)
|
71
|
+
result = word.rpartition ENDING_REGEXP
|
72
|
+
result[1] == "" ? [word, ""] : result[0..1]
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
def matches(regexp:, word:)
|
78
|
+
m = regexp.match(word)
|
79
|
+
m.nil? ? m : m.captures.join
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
def beginning_transforms
|
84
|
+
@beginning_transforms ||= { 'a' => 'e',
|
85
|
+
'an' => 'un',
|
86
|
+
'au' => 'oo',
|
87
|
+
'e' => 'i',
|
88
|
+
'en' => 'ee',
|
89
|
+
'i' => 'e',
|
90
|
+
'o' => 'oo',
|
91
|
+
'the' => 'zee'
|
92
|
+
}
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
def ending_transforms
|
97
|
+
@ending_transforms ||= { 'au' => 'oo',
|
98
|
+
'e' => 'e-a',
|
99
|
+
'o' => 'u',
|
100
|
+
'ow' => 'oo',
|
101
|
+
'tion' => 'shun',
|
102
|
+
'u' => 'oo'
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
def tr_part(lookup:, part:)
|
108
|
+
lookup.has_key?(part) ? lookup[part] : part
|
109
|
+
end
|
110
|
+
|
111
|
+
|
112
|
+
def tr_beginning(part)
|
113
|
+
tr_part part: part, lookup: beginning_transforms
|
114
|
+
end
|
115
|
+
|
116
|
+
|
117
|
+
def tr_end(part)
|
118
|
+
tr_part part: part, lookup: ending_transforms
|
119
|
+
end
|
120
|
+
|
121
|
+
|
122
|
+
def middle_transforms
|
123
|
+
@middle_transforms ||= { 'a' => 'e',
|
124
|
+
'an' => 'un',
|
125
|
+
'au' => 'oo',
|
126
|
+
'ew' => 'oo',
|
127
|
+
'f' => 'ff',
|
128
|
+
'i' => 'e',
|
129
|
+
'ii' => 'eei',
|
130
|
+
'ir' => 'ur',
|
131
|
+
'o' => 'u',
|
132
|
+
'ow' => 'oo',
|
133
|
+
'u' => 'oo',
|
134
|
+
'v' => 'f',
|
135
|
+
'w' => 'v'
|
136
|
+
}
|
137
|
+
end
|
138
|
+
|
139
|
+
|
140
|
+
def tr_middle(middle)
|
141
|
+
result = ''
|
142
|
+
s = StringScanner.new middle
|
143
|
+
until s.eos? do
|
144
|
+
ch = s.scan(/./)
|
145
|
+
peek = ch + s.peek(1)
|
146
|
+
result << if( middle_transforms.has_key?(peek) )
|
147
|
+
s.pos += 1 unless s.eos?
|
148
|
+
middle_transforms[peek]
|
149
|
+
else
|
150
|
+
tr_part part: ch, lookup: middle_transforms
|
151
|
+
end
|
152
|
+
end
|
153
|
+
result
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
|
158
|
+
if defined?(Rails)
|
159
|
+
Borkalyzer.monkey_patch(String)
|
160
|
+
end
|
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: borkalyzer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dean Brundage
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-12-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.13'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.13'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: guard-rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: E rooby gem tu borkelyze-a strengs
|
56
|
+
email:
|
57
|
+
- dean@deanandadie.net
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- README.md
|
63
|
+
- lib/borkalyzer.rb
|
64
|
+
homepage: https://github.com/brundage/borkalyzer
|
65
|
+
licenses:
|
66
|
+
- MIT
|
67
|
+
metadata: {}
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options: []
|
70
|
+
require_paths:
|
71
|
+
- lib
|
72
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
requirements: []
|
83
|
+
rubyforge_project:
|
84
|
+
rubygems_version: 2.5.2
|
85
|
+
signing_key:
|
86
|
+
specification_version: 4
|
87
|
+
summary: Borkalyzes strings
|
88
|
+
test_files: []
|