omnibar 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +18 -2
- data/README.md +10 -0
- data/lib/omnibar.rb +15 -0
- data/lib/omnibar/calculate.rb +1 -1
- data/lib/omnibar/emoji.rb +353 -0
- data/lib/omnibar/popular.rb +0 -2
- data/lib/omnibar/query.rb +4 -0
- data/lib/omnibar/renderer.rb +10 -2
- data/lib/omnibar/snippet.rb +26 -0
- data/lib/omnibar/spell.rb +21 -0
- data/lib/omnibar/system.rb +27 -0
- data/lib/omnibar/version.rb +1 -1
- data/omnibar.gemspec +4 -2
- metadata +45 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ac95e6ea1b99df44bf41c79f7a3790b3f579753
|
4
|
+
data.tar.gz: 3d3b992d0cd08ae4e45f6e6df63b8de5ad9a2af3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aad77472a565a347b6b9ae4db75294b9f3976ae515be84e5a17d2f40cc9075c1c96904a732694d838d2d76a237c80912afa2b96fc16866c04e8041d1c5881b06
|
7
|
+
data.tar.gz: 779c6a126717a08620abf45d43575d32a3900c30119c25c38d5c723a7a6577750b783479527d8799b5c4cd6c175b6a2f7a3534c2f9866b9537d85ecd9401f55b
|
data/Gemfile.lock
CHANGED
@@ -1,18 +1,34 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
omnibar (0.0.
|
4
|
+
omnibar (0.0.5)
|
5
|
+
amatch (~> 0.4.0)
|
5
6
|
dry-configurable (~> 0.7.0)
|
6
|
-
|
7
|
+
ffi-aspell (~> 1.1, >= 1.1.0)
|
8
|
+
fuzzy_match (~> 2.1, >= 2.1.0)
|
7
9
|
|
8
10
|
GEM
|
9
11
|
remote: https://rubygems.org/
|
10
12
|
specs:
|
13
|
+
amatch (0.4.0)
|
14
|
+
mize
|
15
|
+
tins (~> 1.0)
|
11
16
|
concurrent-ruby (1.0.5)
|
12
17
|
dry-configurable (0.7.0)
|
13
18
|
concurrent-ruby (~> 1.0)
|
19
|
+
ffi (1.9.18)
|
20
|
+
ffi-aspell (1.1.0)
|
21
|
+
ffi
|
14
22
|
fuzzy_match (2.1.0)
|
23
|
+
mize (0.3.4)
|
24
|
+
protocol
|
25
|
+
protocol (1.0.1)
|
26
|
+
ruby_parser (~> 3.0)
|
15
27
|
rake (10.5.0)
|
28
|
+
ruby_parser (3.10.1)
|
29
|
+
sexp_processor (~> 4.9)
|
30
|
+
sexp_processor (4.10.0)
|
31
|
+
tins (1.15.0)
|
16
32
|
|
17
33
|
PLATFORMS
|
18
34
|
ruby
|
data/README.md
CHANGED
@@ -36,6 +36,16 @@ end
|
|
36
36
|
| render.highlight.bg | Symbol | `:yellow` |
|
37
37
|
| events.after_perform | Lambda | `-> {}` |
|
38
38
|
|
39
|
+
## OS Limitations
|
40
|
+
|
41
|
+
This gem has been developed on Ubuntu, and should work on most linux distributions.
|
42
|
+
All the code is in ruby, but there are several dependencies that are linux-only.
|
43
|
+
|
44
|
+
| Library | Usage |
|
45
|
+
|---------|-------|
|
46
|
+
| xdg-open | Opening urls and files |
|
47
|
+
| GNU aspell | Spell checking and suggestions |
|
48
|
+
|
39
49
|
## Contributing
|
40
50
|
|
41
51
|
Bug reports and pull requests are welcome on GitHub at https://github.com/shreve/omnibar.
|
data/lib/omnibar.rb
CHANGED
@@ -1,9 +1,16 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
require 'dry-configurable'
|
3
|
+
require 'fuzzy_match'
|
4
|
+
require 'amatch'
|
2
5
|
|
3
6
|
require 'omnibar/version'
|
4
7
|
require 'omnibar/app'
|
5
8
|
|
6
9
|
require 'omnibar/calculate'
|
10
|
+
require 'omnibar/emoji'
|
11
|
+
require 'omnibar/spell'
|
12
|
+
require 'omnibar/system'
|
13
|
+
require 'omnibar/snippet'
|
7
14
|
require 'omnibar/github'
|
8
15
|
require 'omnibar/popular'
|
9
16
|
require 'omnibar/duck_duck_go'
|
@@ -20,6 +27,12 @@ module Omnibar
|
|
20
27
|
setting :sites, []
|
21
28
|
end
|
22
29
|
|
30
|
+
setting :spell do
|
31
|
+
setting :dict, '/usr/share/dict/american-english'
|
32
|
+
end
|
33
|
+
|
34
|
+
setting :snippets, 'shrug' => '¯\_(ツ)_/¯'
|
35
|
+
|
23
36
|
setting :render do
|
24
37
|
setting :prompt, ->(width) { ('-' * width) << '>' }
|
25
38
|
|
@@ -38,3 +51,5 @@ module Omnibar
|
|
38
51
|
rescue LoadError => _
|
39
52
|
end
|
40
53
|
end
|
54
|
+
|
55
|
+
FuzzyMatch.engine = :amatch
|
data/lib/omnibar/calculate.rb
CHANGED
@@ -0,0 +1,353 @@
|
|
1
|
+
module Omnibar
|
2
|
+
class Emoji < Query
|
3
|
+
|
4
|
+
def result
|
5
|
+
key = search.find(input)
|
6
|
+
value = DICTIONARY[key]
|
7
|
+
|
8
|
+
"#{key} :: #{value}" if (key and value)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.search
|
12
|
+
@fm ||= FuzzyMatch.new(DICTIONARY.keys)
|
13
|
+
end
|
14
|
+
|
15
|
+
def search
|
16
|
+
self.class.search
|
17
|
+
end
|
18
|
+
|
19
|
+
def perform!
|
20
|
+
copy_to_clipboard DICTIONARY[search.find(input)]
|
21
|
+
end
|
22
|
+
|
23
|
+
DICTIONARY = {
|
24
|
+
"grinning" => "\u{1f600}",
|
25
|
+
"smiley" => "\u{1f603}",
|
26
|
+
"smile" => "\u{1f604}",
|
27
|
+
"grin" => "\u{1f601}",
|
28
|
+
"laughing" => "\u{1f606}",
|
29
|
+
"sweat_smile" => "\u{1f605}",
|
30
|
+
"joy" => "\u{1f602}",
|
31
|
+
"rofl" => "\u{1f923}",
|
32
|
+
"relaxed" => "\u{263a}",
|
33
|
+
"blush" => "\u{1f60a}",
|
34
|
+
"innocent" => "\u{1f607}",
|
35
|
+
"slight_smile" => "\u{1f642}",
|
36
|
+
"upside_down" => "\u{1f643}",
|
37
|
+
"wink" => "\u{1f609}",
|
38
|
+
"relieved" => "\u{1f60c}",
|
39
|
+
"heart_eyes" => "\u{1f60d}",
|
40
|
+
"kissing_heart" => "\u{1f618}",
|
41
|
+
"kissing" => "\u{1f617}",
|
42
|
+
"kissing_smiling_eyes" => "\u{1f619}",
|
43
|
+
"kissing_closed_eyes" => "\u{1f61a}",
|
44
|
+
"yum" => "\u{1f60b}",
|
45
|
+
"stuck_out_tongue_winking_eye" => "\u{1f61c}",
|
46
|
+
"stuck_out_tongue_closed_eyes" => "\u{1f61d}",
|
47
|
+
"stuck_out_tongue" => "\u{1f61b}",
|
48
|
+
"money_mouth" => "\u{1f911}",
|
49
|
+
"hugging" => "\u{1f917}",
|
50
|
+
"nerd" => "\u{1f913}",
|
51
|
+
"sunglasses" => "\u{1f60e}",
|
52
|
+
"clown" => "\u{1f921}",
|
53
|
+
"cowboy" => "\u{1f920}",
|
54
|
+
"smirk" => "\u{1f60f}",
|
55
|
+
"unamused" => "\u{1f612}",
|
56
|
+
"disappointed" => "\u{1f61e}",
|
57
|
+
"pensive" => "\u{1f614}",
|
58
|
+
"worried" => "\u{1f61f}",
|
59
|
+
"confused" => "\u{1f615}",
|
60
|
+
"slight_frown" => "\u{1f641}",
|
61
|
+
"frowning2" => "\u{2639}",
|
62
|
+
"persevere" => "\u{1f623}",
|
63
|
+
"confounded" => "\u{1f616}",
|
64
|
+
"tired_face" => "\u{1f62b}",
|
65
|
+
"weary" => "\u{1f629}",
|
66
|
+
"triumph" => "\u{1f624}",
|
67
|
+
"angry" => "\u{1f620}",
|
68
|
+
"rage" => "\u{1f621}",
|
69
|
+
"no_mouth" => "\u{1f636}",
|
70
|
+
"neutral_face" => "\u{1f610}",
|
71
|
+
"expressionless" => "\u{1f611}",
|
72
|
+
"hushed" => "\u{1f62f}",
|
73
|
+
"frowning" => "\u{1f626}",
|
74
|
+
"anguished" => "\u{1f627}",
|
75
|
+
"open_mouth" => "\u{1f62e}",
|
76
|
+
"astonished" => "\u{1f632}",
|
77
|
+
"dizzy_face" => "\u{1f635}",
|
78
|
+
"flushed" => "\u{1f633}",
|
79
|
+
"scream" => "\u{1f631}",
|
80
|
+
"fearful" => "\u{1f628}",
|
81
|
+
"cold_sweat" => "\u{1f630}",
|
82
|
+
"cry" => "\u{1f622}",
|
83
|
+
"disappointed_relieved" => "\u{1f625}",
|
84
|
+
"drooling_face" => "\u{1f924}",
|
85
|
+
"sob" => "\u{1f62d}",
|
86
|
+
"sweat" => "\u{1f613}",
|
87
|
+
"sleepy" => "\u{1f62a}",
|
88
|
+
"sleeping" => "\u{1f634}",
|
89
|
+
"rolling_eyes" => "\u{1f644}",
|
90
|
+
"thinking" => "\u{1f914}",
|
91
|
+
"lying_face" => "\u{1f925}",
|
92
|
+
"grimacing" => "\u{1f62c}",
|
93
|
+
"zipper_mouth" => "\u{1f910}",
|
94
|
+
"nauseated_face" => "\u{1f922}",
|
95
|
+
"sneezing_face" => "\u{1f927}",
|
96
|
+
"mask" => "\u{1f637}",
|
97
|
+
"thermometer_face" => "\u{1f912}",
|
98
|
+
"head_bandage" => "\u{1f915}",
|
99
|
+
"smiling_imp" => "\u{1f608}",
|
100
|
+
"imp" => "\u{1f47f}",
|
101
|
+
"japanese_ogre" => "\u{1f479}",
|
102
|
+
"japanese_goblin" => "\u{1f47a}",
|
103
|
+
"poop" => "\u{1f4a9}",
|
104
|
+
"ghost" => "\u{1f47b}",
|
105
|
+
"skull" => "\u{1f480}",
|
106
|
+
"skull_crossbones" => "\u{2620}",
|
107
|
+
"alien" => "\u{1f47d}",
|
108
|
+
"space_invader" => "\u{1f47e}",
|
109
|
+
"robot" => "\u{1f916}",
|
110
|
+
"jack_o_lantern" => "\u{1f383}",
|
111
|
+
"smiley_cat" => "\u{1f63a}",
|
112
|
+
"smile_cat" => "\u{1f638}",
|
113
|
+
"joy_cat" => "\u{1f639}",
|
114
|
+
"heart_eyes_cat" => "\u{1f63b}",
|
115
|
+
"smirk_cat" => "\u{1f63c}",
|
116
|
+
"kissing_cat" => "\u{1f63d}",
|
117
|
+
"scream_cat" => "\u{1f640}",
|
118
|
+
"crying_cat_face" => "\u{1f63f}",
|
119
|
+
"pouting_cat" => "\u{1f63e}",
|
120
|
+
"open_hands" => "\u{1f450}",
|
121
|
+
"raised_hands" => "\u{1f64c}",
|
122
|
+
"clap" => "\u{1f44f}",
|
123
|
+
"pray" => "\u{1f64f}",
|
124
|
+
"handshake" => "\u{1f91d}",
|
125
|
+
"thumbsup" => "\u{1f44d}",
|
126
|
+
"thumbsdown" => "\u{1f44e}",
|
127
|
+
"punch" => "\u{1f44a}",
|
128
|
+
"fist" => "\u{270a}",
|
129
|
+
"left_facing_fist" => "\u{1f91b}",
|
130
|
+
"right_facing_fist" => "\u{1f91c}",
|
131
|
+
"fingers_crossed" => "\u{1f91e}",
|
132
|
+
"v" => "\u{270c}",
|
133
|
+
"metal" => "\u{1f918}",
|
134
|
+
"ok_hand" => "\u{1f44c}",
|
135
|
+
"point_left" => "\u{1f448}",
|
136
|
+
"point_right" => "\u{1f449}",
|
137
|
+
"point_up_2" => "\u{1f446}",
|
138
|
+
"point_down" => "\u{1f447}",
|
139
|
+
"point_up" => "\u{261d}",
|
140
|
+
"raised_hand" => "\u{270b}",
|
141
|
+
"raised_back_of_hand" => "\u{1f91a}",
|
142
|
+
"hand_splayed" => "\u{1f590}",
|
143
|
+
"vulcan" => "\u{1f596}",
|
144
|
+
"wave" => "\u{1f44b}",
|
145
|
+
"call_me" => "\u{1f919}",
|
146
|
+
"muscle" => "\u{1f4aa}",
|
147
|
+
"middle_finger" => "\u{1f595}",
|
148
|
+
"writing_hand" => "\u{270d}",
|
149
|
+
"selfie" => "\u{1f933}",
|
150
|
+
"nail_care" => "\u{1f485}",
|
151
|
+
"ring" => "\u{1f48d}",
|
152
|
+
"lipstick" => "\u{1f484}",
|
153
|
+
"kiss" => "\u{1f48b}",
|
154
|
+
"lips" => "\u{1f444}",
|
155
|
+
"tongue" => "\u{1f445}",
|
156
|
+
"ear" => "\u{1f442}",
|
157
|
+
"nose" => "\u{1f443}",
|
158
|
+
"footprints" => "\u{1f463}",
|
159
|
+
"eye" => "\u{1f441}",
|
160
|
+
"eyes" => "\u{1f440}",
|
161
|
+
"speaking_head" => "\u{1f5e3}",
|
162
|
+
"bust_in_silhouette" => "\u{1f464}",
|
163
|
+
"busts_in_silhouette" => "\u{1f465}",
|
164
|
+
"baby" => "\u{1f476}",
|
165
|
+
"boy" => "\u{1f466}",
|
166
|
+
"girl" => "\u{1f467}",
|
167
|
+
"man" => "\u{1f468}",
|
168
|
+
"woman" => "\u{1f469}",
|
169
|
+
"blond haired_woman" => "\u{1f471 2640}",
|
170
|
+
"blond_haired_person" => "\u{1f471}",
|
171
|
+
"older_man" => "\u{1f474}",
|
172
|
+
"older_woman" => "\u{1f475}",
|
173
|
+
"man_with_chinese_cap" => "\u{1f472}",
|
174
|
+
"woman_wearing_turban" => "\u{1f473 2640}",
|
175
|
+
"person_wearing_turban" => "\u{1f473}",
|
176
|
+
"woman_police_officer" => "\u{1f46e 2640}",
|
177
|
+
"police_officer" => "\u{1f46e}",
|
178
|
+
"woman_construction_worker" => "\u{1f477 2640}",
|
179
|
+
"construction_worker" => "\u{1f477}",
|
180
|
+
"woman_guard" => "\u{1f482 2640}",
|
181
|
+
"guard" => "\u{1f482}",
|
182
|
+
"woman_detective" => "\u{1f575 2640}",
|
183
|
+
"detective" => "\u{1f575}",
|
184
|
+
"woman_health_worker" => "\u{1f469 2695}",
|
185
|
+
"man_health_worker" => "\u{1f468 2695}",
|
186
|
+
"woman_farmer" => "\u{1f469 1f33e}",
|
187
|
+
"man_farmer" => "\u{1f468 1f33e}",
|
188
|
+
"woman_cook" => "\u{1f469 1f373}",
|
189
|
+
"man_cook" => "\u{1f468 1f373}",
|
190
|
+
"woman_student" => "\u{1f469 1f393}",
|
191
|
+
"man_student" => "\u{1f468 1f393}",
|
192
|
+
"woman_singer" => "\u{1f469 1f3a4}",
|
193
|
+
"man_singer" => "\u{1f468 1f3a4}",
|
194
|
+
"woman_teacher" => "\u{1f469 1f3eb}",
|
195
|
+
"man_teacher" => "\u{1f468 1f3eb}",
|
196
|
+
"woman_factory_worker" => "\u{1f469 1f3ed}",
|
197
|
+
"man_factory_worker" => "\u{1f468 1f3ed}",
|
198
|
+
"woman_technologist" => "\u{1f469 1f4bb}",
|
199
|
+
"man_technologist" => "\u{1f468 1f4bb}",
|
200
|
+
"woman_office_worker" => "\u{1f469 1f4bc}",
|
201
|
+
"man_office_worker" => "\u{1f468 1f4bc}",
|
202
|
+
"woman_mechanic" => "\u{1f469 1f527}",
|
203
|
+
"man_mechanic" => "\u{1f468 1f527}",
|
204
|
+
"woman_scientist" => "\u{1f469 1f52c}",
|
205
|
+
"man_scientist" => "\u{1f468 1f52c}",
|
206
|
+
"woman_artist" => "\u{1f469 1f3a8}",
|
207
|
+
"man_artist" => "\u{1f468 1f3a8}",
|
208
|
+
"woman_firefighter" => "\u{1f469 1f692}",
|
209
|
+
"man_firefighter" => "\u{1f468 1f692}",
|
210
|
+
"woman_pilot" => "\u{1f469 2708}",
|
211
|
+
"man_pilot" => "\u{1f468 2708}",
|
212
|
+
"woman_astronaut" => "\u{1f469 1f680}",
|
213
|
+
"man_astronaut" => "\u{1f468 1f680}",
|
214
|
+
"woman_judge" => "\u{1f469 2696}",
|
215
|
+
"man_judge" => "\u{1f468 2696}",
|
216
|
+
"mrs_claus" => "\u{1f936}",
|
217
|
+
"santa" => "\u{1f385}",
|
218
|
+
"princess" => "\u{1f478}",
|
219
|
+
"prince" => "\u{1f934}",
|
220
|
+
"bride_with_veil" => "\u{1f470}",
|
221
|
+
"man_in_tuxedo" => "\u{1f935}",
|
222
|
+
"angel" => "\u{1f47c}",
|
223
|
+
"pregnant_woman" => "\u{1f930}",
|
224
|
+
"woman_bowing" => "\u{1f647 2640}",
|
225
|
+
"person_bowing" => "\u{1f647}",
|
226
|
+
"person_tipping_hand" => "\u{1f481}",
|
227
|
+
"man_tipping_hand" => "\u{1f481 2642}",
|
228
|
+
"person_gesturing_no" => "\u{1f645}",
|
229
|
+
"man_gesturing_no" => "\u{1f645 2642}",
|
230
|
+
"person_gesturing_ok" => "\u{1f646}",
|
231
|
+
"man_gesturing_ok" => "\u{1f646 2642}",
|
232
|
+
"person_raising_hand" => "\u{1f64b}",
|
233
|
+
"man_raising_hand" => "\u{1f64b 2642}",
|
234
|
+
"woman_facepalming" => "\u{1f926 2640}",
|
235
|
+
"man_facepalming" => "\u{1f926 2642}",
|
236
|
+
"woman_shrugging" => "\u{1f937 2640}",
|
237
|
+
"man_shrugging" => "\u{1f937 2642}",
|
238
|
+
"person_pouting" => "\u{1f64e}",
|
239
|
+
"man_pouting" => "\u{1f64e 2642}",
|
240
|
+
"person_frowning" => "\u{1f64d}",
|
241
|
+
"man_frowning" => "\u{1f64d 2642}",
|
242
|
+
"person_getting_haircut" => "\u{1f487}",
|
243
|
+
"man_getting_haircut" => "\u{1f487 2642}",
|
244
|
+
"person_getting_massage" => "\u{1f486}",
|
245
|
+
"man_getting_face_massage" => "\u{1f486 2642}",
|
246
|
+
"levitate" => "\u{1f574}",
|
247
|
+
"dancer" => "\u{1f483}",
|
248
|
+
"man_dancing" => "\u{1f57a}",
|
249
|
+
"people_with_bunny_ears_partying" => "\u{1f46f}",
|
250
|
+
"men_with_bunny_ears_partying" => "\u{1f46f 2642}",
|
251
|
+
"woman_walking" => "\u{1f6b6 2640}",
|
252
|
+
"person_walking" => "\u{1f6b6}",
|
253
|
+
"woman_running" => "\u{1f3c3 2640}",
|
254
|
+
"person_running" => "\u{1f3c3}",
|
255
|
+
"couple" => "\u{1f46b}",
|
256
|
+
"two_women_holding_hands" => "\u{1f46d}",
|
257
|
+
"two_men_holding_hands" => "\u{1f46c}",
|
258
|
+
"couple_with_heart" => "\u{1f491}",
|
259
|
+
"couple_ww" => "\u{1f469 2764 1f469}",
|
260
|
+
"couple_mm" => "\u{1f468 2764 1f468}",
|
261
|
+
"couplekiss" => "\u{1f48f}",
|
262
|
+
"kiss_ww" => "\u{1f469 2764 1f48b 1f469}",
|
263
|
+
"kiss_mm" => "\u{1f468 2764 1f48b 1f468}",
|
264
|
+
"family" => "\u{1f46a}",
|
265
|
+
"family_mwg" => "\u{1f468 1f469 1f467}",
|
266
|
+
"family_mwgb" => "\u{1f468 1f469 1f467 1f466}",
|
267
|
+
"family_mwbb" => "\u{1f468 1f469 1f466 1f466}",
|
268
|
+
"family_mwgg" => "\u{1f468 1f469 1f467 1f467}",
|
269
|
+
"family_wwb" => "\u{1f469 1f469 1f466}",
|
270
|
+
"family_wwg" => "\u{1f469 1f469 1f467}",
|
271
|
+
"family_wwgb" => "\u{1f469 1f469 1f467 1f466}",
|
272
|
+
"family_wwbb" => "\u{1f469 1f469 1f466 1f466}",
|
273
|
+
"family_wwgg" => "\u{1f469 1f469 1f467 1f467}",
|
274
|
+
"family_mmb" => "\u{1f468 1f468 1f466}",
|
275
|
+
"family_mmg" => "\u{1f468 1f468 1f467}",
|
276
|
+
"family_mmgb" => "\u{1f468 1f468 1f467 1f466}",
|
277
|
+
"family_mmbb" => "\u{1f468 1f468 1f466 1f466}",
|
278
|
+
"family_mmgg" => "\u{1f468 1f468 1f467 1f467}",
|
279
|
+
"family_woman_boy" => "\u{1f469 1f466}",
|
280
|
+
"family_woman_girl" => "\u{1f469 1f467}",
|
281
|
+
"family_woman_girl_boy" => "\u{1f469 1f467 1f466}",
|
282
|
+
"family_woman_boy_boy" => "\u{1f469 1f466 1f466}",
|
283
|
+
"family_woman_girl_girl" => "\u{1f469 1f467 1f467}",
|
284
|
+
"family_man_boy" => "\u{1f468 1f466}",
|
285
|
+
"family_man_girl" => "\u{1f468 1f467}",
|
286
|
+
"family_man_girl_boy" => "\u{1f468 1f467 1f466}",
|
287
|
+
"family_man_boy_boy" => "\u{1f468 1f466 1f466}",
|
288
|
+
"family_man_girl_girl" => "\u{1f468 1f467 1f467}",
|
289
|
+
"womans_clothes" => "\u{1f45a}",
|
290
|
+
"shirt" => "\u{1f455}",
|
291
|
+
"jeans" => "\u{1f456}",
|
292
|
+
"necktie" => "\u{1f454}",
|
293
|
+
"dress" => "\u{1f457}",
|
294
|
+
"bikini" => "\u{1f459}",
|
295
|
+
"kimono" => "\u{1f458}",
|
296
|
+
"high_heel" => "\u{1f460}",
|
297
|
+
"sandal" => "\u{1f461}",
|
298
|
+
"boot" => "\u{1f462}",
|
299
|
+
"mans_shoe" => "\u{1f45e}",
|
300
|
+
"athletic_shoe" => "\u{1f45f}",
|
301
|
+
"womans_hat" => "\u{1f452}",
|
302
|
+
"tophat" => "\u{1f3a9}",
|
303
|
+
"mortar_board" => "\u{1f393}",
|
304
|
+
"crown" => "\u{1f451}",
|
305
|
+
"helmet_with_cross" => "\u{26d1}",
|
306
|
+
"school_satchel" => "\u{1f392}",
|
307
|
+
"pouch" => "\u{1f45d}",
|
308
|
+
"purse" => "\u{1f45b}",
|
309
|
+
"handbag" => "\u{1f45c}",
|
310
|
+
"briefcase" => "\u{1f4bc}",
|
311
|
+
"eyeglasses" => "\u{1f453}",
|
312
|
+
"dark_sunglasses" => "\u{1f576}",
|
313
|
+
"closed_umbrella" => "\u{1f302}",
|
314
|
+
"umbrella2" => "\u{2602}",
|
315
|
+
"face_with_raised_eyebrow" => "\u{1f928}",
|
316
|
+
"star_struck" => "\u{1f929}",
|
317
|
+
"crazy_face" => "\u{1f92a}",
|
318
|
+
"shushing_face" => "\u{1f92b}",
|
319
|
+
"face_with_symbols_over_mouth" => "\u{1f92c}",
|
320
|
+
"face_with_hand_over_mouth" => "\u{1f92d}",
|
321
|
+
"face_vomiting" => "\u{1f92e}",
|
322
|
+
"exploding_head" => "\u{1f92f}",
|
323
|
+
"face_with_monocle" => "\u{1f9d0}",
|
324
|
+
"adult" => "\u{1f9d1}",
|
325
|
+
"child" => "\u{1f9d2}",
|
326
|
+
"older_adult" => "\u{1f9d3}",
|
327
|
+
"bearded_person" => "\u{1f9d4}",
|
328
|
+
"woman_with_headscarf" => "\u{1f9d5}",
|
329
|
+
"brain" => "\u{1f9e0}",
|
330
|
+
"billed_cap" => "\u{1f9e2}",
|
331
|
+
"scarf" => "\u{1f9e3}",
|
332
|
+
"gloves" => "\u{1f9e4}",
|
333
|
+
"coat" => "\u{1f9e5}",
|
334
|
+
"socks" => "\u{1f9e6}",
|
335
|
+
"love_you_gesture" => "\u{1f91f}",
|
336
|
+
"palms_up_together" => "\u{1f932}",
|
337
|
+
"woman_mage" => "\u{1f9d9 2640}",
|
338
|
+
"man_mage" => "\u{1f9d9 2642}",
|
339
|
+
"woman_fairy" => "\u{1f9da 2640}",
|
340
|
+
"man_fairy" => "\u{1f9da 2642}",
|
341
|
+
"woman_vampire" => "\u{1f9db 2640}",
|
342
|
+
"man_vampire" => "\u{1f9db 2642}",
|
343
|
+
"mermaid" => "\u{1f9dc 2640}",
|
344
|
+
"merman" => "\u{1f9dc 2642}",
|
345
|
+
"woman_elf" => "\u{1f9dd 2640}",
|
346
|
+
"man_elf" => "\u{1f9dd 2642}",
|
347
|
+
"woman_genie" => "\u{1f9de 2640}",
|
348
|
+
"man_genie" => "\u{1f9de 2642}",
|
349
|
+
"woman_zombie" => "\u{1f9df 2640}",
|
350
|
+
"man_zombie" => "\u{1f9df 2642}"
|
351
|
+
}.freeze
|
352
|
+
end
|
353
|
+
end
|
data/lib/omnibar/popular.rb
CHANGED
data/lib/omnibar/query.rb
CHANGED
data/lib/omnibar/renderer.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module Omnibar
|
2
2
|
class Renderer
|
3
|
+
NON_ASCII_REGEX = /[^\x00-\x7F]/.freeze
|
4
|
+
|
3
5
|
attr_reader :input, :results, :selection
|
4
6
|
|
5
7
|
def initialize(input, results, selection)
|
@@ -38,15 +40,21 @@ module Omnibar
|
|
38
40
|
end
|
39
41
|
|
40
42
|
def rpad(text, length = ANSI.size[:width])
|
41
|
-
text + (
|
43
|
+
textlength = text.length + non_ascii_chars(text).length
|
44
|
+
text + (' ' * [0, (length - textlength)].max)
|
42
45
|
end
|
43
46
|
|
44
47
|
def lpad(text, length = ANSI.size[:width])
|
45
|
-
|
48
|
+
textlength = text.length + non_ascii_chars(text).length
|
49
|
+
(' ' * [0, (length - textlength)].max) + text
|
46
50
|
end
|
47
51
|
|
48
52
|
def max_label_length
|
49
53
|
@mll ||= results.map(&:first).map(&:length).max || 10
|
50
54
|
end
|
55
|
+
|
56
|
+
def non_ascii_chars(string)
|
57
|
+
string.chars.select { |c| c.match?(NON_ASCII_REGEX) }
|
58
|
+
end
|
51
59
|
end
|
52
60
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Omnibar
|
2
|
+
class Snippet < Query
|
3
|
+
def result
|
4
|
+
key = search.find(input)
|
5
|
+
value = snippets[key]
|
6
|
+
"#{key} :: #{value}" if (key and value)
|
7
|
+
end
|
8
|
+
|
9
|
+
def snippets
|
10
|
+
Omnibar.config.snippets
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.search
|
14
|
+
@fz ||= FuzzyMatch.new(Omnibar.config.snippets.keys)
|
15
|
+
end
|
16
|
+
|
17
|
+
def search
|
18
|
+
self.class.search
|
19
|
+
end
|
20
|
+
|
21
|
+
def perform!
|
22
|
+
key = search.find(input)
|
23
|
+
copy_to_clipboard snippets[key]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'ffi/aspell'
|
2
|
+
|
3
|
+
module Omnibar
|
4
|
+
class Spell < Query
|
5
|
+
def result
|
6
|
+
speller.suggestions(input.split(' ').last).first if input.match?(/^spe?l?l? \w+/)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.speller
|
10
|
+
@sp ||= FFI::Aspell::Speller.new('en_US')
|
11
|
+
end
|
12
|
+
|
13
|
+
def speller
|
14
|
+
self.class.speller
|
15
|
+
end
|
16
|
+
|
17
|
+
def perform!
|
18
|
+
copy_to_clipboard result
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Omnibar
|
2
|
+
#
|
3
|
+
# System Commands
|
4
|
+
#
|
5
|
+
# Interact with your system
|
6
|
+
#
|
7
|
+
class System < Query
|
8
|
+
COMMANDS = {
|
9
|
+
'sleep' => 'xset -display :0.0 dpms force off',
|
10
|
+
'reboot' => 'reboot',
|
11
|
+
'shutdown' => 'shutdown now',
|
12
|
+
'power off' => 'shutdown now'
|
13
|
+
}.freeze
|
14
|
+
|
15
|
+
def result
|
16
|
+
search.find(input)
|
17
|
+
end
|
18
|
+
|
19
|
+
def search
|
20
|
+
@fz ||= FuzzyMatch.new(COMMANDS.keys)
|
21
|
+
end
|
22
|
+
|
23
|
+
def perform!
|
24
|
+
puts COMMANDS[result]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/omnibar/version.rb
CHANGED
data/omnibar.gemspec
CHANGED
@@ -20,8 +20,10 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
-
spec.
|
24
|
-
spec.
|
23
|
+
spec.add_runtime_dependency 'dry-configurable', '~> 0.7.0'
|
24
|
+
spec.add_runtime_dependency 'fuzzy_match', '~> 2.1', '>= 2.1.0'
|
25
|
+
spec.add_runtime_dependency 'amatch', '~> 0.4.0'
|
26
|
+
spec.add_runtime_dependency 'ffi-aspell', '~> 1.1', '>= 1.1.0'
|
25
27
|
|
26
28
|
spec.add_development_dependency 'bundler', '~> 1.16.a'
|
27
29
|
spec.add_development_dependency 'rake', '~> 10.0'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omnibar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacob Evan Shreve
|
@@ -29,6 +29,9 @@ dependencies:
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.1'
|
34
|
+
- - ">="
|
32
35
|
- !ruby/object:Gem::Version
|
33
36
|
version: 2.1.0
|
34
37
|
type: :runtime
|
@@ -36,8 +39,45 @@ dependencies:
|
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
41
|
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '2.1'
|
44
|
+
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
46
|
version: 2.1.0
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: amatch
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.4.0
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 0.4.0
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: ffi-aspell
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.1'
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 1.1.0
|
71
|
+
type: :runtime
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.1'
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 1.1.0
|
41
81
|
- !ruby/object:Gem::Dependency
|
42
82
|
name: bundler
|
43
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,11 +128,15 @@ files:
|
|
88
128
|
- lib/omnibar/app.rb
|
89
129
|
- lib/omnibar/calculate.rb
|
90
130
|
- lib/omnibar/duck_duck_go.rb
|
131
|
+
- lib/omnibar/emoji.rb
|
91
132
|
- lib/omnibar/github.rb
|
92
133
|
- lib/omnibar/google.rb
|
93
134
|
- lib/omnibar/popular.rb
|
94
135
|
- lib/omnibar/query.rb
|
95
136
|
- lib/omnibar/renderer.rb
|
137
|
+
- lib/omnibar/snippet.rb
|
138
|
+
- lib/omnibar/spell.rb
|
139
|
+
- lib/omnibar/system.rb
|
96
140
|
- lib/omnibar/version.rb
|
97
141
|
- omnibar.gemspec
|
98
142
|
homepage: https://github.com/shreve/omnibar
|