ruby_do 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/Gemfile.lock +3 -0
- data/VERSION +1 -1
- data/bin/ruby_do.rb +9 -1
- data/glade/win_properties.glade +35 -1
- data/gui/win_main.rb +48 -18
- data/gui/win_properties.rb +18 -4
- data/include/database.rb +21 -1
- data/include/models.rb +4 -1
- data/include/plugin.rb +91 -8
- data/lib/ruby_do.rb +14 -1
- data/models/plugin.rb +4 -0
- data/models/static_result.rb +9 -0
- data/ruby_do.gemspec +6 -2
- metadata +25 -13
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -44,6 +44,8 @@ GEM
|
|
44
44
|
diff-lcs (~> 1.1.2)
|
45
45
|
rspec-mocks (2.8.0)
|
46
46
|
sqlite3 (1.3.6)
|
47
|
+
threadded_enumerator (0.0.0)
|
48
|
+
tsafe
|
47
49
|
tsafe (0.0.1)
|
48
50
|
wref (0.0.4)
|
49
51
|
|
@@ -60,3 +62,4 @@ DEPENDENCIES
|
|
60
62
|
rdoc (~> 3.12)
|
61
63
|
rspec (~> 2.8.0)
|
62
64
|
sqlite3
|
65
|
+
threadded_enumerator
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/bin/ruby_do.rb
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require "rubygems"
|
4
|
-
|
4
|
+
|
5
|
+
|
6
|
+
#Enable local dev-mode.
|
7
|
+
if File.exists?("/home/kaspernj/Dev/Ruby/knjrbfw")
|
8
|
+
require "/home/kaspernj/Dev/Ruby/knjrbfw/lib/knjrbfw.rb"
|
9
|
+
else
|
10
|
+
require "knjrbfw"
|
11
|
+
end
|
12
|
+
|
5
13
|
|
6
14
|
args = {
|
7
15
|
:path => "#{Knj::Os.homedir}/.ruby_do",
|
data/glade/win_properties.glade
CHANGED
@@ -141,9 +141,10 @@
|
|
141
141
|
<property name="can_focus">False</property>
|
142
142
|
<property name="spacing">4</property>
|
143
143
|
<child>
|
144
|
-
<object class="GtkTable" id="
|
144
|
+
<object class="GtkTable" id="tablePlugin">
|
145
145
|
<property name="visible">True</property>
|
146
146
|
<property name="can_focus">False</property>
|
147
|
+
<property name="n_rows">2</property>
|
147
148
|
<property name="n_columns">2</property>
|
148
149
|
<property name="column_spacing">4</property>
|
149
150
|
<property name="row_spacing">4</property>
|
@@ -163,6 +164,39 @@
|
|
163
164
|
<property name="y_options">GTK_FILL</property>
|
164
165
|
</packing>
|
165
166
|
</child>
|
167
|
+
<child>
|
168
|
+
<object class="GtkLabel" id="label2">
|
169
|
+
<property name="visible">True</property>
|
170
|
+
<property name="can_focus">False</property>
|
171
|
+
<property name="xalign">0</property>
|
172
|
+
<property name="label" translatable="yes">Order no.</property>
|
173
|
+
</object>
|
174
|
+
<packing>
|
175
|
+
<property name="top_attach">1</property>
|
176
|
+
<property name="bottom_attach">2</property>
|
177
|
+
<property name="x_options">GTK_FILL</property>
|
178
|
+
<property name="y_options">GTK_FILL</property>
|
179
|
+
</packing>
|
180
|
+
</child>
|
181
|
+
<child>
|
182
|
+
<object class="GtkEntry" id="txtPluginOrderNo">
|
183
|
+
<property name="visible">True</property>
|
184
|
+
<property name="can_focus">True</property>
|
185
|
+
<property name="invisible_char">•</property>
|
186
|
+
<property name="primary_icon_activatable">False</property>
|
187
|
+
<property name="secondary_icon_activatable">False</property>
|
188
|
+
<property name="primary_icon_sensitive">True</property>
|
189
|
+
<property name="secondary_icon_sensitive">True</property>
|
190
|
+
<signal name="changed" handler="on_txtPluginOrderNo_changed" swapped="no"/>
|
191
|
+
</object>
|
192
|
+
<packing>
|
193
|
+
<property name="left_attach">1</property>
|
194
|
+
<property name="right_attach">2</property>
|
195
|
+
<property name="top_attach">1</property>
|
196
|
+
<property name="bottom_attach">2</property>
|
197
|
+
<property name="y_options">GTK_FILL</property>
|
198
|
+
</packing>
|
199
|
+
</child>
|
166
200
|
</object>
|
167
201
|
<packing>
|
168
202
|
<property name="expand">False</property>
|
data/gui/win_main.rb
CHANGED
@@ -37,10 +37,22 @@ class Ruby_do::Gui::Win_main
|
|
37
37
|
|
38
38
|
#Updates the icon, title and description to match the current result (if any).
|
39
39
|
def update_res
|
40
|
-
if @
|
41
|
-
@
|
42
|
-
|
43
|
-
|
40
|
+
if @results and @enum
|
41
|
+
while @results.length <= @result_i
|
42
|
+
begin
|
43
|
+
@results << @enum.next
|
44
|
+
rescue StopIteration
|
45
|
+
@result_i -= 1
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
cur_res = @results[@result_i]
|
50
|
+
end
|
51
|
+
|
52
|
+
if cur_res
|
53
|
+
@gui["labActionTitle"].markup = "<b>#{@result_i + 1}</b> - " + cur_res.title_html!
|
54
|
+
@gui["labActionDescr"].label = cur_res.descr_html!
|
55
|
+
@gui["imgActionIcon"].pixbuf = cur_res.icon_pixbuf!
|
44
56
|
else
|
45
57
|
@gui["labActionTitle"].markup = "<b>#{Knj::Web.html(_("Nothing found"))}</b>"
|
46
58
|
@gui["labActionDescr"].label = _("Please enter something in the search text-field to do something.")
|
@@ -53,6 +65,7 @@ class Ruby_do::Gui::Win_main
|
|
53
65
|
Gtk.timeout_remove(@timeout) if @timeout
|
54
66
|
@timeout = Gtk.timeout_add(500) do
|
55
67
|
self.on_txtSearch_changed_wait
|
68
|
+
@timeout = nil
|
56
69
|
false
|
57
70
|
end
|
58
71
|
end
|
@@ -61,39 +74,48 @@ class Ruby_do::Gui::Win_main
|
|
61
74
|
def on_txtSearch_changed_wait
|
62
75
|
return nil if @gui["window"].destroyed?
|
63
76
|
|
77
|
+
@enum = nil
|
78
|
+
@result_i = 0
|
79
|
+
@results = []
|
80
|
+
|
64
81
|
text = @gui["txtSearch"].text
|
65
82
|
words = text.split(/\s+/).map{|ele| ele.downcase}
|
66
83
|
|
67
|
-
if words.empty?
|
68
|
-
|
69
|
-
|
70
|
-
@enum = @args[:rdo].plugin.send(:text => text, :words => words)
|
71
|
-
|
72
|
-
begin
|
73
|
-
@cur_res = @enum.next
|
74
|
-
rescue StopIteration
|
75
|
-
@cur_res = nil
|
76
|
-
end
|
84
|
+
if !words.empty?
|
85
|
+
#Need to use threadded enumerator because of fiber failure otherwise.
|
86
|
+
@enum = Threadded_enumerator.new(:enum => @args[:rdo].plugin.send(:text => text, :words => words))
|
77
87
|
end
|
78
88
|
|
79
89
|
self.update_res
|
80
90
|
end
|
81
91
|
|
92
|
+
def prev_result
|
93
|
+
@result_i -= 1 if @result_i > 0
|
94
|
+
self.update_res
|
95
|
+
end
|
96
|
+
|
97
|
+
def next_result
|
98
|
+
@result_i += 1
|
99
|
+
self.update_res
|
100
|
+
end
|
101
|
+
|
82
102
|
#This happens when <ENTER> is pressed while the search-textfield has focus.
|
83
103
|
def on_txtSearch_activate
|
84
104
|
#If enter was pressed before search was executed, then be sure to execute a search first and disable the timeout, so search wont be done two times.
|
85
|
-
if @timeout
|
105
|
+
if @timeout and !@enum and @result_i == 0
|
86
106
|
Gtk.timeout_remove(@timeout)
|
87
107
|
self.on_txtSearch_changed_wait
|
88
108
|
end
|
89
109
|
|
90
|
-
|
110
|
+
cur_res = @results[@result_i]
|
111
|
+
|
112
|
+
if !cur_res
|
91
113
|
Knj::Gtk2.msgbox(_("Please search for something in order to activate."))
|
92
114
|
return nil
|
93
115
|
end
|
94
116
|
|
95
117
|
begin
|
96
|
-
res =
|
118
|
+
res = cur_res.execute
|
97
119
|
|
98
120
|
if res == :close_win_main
|
99
121
|
@gui["window"].destroy
|
@@ -105,8 +127,16 @@ class Ruby_do::Gui::Win_main
|
|
105
127
|
|
106
128
|
#In order the register <ESCAPE>-presses.
|
107
129
|
def on_txtSearch_key_press_event(entry, eventkey)
|
108
|
-
|
130
|
+
name = Gdk::Keyval.to_name(eventkey.keyval).to_s.downcase
|
131
|
+
|
132
|
+
if name == "escape"
|
109
133
|
@gui["window"].destroy
|
134
|
+
elsif name == "down"
|
135
|
+
self.next_result
|
136
|
+
return true
|
137
|
+
elsif name == "up"
|
138
|
+
self.prev_result
|
139
|
+
return true
|
110
140
|
end
|
111
141
|
end
|
112
142
|
|
data/gui/win_properties.rb
CHANGED
@@ -52,17 +52,31 @@ class Ruby_do::Gui::Win_properties
|
|
52
52
|
sel = Knj::Gtk2::Tv.sel(@gui["tvPlugins"])
|
53
53
|
model = @args[:rdo].ob.get_by(:Plugin, {"classname" => sel[0]}) if sel
|
54
54
|
|
55
|
-
if model
|
56
|
-
@gui["
|
55
|
+
if model
|
56
|
+
@gui["tablePlugin"].show
|
57
|
+
|
58
|
+
if model[:active].to_i == 1
|
59
|
+
@gui["cbPluginActivate"].active = true
|
60
|
+
else
|
61
|
+
@gui["cbPluginActivate"].active = false
|
62
|
+
end
|
63
|
+
|
64
|
+
@gui["txtPluginOrderNo"].text = model[:order_no].to_s
|
57
65
|
else
|
58
|
-
@gui["
|
66
|
+
@gui["tablePlugin"].hide
|
59
67
|
end
|
60
68
|
|
61
69
|
self.load_widget
|
62
|
-
|
63
70
|
@gui["boxPluginOptions"].show_all
|
64
71
|
end
|
65
72
|
|
73
|
+
def on_txtPluginOrderNo_changed
|
74
|
+
sel = Knj::Gtk2::Tv.sel(@gui["tvPlugins"])
|
75
|
+
model = @args[:rdo].ob.get_by(:Plugin, {"classname" => sel[0]}) if sel
|
76
|
+
return nil if !model
|
77
|
+
model[:order_no] = @gui["txtPluginOrderNo"].text
|
78
|
+
end
|
79
|
+
|
66
80
|
def load_widget
|
67
81
|
#Remove plugin-widgets.
|
68
82
|
@gui["boxPluginOptions"].children.each do |child|
|
data/include/database.rb
CHANGED
@@ -16,11 +16,31 @@ class Ruby_do::Database
|
|
16
16
|
{"name" => "id", "type" => "int", "autoincr" => true, "primarykey" => true},
|
17
17
|
{"name" => "name", "type" => "varchar"},
|
18
18
|
{"name" => "classname", "type" => "varchar"},
|
19
|
+
{"name" => "order_no", "type" => "int"},
|
19
20
|
{"name" => "active", "type" => "enum", "maxlength" => "'0','1'", "default" => 0}
|
20
21
|
],
|
21
22
|
"indexes" => [
|
22
23
|
"name",
|
23
|
-
"classname"
|
24
|
+
"classname",
|
25
|
+
"order_no"
|
26
|
+
]
|
27
|
+
},
|
28
|
+
"Static_result" => {
|
29
|
+
"columns" => [
|
30
|
+
{"name" => "id", "type" => "int", "autoincr" => true, "primarykey" => true},
|
31
|
+
{"name" => "plugin_id", "type" => "int"},
|
32
|
+
{"name" => "id_str", "type" => "varchar"},
|
33
|
+
{"name" => "title", "type" => "varchar"},
|
34
|
+
{"name" => "title_lower", "type" => "varchar"},
|
35
|
+
{"name" => "descr", "type" => "text"},
|
36
|
+
{"name" => "data", "type" => "text"},
|
37
|
+
{"name" => "icon_path", "type" => "text"}
|
38
|
+
],
|
39
|
+
"indexes" => [
|
40
|
+
"plugin_id",
|
41
|
+
"id_str",
|
42
|
+
"title",
|
43
|
+
"title_lower"
|
24
44
|
]
|
25
45
|
}
|
26
46
|
}
|
data/include/models.rb
CHANGED
data/include/plugin.rb
CHANGED
@@ -1,8 +1,4 @@
|
|
1
1
|
class Ruby_do::Plugin
|
2
|
-
def self.const_missing(name)
|
3
|
-
|
4
|
-
end
|
5
|
-
|
6
2
|
attr_reader :plugins
|
7
3
|
|
8
4
|
def register_plugins
|
@@ -41,6 +37,8 @@ class Ruby_do::Plugin
|
|
41
37
|
|
42
38
|
plugin.model = model
|
43
39
|
model.plugin = plugin
|
40
|
+
|
41
|
+
plugin.start if plugin.respond_to?(:start)
|
44
42
|
rescue NameError => e
|
45
43
|
$stderr.puts "Cant loading plugin '#{match[1]}' because of the following."
|
46
44
|
$stderr.puts e.inspect
|
@@ -57,9 +55,44 @@ class Ruby_do::Plugin
|
|
57
55
|
|
58
56
|
def send(args)
|
59
57
|
return Enumerator.new do |yielder|
|
60
|
-
|
61
|
-
|
62
|
-
|
58
|
+
plugins_active = []
|
59
|
+
@args[:rdo].ob.list(:Plugin, "active" => 1, "orderby" => "order_no") do |plugin|
|
60
|
+
plugins_active << plugin
|
61
|
+
end
|
62
|
+
|
63
|
+
plugins_active_ids = plugins_active.clone.map{|d| d.id.to_i}
|
64
|
+
found = []
|
65
|
+
|
66
|
+
#Search for exact static results.
|
67
|
+
@args[:rdo].ob.list(:Static_result, "plugin_id" => plugins_active_ids, "title_lower" => args[:text].to_s.strip.downcase) do |sres|
|
68
|
+
yielder << Ruby_do::Plugin::Result.new(
|
69
|
+
:title => sres[:title],
|
70
|
+
:descr => sres[:descr],
|
71
|
+
:icon => sres[:icon_path],
|
72
|
+
:static_result => true,
|
73
|
+
:sres => sres
|
74
|
+
)
|
75
|
+
|
76
|
+
found << sres.id
|
77
|
+
end
|
78
|
+
|
79
|
+
#Search for close static results.
|
80
|
+
@args[:rdo].ob.list(:Static_result, "plugin_id" => plugins_active_ids, "title_lower_search" => args[:text].to_s.strip.downcase, "id_not" => found) do |sres|
|
81
|
+
yielder << Ruby_do::Plugin::Result.new(
|
82
|
+
:title => sres[:title],
|
83
|
+
:descr => sres[:descr],
|
84
|
+
:icon => sres[:icon_path],
|
85
|
+
:static_result => true,
|
86
|
+
:sres => sres
|
87
|
+
)
|
88
|
+
|
89
|
+
found << sres.id
|
90
|
+
end
|
91
|
+
|
92
|
+
#Call plugins to get further results.
|
93
|
+
plugins_active.each do |plugin_model|
|
94
|
+
plugin_instance = plugin_model.plugin
|
95
|
+
next if !plugin_instance.respond_to?(:on_search)
|
63
96
|
|
64
97
|
begin
|
65
98
|
enum = plugin_instance.on_search(args)
|
@@ -76,7 +109,6 @@ class Ruby_do::Plugin
|
|
76
109
|
|
77
110
|
class Base
|
78
111
|
attr_accessor :model
|
79
|
-
|
80
112
|
attr_reader :rdo_plugin_args
|
81
113
|
|
82
114
|
def initialize(args)
|
@@ -95,6 +127,48 @@ class Ruby_do::Plugin
|
|
95
127
|
def title
|
96
128
|
name = Knj::Php.ucwords(self.class.name.to_s[15, 999].gsub("_", " "))
|
97
129
|
end
|
130
|
+
|
131
|
+
def static_result_exists?(id_str)
|
132
|
+
sres = self.static_result_get(id_str)
|
133
|
+
|
134
|
+
if sres
|
135
|
+
return true
|
136
|
+
else
|
137
|
+
return false
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def static_result_get(id_str)
|
142
|
+
return @rdo_plugin_args[:rdo].ob.get_by(:Static_result, "plugin_id" => self.model.id, "id_str" => id_str)
|
143
|
+
end
|
144
|
+
|
145
|
+
def register_static_result(args)
|
146
|
+
raise "Argument was not a hash." if !args.is_a?(Hash)
|
147
|
+
raise "':id_str' was empty." if args[:id_str].to_s.strip.empty?
|
148
|
+
raise "':title' was empty." if args[:title].to_s.strip.empty?
|
149
|
+
raise "':descr' was empty." if args[:descr].to_s.strip.empty?
|
150
|
+
|
151
|
+
args[:data] = {} if !args[:data]
|
152
|
+
|
153
|
+
sres_hash = {
|
154
|
+
:title => args[:title],
|
155
|
+
:title_lower => args[:title].to_s.strip.downcase,
|
156
|
+
:id_str => args[:id_str],
|
157
|
+
:descr => args[:descr],
|
158
|
+
:icon_path => args[:icon_path],
|
159
|
+
:data => Marshal.dump(args[:data])
|
160
|
+
}
|
161
|
+
|
162
|
+
if sres = self.static_result_get(args[:id_str])
|
163
|
+
sres.update(sres_hash)
|
164
|
+
else
|
165
|
+
sres = @rdo_plugin_args[:rdo].ob.add(:Static_result, sres_hash.merge(
|
166
|
+
:plugin_id => self.model.id,
|
167
|
+
))
|
168
|
+
end
|
169
|
+
|
170
|
+
return {:sres => sres}
|
171
|
+
end
|
98
172
|
end
|
99
173
|
|
100
174
|
class Result
|
@@ -156,5 +230,14 @@ class Ruby_do::Plugin
|
|
156
230
|
return "[#{_("no description")}]"
|
157
231
|
end
|
158
232
|
end
|
233
|
+
|
234
|
+
def execute
|
235
|
+
if @args[:static_result]
|
236
|
+
plugin = @args[:sres].plugin.plugin
|
237
|
+
return plugin.execute_static_result(:sres => @args[:sres])
|
238
|
+
else
|
239
|
+
return @args[:plugin].execute_result(:res => self)
|
240
|
+
end
|
241
|
+
end
|
159
242
|
end
|
160
243
|
end
|
data/lib/ruby_do.rb
CHANGED
@@ -10,7 +10,20 @@ class Ruby_do
|
|
10
10
|
def initialize(args = {})
|
11
11
|
#Require various used libs.
|
12
12
|
require "rubygems"
|
13
|
-
|
13
|
+
|
14
|
+
|
15
|
+
#Enable local dev-mode.
|
16
|
+
if File.exists?("#{File.dirname(__FILE__)}/../../knjrbfw")
|
17
|
+
require "#{File.dirname(__FILE__)}/../../knjrbfw/lib/knjrbfw.rb"
|
18
|
+
else
|
19
|
+
require "knjrbfw"
|
20
|
+
end
|
21
|
+
|
22
|
+
if File.exists?("#{File.dirname(__FILE__)}/../../threadded_enumerator")
|
23
|
+
require "#{File.dirname(__FILE__)}/../../threadded_enumerator/lib/threadded_enumerator.rb"
|
24
|
+
else
|
25
|
+
require "threadded_enumerator"
|
26
|
+
end
|
14
27
|
|
15
28
|
|
16
29
|
#Set arguments (config).
|
data/models/plugin.rb
CHANGED
data/ruby_do.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ruby_do}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kasper Johansen"]
|
12
|
-
s.date = %q{2012-07-
|
12
|
+
s.date = %q{2012-07-11}
|
13
13
|
s.default_executable = %q{ruby_do.rb}
|
14
14
|
s.description = %q{A clone of Gnome-Do and Kupfer written in Ruby.}
|
15
15
|
s.email = %q{k@spernj.org}
|
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
|
|
40
40
|
"include/unix_socket.rb",
|
41
41
|
"lib/ruby_do.rb",
|
42
42
|
"models/plugin.rb",
|
43
|
+
"models/static_result.rb",
|
43
44
|
"ruby_do.gemspec",
|
44
45
|
"spec/ruby_do_spec.rb",
|
45
46
|
"spec/spec_helper.rb"
|
@@ -58,6 +59,7 @@ Gem::Specification.new do |s|
|
|
58
59
|
s.add_runtime_dependency(%q<knjrbfw>, [">= 0"])
|
59
60
|
s.add_runtime_dependency(%q<gettext>, [">= 0"])
|
60
61
|
s.add_runtime_dependency(%q<sqlite3>, [">= 0"])
|
62
|
+
s.add_runtime_dependency(%q<threadded_enumerator>, [">= 0"])
|
61
63
|
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
62
64
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
63
65
|
s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
|
@@ -68,6 +70,7 @@ Gem::Specification.new do |s|
|
|
68
70
|
s.add_dependency(%q<knjrbfw>, [">= 0"])
|
69
71
|
s.add_dependency(%q<gettext>, [">= 0"])
|
70
72
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
73
|
+
s.add_dependency(%q<threadded_enumerator>, [">= 0"])
|
71
74
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
72
75
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
73
76
|
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
@@ -79,6 +82,7 @@ Gem::Specification.new do |s|
|
|
79
82
|
s.add_dependency(%q<knjrbfw>, [">= 0"])
|
80
83
|
s.add_dependency(%q<gettext>, [">= 0"])
|
81
84
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
85
|
+
s.add_dependency(%q<threadded_enumerator>, [">= 0"])
|
82
86
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
83
87
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
84
88
|
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: ruby_do
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Kasper Johansen
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-07-
|
13
|
+
date: 2012-07-11 00:00:00 +02:00
|
14
14
|
default_executable: ruby_do.rb
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -58,8 +58,19 @@ dependencies:
|
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: *id004
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
|
-
name:
|
61
|
+
name: threadded_enumerator
|
62
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: "0"
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: rspec
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
63
74
|
none: false
|
64
75
|
requirements:
|
65
76
|
- - ~>
|
@@ -67,10 +78,10 @@ dependencies:
|
|
67
78
|
version: 2.8.0
|
68
79
|
type: :development
|
69
80
|
prerelease: false
|
70
|
-
version_requirements: *
|
81
|
+
version_requirements: *id006
|
71
82
|
- !ruby/object:Gem::Dependency
|
72
83
|
name: rdoc
|
73
|
-
requirement: &
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
74
85
|
none: false
|
75
86
|
requirements:
|
76
87
|
- - ~>
|
@@ -78,10 +89,10 @@ dependencies:
|
|
78
89
|
version: "3.12"
|
79
90
|
type: :development
|
80
91
|
prerelease: false
|
81
|
-
version_requirements: *
|
92
|
+
version_requirements: *id007
|
82
93
|
- !ruby/object:Gem::Dependency
|
83
94
|
name: bundler
|
84
|
-
requirement: &
|
95
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
85
96
|
none: false
|
86
97
|
requirements:
|
87
98
|
- - ">="
|
@@ -89,10 +100,10 @@ dependencies:
|
|
89
100
|
version: 1.0.0
|
90
101
|
type: :development
|
91
102
|
prerelease: false
|
92
|
-
version_requirements: *
|
103
|
+
version_requirements: *id008
|
93
104
|
- !ruby/object:Gem::Dependency
|
94
105
|
name: jeweler
|
95
|
-
requirement: &
|
106
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
96
107
|
none: false
|
97
108
|
requirements:
|
98
109
|
- - ~>
|
@@ -100,10 +111,10 @@ dependencies:
|
|
100
111
|
version: 1.8.4
|
101
112
|
type: :development
|
102
113
|
prerelease: false
|
103
|
-
version_requirements: *
|
114
|
+
version_requirements: *id009
|
104
115
|
- !ruby/object:Gem::Dependency
|
105
116
|
name: rcov
|
106
|
-
requirement: &
|
117
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
107
118
|
none: false
|
108
119
|
requirements:
|
109
120
|
- - ">="
|
@@ -111,7 +122,7 @@ dependencies:
|
|
111
122
|
version: "0"
|
112
123
|
type: :development
|
113
124
|
prerelease: false
|
114
|
-
version_requirements: *
|
125
|
+
version_requirements: *id010
|
115
126
|
description: A clone of Gnome-Do and Kupfer written in Ruby.
|
116
127
|
email: k@spernj.org
|
117
128
|
executables:
|
@@ -143,6 +154,7 @@ files:
|
|
143
154
|
- include/unix_socket.rb
|
144
155
|
- lib/ruby_do.rb
|
145
156
|
- models/plugin.rb
|
157
|
+
- models/static_result.rb
|
146
158
|
- ruby_do.gemspec
|
147
159
|
- spec/ruby_do_spec.rb
|
148
160
|
- spec/spec_helper.rb
|
@@ -160,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
160
172
|
requirements:
|
161
173
|
- - ">="
|
162
174
|
- !ruby/object:Gem::Version
|
163
|
-
hash: -
|
175
|
+
hash: -2303673294360816635
|
164
176
|
segments:
|
165
177
|
- 0
|
166
178
|
version: "0"
|