rage_flip 2.2.1 → 2.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 +4 -4
- data/README.md +15 -172
- data/exe/frustrated +18 -0
- data/lib/rage_flip/frustrated.rb +7 -0
- data/lib/rage_flip/version.rb +1 -1
- data/lib/rage_flip.rb +1 -0
- data/spec/rage_flip_spec.rb +19 -0
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: db5be08744369388bbc29752411e903e25ad018bcf024f49401f0181519b5642
|
|
4
|
+
data.tar.gz: b9117dc053c098d74625f71cdbf32cd4ef50542fe2c5d315f93d0f37f584af91
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ed8150e74a80e424f5c97c153bf349a1a25261c67af53c26b2cce71849e31406ddbf8db651fb6532d16ffd80a71cb9a9ef9e7c5e1e154709ad3f25c716980b5f
|
|
7
|
+
data.tar.gz: 2bc6ba4473e0a81a8a9dbf86e18921d04d693bf3fcc566297ee477e3d7fc5287ceb8dbe9e55c6b7615ba620f0b890d5c9e6858c8fe82d19e7722a71ab6261c91
|
data/README.md
CHANGED
|
@@ -47,7 +47,7 @@ The classic table flip command flips text upside down with the iconic table flip
|
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
49
|
table_flip "Hello World"
|
|
50
|
-
# Output: (╯°□°)
|
|
50
|
+
# Output: (╯°□°)╯︵ plɹoM ollǝH ┻━┻
|
|
51
51
|
# Result is automatically copied to clipboard
|
|
52
52
|
```
|
|
53
53
|
|
|
@@ -71,9 +71,7 @@ The emote system provides a comprehensive collection of emoticons, text substitu
|
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
73
|
emote # List all available emotes
|
|
74
|
-
emote list # List all available emotes
|
|
75
|
-
emote categories # List all emote categories
|
|
76
|
-
emote category food # List emotes in the food category
|
|
74
|
+
emote list # List all available emotes
|
|
77
75
|
emote disapproval # Output: (ಠ_ಠ)
|
|
78
76
|
emote rage # Output: ಠ益ಠ
|
|
79
77
|
emote flip # Output: (╯°□°)╯︵ ┻━┻
|
|
@@ -129,143 +127,22 @@ emote yuno # Output: ლ(ಠ益ಠლ)
|
|
|
129
127
|
|
|
130
128
|
All emotes are accessed through the `emote` command followed by the emote name. Use `emote list` to see the complete collection of available emotes.
|
|
131
129
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
The emote system supports combining multiple emoji-only emotes into compound expressions. This allows you to create custom combinations on the fly:
|
|
135
|
-
|
|
136
|
-
**With Hyphens:**
|
|
137
|
-
```bash
|
|
138
|
-
emote bullshit-catshit # Output: 🐄💩🐱💩
|
|
139
|
-
emote omg-cat # Output: 😱🐱
|
|
140
|
-
emote dog-panda-cat # Output: 🐶🐼🐱
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
**Without Separators:**
|
|
144
|
-
```bash
|
|
145
|
-
emote bullshitcatshit # Output: 🐄💩🐱💩
|
|
146
|
-
emote omgcat # Output: 😱🐱 (also available as a standalone emote)
|
|
147
|
-
emote dogpandacat # Output: 🐶🐼🐱
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
The system uses dynamic programming to automatically detect and combine emoji-only emotes. Note that:
|
|
151
|
-
- Only emoji-only emotes can be combined (ASCII art emotes like `shrug` or `kungfuhamster` cannot be combined)
|
|
152
|
-
- The longest matching emote names are prioritized
|
|
153
|
-
- If an exact emote name exists (like `omgcat`), it will be used instead of parsing as a combination
|
|
154
|
-
|
|
155
|
-
**Example emoji-only emotes that can be combined:**
|
|
156
|
-
`bullshit`, `catshit`, `dogshit`, `pandashit`, `horseshit`, `koalashit`, `batshit`, `shboatload`, `popcorn`, `omg`, `omgcat`, `deer`, `middlefinger`, `noevil`
|
|
157
|
-
|
|
158
|
-
#### Emote Categories
|
|
159
|
-
|
|
160
|
-
The emote collection is organized into categories to help you discover and browse the 1,600+ available emotes:
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
# List all available categories
|
|
164
|
-
emote categories
|
|
165
|
-
# Shows all categories with descriptions and emote counts
|
|
166
|
-
|
|
167
|
-
# List emotes in a specific category
|
|
168
|
-
emote category food
|
|
169
|
-
# Shows all food & drink related emotes
|
|
170
|
-
|
|
171
|
-
emote category animals
|
|
172
|
-
# Shows all animal & nature emotes
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
**Available Categories:**
|
|
176
|
-
|
|
177
|
-
- **custom** - Custom ASCII Art and Text Emotes (17 emotes)
|
|
178
|
-
- Classic text-based emotes like `shrug`, `flip`, `disapproval`, `kungfuhamster`
|
|
179
|
-
|
|
180
|
-
- **keyboard** - Keyboard Shortcuts (8 emotes)
|
|
181
|
-
- Mac keyboard symbols: `cmd`, `option`, `shift`, `control`
|
|
182
|
-
|
|
183
|
-
- **smileys** - Smileys & People (215 emotes)
|
|
184
|
-
- Emoji faces and people: `smile`, `laugh`, `wink`, `thumbsup`, `facepalm`, etc.
|
|
185
|
-
|
|
186
|
-
- **animals** - Animals & Nature (210 emotes)
|
|
187
|
-
- Animals, plants, and nature: `cat`, `dog`, `deer`, `tree`, `flower`, etc.
|
|
188
|
-
|
|
189
|
-
- **combined** - Combined/Custom Emotes (9 emotes)
|
|
190
|
-
- Special combinations: `bullshit`, `catshit`, `dogshit`, `omgcat`, etc.
|
|
191
|
-
|
|
192
|
-
- **food** - Food & Drink (132 emotes)
|
|
193
|
-
- Food and beverages: `pizza`, `beer`, `coffee`, `taco`, `popcorn`, etc.
|
|
194
|
-
|
|
195
|
-
- **activity** - Activity (101 emotes)
|
|
196
|
-
- Sports and activities: `soccer`, `basketball`, `running`, `gaming`, etc.
|
|
197
|
-
|
|
198
|
-
- **travel** - Travel & Places (209 emotes)
|
|
199
|
-
- Locations and transportation: `car`, `plane`, `building`, `mountain`, etc.
|
|
200
|
-
|
|
201
|
-
- **objects** - Objects (242 emotes)
|
|
202
|
-
- Everyday objects: `phone`, `computer`, `book`, `gift`, etc.
|
|
203
|
-
|
|
204
|
-
- **symbols** - Symbols (216 emotes)
|
|
205
|
-
- Symbols and signs: `heart`, `star`, `check`, `warning`, etc.
|
|
206
|
-
|
|
207
|
-
- **flags** - Flags (261 emotes)
|
|
208
|
-
- Country and regional flags: `usa`, `canada`, `uk`, `japan`, etc.
|
|
209
|
-
|
|
210
|
-
Use `emote categories` to see the full list with emote counts, or `emote category <name>` to explore emotes within a specific category. This makes it easy to discover new emotes without having to browse the entire collection.
|
|
211
|
-
|
|
212
|
-
#### Custom Emotes
|
|
213
|
-
|
|
214
|
-
You can define your own custom emotes that persist across sessions:
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
# Initialize a custom emote configuration file
|
|
218
|
-
emote init-custom
|
|
219
|
-
# Creates ~/.config/rage_flip/emote.json with sample emotes
|
|
220
|
-
|
|
221
|
-
# List only your custom emotes
|
|
222
|
-
emote list-custom
|
|
223
|
-
# Shows all custom emotes and the config file location
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
**Configuration Format:**
|
|
227
|
-
|
|
228
|
-
Custom emotes can be defined in either JSON or YAML format:
|
|
229
|
-
|
|
230
|
-
**JSON** (`~/.config/rage_flip/emote.json`):
|
|
231
|
-
```json
|
|
232
|
-
{
|
|
233
|
-
"myemote": "🎉🎊",
|
|
234
|
-
"team": "👥💪",
|
|
235
|
-
"coffee": "☕"
|
|
236
|
-
}
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
**YAML** (`~/.config/rage_flip/emote.yml`):
|
|
240
|
-
```yaml
|
|
241
|
-
myemote: "🎉🎊"
|
|
242
|
-
team: "👥💪"
|
|
243
|
-
coffee: "☕"
|
|
244
|
-
```
|
|
130
|
+
### sarcasm
|
|
245
131
|
|
|
246
|
-
|
|
247
|
-
- Are automatically merged with built-in emotes
|
|
248
|
-
- Can override built-in emotes (use with caution)
|
|
249
|
-
- Support all emoji and Unicode characters
|
|
250
|
-
- Work with multi-emote combinations if they are emoji-only
|
|
251
|
-
- Persist across terminal sessions and system reboots
|
|
132
|
+
Alternates between uppercase and lowercase characters:
|
|
252
133
|
|
|
253
|
-
**Usage:**
|
|
254
134
|
```bash
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
emote team-coffee # Multi-emote combination: 👥💪☕
|
|
135
|
+
sarcasm "this is sarcastic"
|
|
136
|
+
# Output: ThIs Is SaRcAsTiC
|
|
258
137
|
```
|
|
259
138
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
### sarcasm
|
|
139
|
+
### frustrated
|
|
263
140
|
|
|
264
|
-
|
|
141
|
+
Converts text to uppercase with periods between words to express frustration:
|
|
265
142
|
|
|
266
143
|
```bash
|
|
267
|
-
|
|
268
|
-
# Output:
|
|
144
|
+
frustrated "one more day"
|
|
145
|
+
# Output: ONE. MORE. DAY.
|
|
269
146
|
```
|
|
270
147
|
|
|
271
148
|
### strikethrough
|
|
@@ -326,22 +203,10 @@ The gem automatically detects your platform and uses the appropriate clipboard c
|
|
|
326
203
|
|
|
327
204
|
- **macOS**: Uses `pbcopy`
|
|
328
205
|
- **Linux**: Uses `xclip` or `xsel` (install one of these first)
|
|
329
|
-
- **Windows**: Uses `clip`
|
|
206
|
+
- **Windows**: Uses `clip`
|
|
330
207
|
|
|
331
208
|
All commands automatically copy their output to the clipboard and display the result.
|
|
332
209
|
|
|
333
|
-
### Unicode Support on Windows
|
|
334
|
-
|
|
335
|
-
The Windows clipboard implementation has been specifically enhanced to handle Unicode characters correctly. The gem automatically converts text to UTF-16LE encoding with BOM (Byte Order Mark) before passing it to the Windows `clip` command. This ensures that Unicode characters such as:
|
|
336
|
-
|
|
337
|
-
- Rage flip emoticons: `(ノಠ益ಠ)ノ彡┻━┻`
|
|
338
|
-
- Flipped text characters: `ʇsǝʇ`
|
|
339
|
-
- Emoji characters: `🐄💩`
|
|
340
|
-
- Accented characters: `café résumé naïve`
|
|
341
|
-
- International text: `こんにちは`, `测试文本`
|
|
342
|
-
|
|
343
|
-
...are properly preserved when copied to the clipboard and can be pasted correctly into other applications.
|
|
344
|
-
|
|
345
210
|
## Character Mappings
|
|
346
211
|
|
|
347
212
|
The flip functionality uses comprehensive character mappings including:
|
|
@@ -403,6 +268,10 @@ RageFlip::Flipper.flip_text("Hello")
|
|
|
403
268
|
RageFlip::Sarcasm.process("hello world")
|
|
404
269
|
# => "HeLlO WoRlD"
|
|
405
270
|
|
|
271
|
+
# Frustrated text
|
|
272
|
+
RageFlip::Frustrated.process("one more day")
|
|
273
|
+
# => "ONE. MORE. DAY."
|
|
274
|
+
|
|
406
275
|
# Strikethrough
|
|
407
276
|
RageFlip::Strikethrough.process("text")
|
|
408
277
|
# => "t̶e̶x̶t̶"
|
|
@@ -431,16 +300,6 @@ RageFlip::Emote.process("cmd")
|
|
|
431
300
|
RageFlip::Emote.process("shrug")
|
|
432
301
|
# => "¯\_(ツ)_/¯"
|
|
433
302
|
|
|
434
|
-
# Multi-emote combinations
|
|
435
|
-
RageFlip::Emote.process("bullshit-catshit")
|
|
436
|
-
# => "🐄💩🐱💩"
|
|
437
|
-
|
|
438
|
-
RageFlip::Emote.process("bullshitcatshit")
|
|
439
|
-
# => "🐄💩🐱💩"
|
|
440
|
-
|
|
441
|
-
RageFlip::Emote.process("omg-deer-popcorn")
|
|
442
|
-
# => "😱🦌🍿"
|
|
443
|
-
|
|
444
303
|
RageFlip::Emote.list_emotes
|
|
445
304
|
# => "Available emotes:\n batshit - 🦇💩\n bugeyes - (⊙_◎)\n..."
|
|
446
305
|
|
|
@@ -452,22 +311,6 @@ RageFlip::Emote.emote_exists?("rage")
|
|
|
452
311
|
RageFlip::Emote.emote_names
|
|
453
312
|
# => ["disapproval", "bullshit", "catshit", ...]
|
|
454
313
|
|
|
455
|
-
# Custom emotes
|
|
456
|
-
RageFlip::Emote.init_custom_config
|
|
457
|
-
# => "Custom emote config initialized: ~/.config/rage_flip/emote.json\nEdit this file..."
|
|
458
|
-
|
|
459
|
-
RageFlip::Emote.list_custom_emotes
|
|
460
|
-
# => "Custom emotes:\n myemote - 🎉🎊\n..."
|
|
461
|
-
|
|
462
|
-
RageFlip::Emote.load_custom_emotes
|
|
463
|
-
# => {"myemote" => "🎉🎊", "team" => "👥💪", ...}
|
|
464
|
-
|
|
465
|
-
RageFlip::Emote.all_emotes
|
|
466
|
-
# => {"disapproval" => "(ಠ_ಠ)", "bullshit" => "🐄💩", "myemote" => "🎉🎊", ...}
|
|
467
|
-
|
|
468
|
-
RageFlip::Emote.refresh_emotes
|
|
469
|
-
# Reloads custom emotes from disk (useful after editing config file)
|
|
470
|
-
|
|
471
314
|
# Copy to clipboard
|
|
472
315
|
RageFlip::Clipboard.copy("text to copy")
|
|
473
316
|
```
|
data/exe/frustrated
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require_relative "../lib/rage_flip"
|
|
4
|
+
|
|
5
|
+
text = ARGV.join(" ")
|
|
6
|
+
|
|
7
|
+
if text.empty?
|
|
8
|
+
puts "Usage: frustrated <text_to_frustrated>"
|
|
9
|
+
exit 1
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
result = RageFlip::Frustrated.process(text)
|
|
13
|
+
|
|
14
|
+
if RageFlip::Clipboard.copy(result)
|
|
15
|
+
else
|
|
16
|
+
puts "Failed to copy to clipboard, but here's your frustrated text:"
|
|
17
|
+
end
|
|
18
|
+
puts result
|
data/lib/rage_flip/version.rb
CHANGED
data/lib/rage_flip.rb
CHANGED
data/spec/rage_flip_spec.rb
CHANGED
|
@@ -45,6 +45,25 @@ RSpec.describe RageFlip do
|
|
|
45
45
|
end
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
+
describe RageFlip::Frustrated do
|
|
49
|
+
describe ".process" do
|
|
50
|
+
it "uppercases words and joins with periods" do
|
|
51
|
+
result = RageFlip::Frustrated.process("one more day")
|
|
52
|
+
expect(result).to eq("ONE. MORE. DAY.")
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "handles single word" do
|
|
56
|
+
result = RageFlip::Frustrated.process("hello")
|
|
57
|
+
expect(result).to eq("HELLO.")
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "handles multiple spaces" do
|
|
61
|
+
result = RageFlip::Frustrated.process("why is this")
|
|
62
|
+
expect(result).to eq("WHY. IS. THIS.")
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
48
67
|
describe RageFlip::Strikethrough do
|
|
49
68
|
describe ".process" do
|
|
50
69
|
it "adds strikethrough characters" do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rage_flip
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thomas Powell
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-05-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -50,6 +50,7 @@ executables:
|
|
|
50
50
|
- emote
|
|
51
51
|
- flip
|
|
52
52
|
- flip_text
|
|
53
|
+
- frustrated
|
|
53
54
|
- rage_flip
|
|
54
55
|
- sarcasm
|
|
55
56
|
- strikethrough
|
|
@@ -73,6 +74,7 @@ files:
|
|
|
73
74
|
- exe/emote
|
|
74
75
|
- exe/flip
|
|
75
76
|
- exe/flip_text
|
|
77
|
+
- exe/frustrated
|
|
76
78
|
- exe/rage_flip
|
|
77
79
|
- exe/sarcasm
|
|
78
80
|
- exe/strikethrough
|
|
@@ -83,6 +85,7 @@ files:
|
|
|
83
85
|
- lib/rage_flip/clipboard.rb
|
|
84
86
|
- lib/rage_flip/emote.rb
|
|
85
87
|
- lib/rage_flip/flipper.rb
|
|
88
|
+
- lib/rage_flip/frustrated.rb
|
|
86
89
|
- lib/rage_flip/sarcasm.rb
|
|
87
90
|
- lib/rage_flip/strikethrough.rb
|
|
88
91
|
- lib/rage_flip/text_substitution.rb
|