clipboard_manager 0.0.0 → 1.0.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.
- checksums.yaml +4 -4
- data/README.rdoc +6 -2
- data/config/config.yml +124 -0
- data/data/VERSION +1 -1
- data/lib/clipboard_manager.rb +12 -0
- data/lib/clipboard_manager/clipboard_manager.rb +88 -48
- data/lib/clipboard_manager/config.rb +34 -12
- data/lib/clipboard_manager/version.rb +1 -1
- metadata +26 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2e1ccd8a935cab8bb3288575e366ff8e98c4686
|
4
|
+
data.tar.gz: f2f35c43e9e62421cf189f7c472c39f4a4becf75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e209e97dee8d3e2a85e94d920a8ae6dbcdb8aa7b3d7c4e5e92d705b70b0180861684bcb2e92e94ac799cd3e66a558c39713bc8a09a970dfef54e52ff6cfcd032
|
7
|
+
data.tar.gz: a9173364649a49516196775f7941f278f646af0c4a9d07a89c379072d477719b036a2b7c91c734019d47d71f724c3a16e7e5cc71a7721fa658349df6b961a727
|
data/README.rdoc
CHANGED
@@ -15,6 +15,10 @@ Ruby Gtk3App Clipboard Manager.
|
|
15
15
|
* espeak
|
16
16
|
* history
|
17
17
|
|
18
|
+
Currently needs zenity for confirmations...
|
19
|
+
Zenity is easy to install if it's not already in your linux system.
|
20
|
+
Was just lazy on adding my own dialog for this, will fix soon.
|
21
|
+
|
18
22
|
== INSTALL:
|
19
23
|
|
20
24
|
$ sudo gem install clipboard_manager
|
@@ -47,9 +51,9 @@ It will run the given system command "wget.. youtube_dl... '$0' | mplayer ...",
|
|
47
51
|
where $0 will be replaced by the match.
|
48
52
|
|
49
53
|
The _firefox_ task will run when the clipboard text matches an amazon link.
|
50
|
-
It will open the link with
|
54
|
+
It will open the link with firefox.
|
51
55
|
|
52
|
-
The _espeak_ task will run
|
56
|
+
The _espeak_ task will run when the clipboard text is at least 80 characters long.
|
53
57
|
It will have espeak read the text.
|
54
58
|
|
55
59
|
Currently, clipboard_manager has three tasks methods: bashit(system), firefox, and espeak.
|
data/config/config.yml
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
---
|
2
|
+
:Help: |
|
3
|
+
Usage: gtk3app clipboardmanager [options]
|
4
|
+
Options:
|
5
|
+
--ask Ask for confirmation.
|
6
|
+
--running Start in active mode.
|
7
|
+
Default for options is true,
|
8
|
+
use no-ask and no-running for false.
|
9
|
+
:StatusTimeOut: 3
|
10
|
+
:Sleep: 750
|
11
|
+
:MaxHistory: 13
|
12
|
+
:MaxString: 60
|
13
|
+
:QrcTimeOut: 3
|
14
|
+
:QrcCommand: zbarcam --nodisplay --raw --prescale=800x800
|
15
|
+
:IsPwd: |-
|
16
|
+
\A
|
17
|
+
(?!\w+:\/\/) # not like url
|
18
|
+
(?!\/[a-z]+\/[a-z]) # not like linux path
|
19
|
+
(?![a-z]+\/[a-z]+\/) # not like relative path
|
20
|
+
(?=.*\d) # at least on diget
|
21
|
+
(?=.*[a-z]) # at least one lower case letter
|
22
|
+
(?=.*[A-Z]) # at least one upper case letter
|
23
|
+
(?=.*[^\w\s]) # at least one special character
|
24
|
+
.{4,43}$ # 4 to 43 in length
|
25
|
+
\Z
|
26
|
+
:Working: "/home/fox/.local/share/gtk3app/clipboardmanager/working.png"
|
27
|
+
:Ok: "/home/fox/.local/share/gtk3app/clipboardmanager/ok.png"
|
28
|
+
:Nope: "/home/fox/.local/share/gtk3app/clipboardmanager/nope.png"
|
29
|
+
:Ready: "/home/fox/.local/share/gtk3app/clipboardmanager/ready.png"
|
30
|
+
:Off: "/home/fox/.local/share/gtk3app/clipboardmanager/off.png"
|
31
|
+
:thing:
|
32
|
+
:HelpFile: https://github.com/carlosjhr64/clipboard_manager
|
33
|
+
:Logo: "/home/fox/.local/share/gtk3app/clipboardmanager/logo.png"
|
34
|
+
:about_dialog:
|
35
|
+
:set_program_name: Clipboard Manager
|
36
|
+
:set_version: 1.0.1
|
37
|
+
:set_copyright: "(c) 2014 CarlosJHR64"
|
38
|
+
:set_comments: 'A Ruby Gtk3App Clipboard Manager '
|
39
|
+
:set_website: https://github.com/carlosjhr64/clipboard_manager
|
40
|
+
:set_website_label: See it at GitHub!
|
41
|
+
:DO_TOGGLE:
|
42
|
+
- Toggle On/Off
|
43
|
+
:do_toggle!:
|
44
|
+
- :DO_TOGGLE
|
45
|
+
- activate
|
46
|
+
:DO_HISTORY:
|
47
|
+
- History
|
48
|
+
:do_history!:
|
49
|
+
- :DO_HISTORY
|
50
|
+
- activate
|
51
|
+
:DO_QRCODE:
|
52
|
+
- QR-Code
|
53
|
+
:do_qrcode!:
|
54
|
+
- :DO_QRCODE
|
55
|
+
- activate
|
56
|
+
:window:
|
57
|
+
:set_title: Clipboard Manager
|
58
|
+
:set_window_position: :center
|
59
|
+
:VBOX:
|
60
|
+
- :vertical
|
61
|
+
:vbox: &1 {}
|
62
|
+
:vbox!:
|
63
|
+
- :VBOX
|
64
|
+
- :vbox
|
65
|
+
:ASK:
|
66
|
+
- Ask For Confirmation
|
67
|
+
:ask: *1
|
68
|
+
:ask!:
|
69
|
+
- :ASK
|
70
|
+
- :ask
|
71
|
+
:RUNNING:
|
72
|
+
- On/Off
|
73
|
+
:running: *1
|
74
|
+
:running!:
|
75
|
+
- :RUNNING
|
76
|
+
- :running
|
77
|
+
:TASKS:
|
78
|
+
- 'Tasks:'
|
79
|
+
:tasks: *1
|
80
|
+
:tasks!:
|
81
|
+
- :TASKS
|
82
|
+
- :tasks
|
83
|
+
:HISTORY_BUTTON:
|
84
|
+
- :label: History
|
85
|
+
:history_button: *1
|
86
|
+
:history_button!:
|
87
|
+
- :HISTORY_BUTTON
|
88
|
+
- :history_button
|
89
|
+
:HISTORY_DIALOG: &2 []
|
90
|
+
:history_dialog:
|
91
|
+
:set_window_position: :center
|
92
|
+
:history_dialog!:
|
93
|
+
- :HISTORY_DIALOG
|
94
|
+
- :history_dialog
|
95
|
+
:HISTORY_COMBO: *2
|
96
|
+
:history_combo: *1
|
97
|
+
:history_combo!:
|
98
|
+
- :HISTORY_COMBO
|
99
|
+
- :history_combo
|
100
|
+
:QRCODE_BUTTON:
|
101
|
+
- :label: QR-Code
|
102
|
+
:qrcode_button: *1
|
103
|
+
:qrcode_button!:
|
104
|
+
- :QRCODE_BUTTON
|
105
|
+
- :qrcode_button
|
106
|
+
:QUESTION_DIALOG: *2
|
107
|
+
:question_dialog:
|
108
|
+
:set_window_position: :center
|
109
|
+
:set_keep_above: true
|
110
|
+
:question_dialog!:
|
111
|
+
- :question_dialog
|
112
|
+
- :QUESTION_DIALOG
|
113
|
+
:tasks:
|
114
|
+
:mplayer:
|
115
|
+
- "(https?://www\\.youtube\\.com/watch\\?v=[\\w\\-]+)"
|
116
|
+
- :bashit
|
117
|
+
- wget --quiet -O - $(youtube-dl -f 5/36/17/18 -g '$1') | mplayer -really-quiet
|
118
|
+
-cache 8192 -cache-min 1 -
|
119
|
+
:firefox:
|
120
|
+
- "^https?://www.amazon.com/"
|
121
|
+
- :firefox
|
122
|
+
:espeak:
|
123
|
+
- ".{80,}"
|
124
|
+
- :espeak
|
data/data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
1.0.1
|
data/lib/clipboard_manager.rb
CHANGED
@@ -1,5 +1,17 @@
|
|
1
|
+
# Standard Libraries
|
2
|
+
require 'timeout'
|
3
|
+
|
4
|
+
# Work gems
|
5
|
+
require 'gtk3app'
|
6
|
+
|
7
|
+
# This Gem
|
1
8
|
require_relative 'clipboard_manager/version.rb'
|
2
9
|
require_relative 'clipboard_manager/config.rb'
|
3
10
|
require_relative 'clipboard_manager/clipboard_manager.rb'
|
11
|
+
|
4
12
|
# Requires:
|
5
13
|
#`ruby`
|
14
|
+
#`zbarcam`
|
15
|
+
#`firefox`
|
16
|
+
#`espeak`
|
17
|
+
#`system`
|
@@ -1,9 +1,26 @@
|
|
1
1
|
module ClipboardManager
|
2
2
|
using Rafini::Exception
|
3
3
|
|
4
|
+
class Dialog < Such::Dialog
|
5
|
+
def initialize(*par)
|
6
|
+
super
|
7
|
+
add_button(Gtk::Stock::CANCEL, Gtk::ResponseType::CANCEL)
|
8
|
+
add_button(Gtk::Stock::OK, Gtk::ResponseType::OK)
|
9
|
+
end
|
10
|
+
|
11
|
+
def runs
|
12
|
+
show_all
|
13
|
+
response = run
|
14
|
+
response = yield(response)
|
15
|
+
destroy
|
16
|
+
return response
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
4
20
|
def self.options=(opts)
|
5
21
|
@@options=opts
|
6
22
|
end
|
23
|
+
|
7
24
|
def self.options
|
8
25
|
@@options
|
9
26
|
end
|
@@ -16,7 +33,6 @@ class ClipboardManager
|
|
16
33
|
CLIPBOARD = Gtk::Clipboard.get(Gdk::Selection::CLIPBOARD)
|
17
34
|
|
18
35
|
def initialize(program)
|
19
|
-
@program = program
|
20
36
|
@image = program.mini.children.first
|
21
37
|
@timer = nil
|
22
38
|
|
@@ -28,28 +44,15 @@ class ClipboardManager
|
|
28
44
|
|
29
45
|
@is_pwd = Regexp.new(CONFIG[:IsPwd], Regexp::EXTENDED)
|
30
46
|
|
31
|
-
|
32
|
-
program.mini_menu.append_menu_item(:toggle!){toggle}
|
33
|
-
status(@ready)
|
34
|
-
|
35
|
-
@history, @previous = [], nil
|
36
|
-
request_text do |text|
|
37
|
-
if text
|
38
|
-
add_history text
|
39
|
-
@previous = text
|
40
|
-
end
|
41
|
-
Rafini.thread_bang!{cycle}
|
42
|
-
end
|
43
|
-
|
44
47
|
window = program.window
|
45
48
|
vbox = Such::Box.new window, :vbox!
|
46
49
|
|
47
|
-
@ask = Such::CheckButton.new vbox, :ask!
|
48
|
-
@ask.active = ::ClipboardManager.options[:ask, true]
|
49
|
-
|
50
50
|
@running = Such::CheckButton.new(vbox, :running!, 'toggled'){toggled}
|
51
51
|
@running.active = ::ClipboardManager.options[:running, true]
|
52
52
|
|
53
|
+
@ask = Such::CheckButton.new vbox, :ask!
|
54
|
+
@ask.active = ::ClipboardManager.options[:ask, true]
|
55
|
+
|
53
56
|
Such::Label.new vbox, :tasks!
|
54
57
|
|
55
58
|
@checks = {}
|
@@ -57,16 +60,33 @@ class ClipboardManager
|
|
57
60
|
@checks[key] = Such::CheckButton.new(vbox, [key.to_s.capitalize], {set_active: true})
|
58
61
|
end
|
59
62
|
|
60
|
-
Such::Button.new(vbox, :history_button!){do_history}
|
63
|
+
Such::Button.new(vbox, :history_button!){do_history!}
|
64
|
+
Such::Button.new(vbox, :qrcode_button!){do_qrcode!}
|
65
|
+
|
66
|
+
mm = program.mini_menu
|
67
|
+
mm.append_menu_item(:do_toggle!){do_toggle!}
|
68
|
+
mm.append_menu_item(:do_history!){do_history!}
|
69
|
+
mm.append_menu_item(:do_qrcode!){do_qrcode!}
|
61
70
|
|
71
|
+
@history, @previous = [], nil
|
72
|
+
request_text do |text|
|
73
|
+
if text
|
74
|
+
add_history text
|
75
|
+
@previous = text
|
76
|
+
end
|
77
|
+
GLib::Timeout.add(CONFIG[:Sleep]) do
|
78
|
+
step if @running.active?
|
79
|
+
true # repeat
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
status(@ready)
|
62
84
|
window.show_all
|
63
85
|
end
|
64
86
|
|
65
87
|
# https://github.com/ruby-gnome2/ruby-gnome2/blob/master/gtk3/sample/misc/dialog.rb
|
66
|
-
def do_history
|
67
|
-
dialog =
|
68
|
-
dialog.add_button(Gtk::Stock::CANCEL, Gtk::ResponseType::CANCEL)
|
69
|
-
dialog.add_button(Gtk::Stock::OK, Gtk::ResponseType::OK)
|
88
|
+
def do_history!
|
89
|
+
dialog = Dialog.new :history_dialog!
|
70
90
|
combo = Such::ComboBoxText.new dialog.child, :history_combo!
|
71
91
|
@history.each do |str|
|
72
92
|
if str.length > CONFIG[:MaxString]
|
@@ -75,19 +95,48 @@ class ClipboardManager
|
|
75
95
|
end
|
76
96
|
combo.append_text(str)
|
77
97
|
end
|
78
|
-
dialog.
|
79
|
-
|
80
|
-
|
81
|
-
|
98
|
+
dialog.runs do |response|
|
99
|
+
if response==Gtk::ResponseType::OK and combo.active_text
|
100
|
+
@previous = nil
|
101
|
+
CLIPBOARD.text = @history[combo.active]
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def do_qrcode!
|
107
|
+
qrcode = nil
|
108
|
+
IO.popen(CONFIG[:QrcCommand], 'r') do |io|
|
109
|
+
begin
|
110
|
+
Timeout.timeout(CONFIG[:QrcTimeOut]) do
|
111
|
+
qrcode = io.gets.strip
|
112
|
+
end
|
113
|
+
rescue Timeout::Error
|
114
|
+
$!.puts 'QrcTimeOut'
|
115
|
+
ensure
|
116
|
+
Process.kill('INT', io.pid)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
if qrcode.nil?
|
120
|
+
CLIPBOARD.clear
|
121
|
+
status(@nope)
|
122
|
+
else
|
123
|
+
CLIPBOARD.text = qrcode
|
124
|
+
status(@ok)
|
82
125
|
end
|
83
|
-
|
126
|
+
end
|
127
|
+
|
128
|
+
def question?(name)
|
129
|
+
return true unless @ask.active?
|
130
|
+
dialog = Dialog.new :question_dialog!
|
131
|
+
Such::Label.new dialog.child, ["Run #{name}?"]
|
132
|
+
dialog.runs{|response| (response==Gtk::ResponseType::OK)}
|
84
133
|
end
|
85
134
|
|
86
135
|
def toggled
|
87
136
|
@running.active? ? status(@ready) : status(@off)
|
88
137
|
end
|
89
138
|
|
90
|
-
def
|
139
|
+
def do_toggle!
|
91
140
|
request_text do |text|
|
92
141
|
@previous = text
|
93
142
|
@running.active = !@running.active?
|
@@ -106,15 +155,8 @@ class ClipboardManager
|
|
106
155
|
@timer = Time.now
|
107
156
|
end
|
108
157
|
|
109
|
-
def cycle
|
110
|
-
while true
|
111
|
-
step if @running.active?
|
112
|
-
sleep CONFIG[:Sleep]
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
158
|
def step
|
117
|
-
if @timer and Time.now - @timer > CONFIG[:
|
159
|
+
if @timer and Time.now - @timer > CONFIG[:StatusTimeOut]
|
118
160
|
@timer = nil
|
119
161
|
status @ready
|
120
162
|
end
|
@@ -122,7 +164,10 @@ class ClipboardManager
|
|
122
164
|
unless text.nil? or @previous == text
|
123
165
|
@previous = text
|
124
166
|
status @working
|
125
|
-
|
167
|
+
GLib::Timeout.add(0) do
|
168
|
+
manage(text)
|
169
|
+
false # don't repeat
|
170
|
+
end
|
126
171
|
end
|
127
172
|
end
|
128
173
|
end
|
@@ -147,7 +192,7 @@ class ClipboardManager
|
|
147
192
|
espeak(text)
|
148
193
|
when :firefox
|
149
194
|
firefox(text)
|
150
|
-
when :
|
195
|
+
when :bashit
|
151
196
|
bashit(md, str)
|
152
197
|
else
|
153
198
|
raise "Method #{mth} not implemented."
|
@@ -155,7 +200,7 @@ class ClipboardManager
|
|
155
200
|
status(@ok)
|
156
201
|
rescue RuntimeError
|
157
202
|
$!.puts
|
158
|
-
status(@nope)
|
203
|
+
status(@nope)
|
159
204
|
end
|
160
205
|
return
|
161
206
|
end
|
@@ -163,26 +208,21 @@ class ClipboardManager
|
|
163
208
|
status(@nope)
|
164
209
|
end
|
165
210
|
|
166
|
-
def question?(wut)
|
167
|
-
@ask.active? ? system("zenity --question --text='#{wut}'") : true
|
168
|
-
end
|
169
|
-
|
170
211
|
def espeak(text)
|
171
|
-
IO.popen('espeak --stdin', 'w'){|e|e.puts text.strip}
|
212
|
+
Rafini.thread_bang!{IO.popen('espeak --stdin', 'w'){|e|e.puts text.strip}}
|
172
213
|
end
|
173
214
|
|
174
215
|
def firefox(text)
|
175
|
-
raise "not a url" unless text =~ /^https?:\/\/\S+$/
|
176
216
|
raise "quote not allowed in url" if text =~ /'/
|
177
|
-
|
217
|
+
Process.detach spawn "firefox '#{text}'"
|
178
218
|
end
|
179
219
|
|
180
220
|
def bashit(md, str)
|
181
221
|
(md.length-1).downto(0) do |i|
|
182
222
|
str = str.gsub(/\$#{i}/, md[i])
|
183
|
-
$stderr.puts str if $VERBOSE
|
184
|
-
system str
|
185
223
|
end
|
224
|
+
$stderr.puts str
|
225
|
+
Process.detach spawn str
|
186
226
|
end
|
187
227
|
|
188
228
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module ClipboardManager
|
2
2
|
|
3
|
-
help = <<-HELP
|
3
|
+
help = <<-HELP
|
4
4
|
Usage: gtk3app clipboardmanager [options]
|
5
5
|
Options:
|
6
6
|
--ask Ask for confirmation.
|
@@ -30,11 +30,14 @@ use no-ask and no-running for false.
|
|
30
30
|
CONFIG = {
|
31
31
|
Help: help,
|
32
32
|
|
33
|
-
|
34
|
-
Sleep:
|
33
|
+
StatusTimeOut: 3,
|
34
|
+
Sleep: 750,
|
35
35
|
MaxHistory: 13,
|
36
36
|
MaxString: 60,
|
37
37
|
|
38
|
+
QrcTimeOut: 3,
|
39
|
+
QrcCommand: 'zbarcam --nodisplay --raw --prescale=800x800',
|
40
|
+
|
38
41
|
IsPwd: is_pwd,
|
39
42
|
|
40
43
|
Working: "#{XDG['DATA']}/gtk3app/clipboardmanager/working.png",
|
@@ -57,8 +60,14 @@ use no-ask and no-running for false.
|
|
57
60
|
set_website_label: 'See it at GitHub!',
|
58
61
|
},
|
59
62
|
|
60
|
-
|
61
|
-
|
63
|
+
DO_TOGGLE: ['Toggle On/Off'],
|
64
|
+
do_toggle!: [:DO_TOGGLE, 'activate'],
|
65
|
+
|
66
|
+
DO_HISTORY: ['History'],
|
67
|
+
do_history!: [:DO_HISTORY, 'activate'],
|
68
|
+
|
69
|
+
DO_QRCODE: ['QR-Code'],
|
70
|
+
do_qrcode!: [:DO_QRCODE, 'activate'],
|
62
71
|
|
63
72
|
window: {
|
64
73
|
set_title: "Clipboard Manager",
|
@@ -85,21 +94,34 @@ use no-ask and no-running for false.
|
|
85
94
|
history_button: h0,
|
86
95
|
history_button!: [:HISTORY_BUTTON, :history_button],
|
87
96
|
|
88
|
-
HISTORY_DIALOG:
|
89
|
-
history_dialog: {
|
97
|
+
HISTORY_DIALOG: a0,
|
98
|
+
history_dialog: {
|
99
|
+
set_window_position: :center,
|
100
|
+
},
|
90
101
|
history_dialog!: [:HISTORY_DIALOG, :history_dialog],
|
91
102
|
|
92
|
-
HISTORY_COMBO:
|
93
|
-
history_combo:
|
103
|
+
HISTORY_COMBO: a0,
|
104
|
+
history_combo: h0,
|
94
105
|
history_combo!: [:HISTORY_COMBO, :history_combo],
|
106
|
+
|
107
|
+
QRCODE_BUTTON: [label: 'QR-Code'],
|
108
|
+
qrcode_button: h0,
|
109
|
+
qrcode_button!: [:QRCODE_BUTTON, :qrcode_button],
|
110
|
+
|
111
|
+
QUESTION_DIALOG: a0,
|
112
|
+
question_dialog: {
|
113
|
+
set_window_position: :center,
|
114
|
+
set_keep_above: true,
|
115
|
+
},
|
116
|
+
question_dialog!: [:question_dialog, :QUESTION_DIALOG],
|
95
117
|
},
|
96
118
|
|
97
119
|
# Note that Ruby 2 hashes preserves order, and order here is important.
|
98
120
|
tasks: {
|
99
121
|
mplayer: [
|
100
|
-
'https?://www\.youtube\.com
|
101
|
-
:
|
102
|
-
"wget -O - $(youtube-dl -f 5/36/17/18 -g '$
|
122
|
+
'(https?://www\.youtube\.com/watch\?v=[\w\-]+)',
|
123
|
+
:bashit,
|
124
|
+
"wget --quiet -O - $(youtube-dl -f 5/36/17/18 -g '$1') | mplayer -really-quiet -cache 8192 -cache-min 1 -",
|
103
125
|
],
|
104
126
|
firefox: ['^https?://www.amazon.com/', :firefox],
|
105
127
|
espeak: ['.{80,}', :espeak],
|
metadata
CHANGED
@@ -1,15 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clipboard_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- carlosjhr64
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
12
|
-
dependencies:
|
11
|
+
date: 2014-11-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: gtk3app
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.0.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.0'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.0.0
|
13
33
|
description: |
|
14
34
|
Ruby Gtk3App Clipboard Manager.
|
15
35
|
email: carlosjhr64@gmail.com
|
@@ -19,6 +39,7 @@ extra_rdoc_files:
|
|
19
39
|
- README.rdoc
|
20
40
|
files:
|
21
41
|
- README.rdoc
|
42
|
+
- config/config.yml
|
22
43
|
- data/VERSION
|
23
44
|
- data/logo.png
|
24
45
|
- data/nope.png
|
@@ -52,8 +73,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
52
73
|
version: '0'
|
53
74
|
requirements:
|
54
75
|
- 'ruby: ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux]'
|
55
|
-
- '
|
76
|
+
- 'zbarcam: 0.10'
|
56
77
|
- 'firefox: Mozilla Firefox 33.1'
|
78
|
+
- 'espeak: eSpeak text-to-speech: 1.47.11 03.May.13 Data at: /usr/share/espeak-data'
|
57
79
|
- 'system: linux/bash'
|
58
80
|
rubyforge_project:
|
59
81
|
rubygems_version: 2.4.1
|