knjrbfw 0.0.78 → 0.0.79
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.
- data/VERSION +1 -1
- data/knjrbfw.gemspec +2 -2
- data/lib/knj/eruby.rb +1 -1
- data/lib/knj/gtk2_tv.rb +63 -10
- data/lib/knj/strings.rb +26 -7
- data/spec/strings_spec.rb +22 -0
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.79
|
data/knjrbfw.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{knjrbfw}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.79"
|
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-08-
|
12
|
+
s.date = %q{2012-08-07}
|
13
13
|
s.description = %q{Including stuff for HTTP, SSH and much more.}
|
14
14
|
s.email = %q{k@spernj.org}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/knj/eruby.rb
CHANGED
@@ -51,7 +51,7 @@ class Knj::Eruby
|
|
51
51
|
cachetime = File.mtime(cachename) if File.exists?(cachename)
|
52
52
|
|
53
53
|
if !File.exists?(cachename) or filetime > cachetime
|
54
|
-
Knj::Eruby::Handler.load_file(filename,
|
54
|
+
Knj::Eruby::Handler.load_file(filename, :cachename => cachename)
|
55
55
|
File.chmod(0777, cachename)
|
56
56
|
cachetime = File.mtime(cachename)
|
57
57
|
reload_cache = true
|
data/lib/knj/gtk2_tv.rb
CHANGED
@@ -45,11 +45,9 @@ module Knj::Gtk2::Tv
|
|
45
45
|
renderer = Gtk::CellRendererText.new
|
46
46
|
col = Gtk::TreeViewColumn.new(args[:title], renderer, col_args)
|
47
47
|
col.resizable = true
|
48
|
-
tv.append_column(col)
|
49
48
|
elsif args[:type] == :toggle
|
50
49
|
renderer = Gtk::CellRendererToggle.new
|
51
50
|
col = Gtk::TreeViewColumn.new(args[:title], renderer, :active => count)
|
52
|
-
tv.append_column(col)
|
53
51
|
elsif args[:type] == :combo
|
54
52
|
renderer = Gtk::CellRendererCombo.new
|
55
53
|
renderer.text_column = 0
|
@@ -61,16 +59,29 @@ module Knj::Gtk2::Tv
|
|
61
59
|
end
|
62
60
|
|
63
61
|
col = Gtk::TreeViewColumn.new(args[:title], renderer, col_args)
|
62
|
+
col.resizable = true
|
64
63
|
|
65
64
|
renderer.model = args[:model] if args.key?(:model)
|
66
65
|
renderer.has_entry = args[:has_entry] if args.key?(:has_entry)
|
67
|
-
tv.append_column(col)
|
68
66
|
else
|
69
67
|
raise "Invalid type: '#{args[:type]}'."
|
70
68
|
end
|
71
69
|
|
70
|
+
col.spacing = 0
|
72
71
|
col.reorderable = true
|
73
72
|
col.sort_column_id = count
|
73
|
+
|
74
|
+
if args.key?(:fixed_width)
|
75
|
+
col.sizing = Gtk::TreeViewColumn::FIXED
|
76
|
+
else
|
77
|
+
col.sizing = Gtk::TreeViewColumn::AUTOSIZE
|
78
|
+
end
|
79
|
+
|
80
|
+
[:min_width, :max_width, :fixed_width, :expand, :spacing, :reorderable].each do |arg|
|
81
|
+
col.__send__("#{arg}=", args[arg]) if args.key?(arg)
|
82
|
+
end
|
83
|
+
|
84
|
+
tv.append_column(col)
|
74
85
|
ret[:renderers] << renderer
|
75
86
|
count += 1
|
76
87
|
end
|
@@ -148,6 +159,15 @@ module Knj::Gtk2::Tv
|
|
148
159
|
:human_number => {
|
149
160
|
:value => proc{ |data| Knj::Locales.number_in(data[:value]) },
|
150
161
|
:value_set => proc{ |data| Knj::Locales.number_out(data[:value], data[:col_data][:decimals]) }
|
162
|
+
},
|
163
|
+
:toggle_rev => {
|
164
|
+
:value_set => lambda{|data|
|
165
|
+
if data[:value]
|
166
|
+
return false
|
167
|
+
else
|
168
|
+
return true
|
169
|
+
end
|
170
|
+
}
|
151
171
|
}
|
152
172
|
}
|
153
173
|
|
@@ -184,6 +204,16 @@ module Knj::Gtk2::Tv
|
|
184
204
|
end
|
185
205
|
end
|
186
206
|
|
207
|
+
if col_data[:on_edit]
|
208
|
+
renderer.signal_connect("editing-started") do |renderer, row_no, path|
|
209
|
+
iter = args[:tv].model.get_iter(path)
|
210
|
+
id = args[:tv].model.get_value(iter, args[:id_col])
|
211
|
+
model_obj = args[:ob].get(args[:model_class], id)
|
212
|
+
|
213
|
+
col_data[:on_edit].call(:renderer => renderer, :row_no => row_no, :path => path, :iter => iter, :args => args, :model => model_obj, :col_no => col_no, :col_data => col_data)
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
187
217
|
if renderer.is_a?(Gtk::CellRendererText)
|
188
218
|
renderer.editable = true
|
189
219
|
renderer.signal_connect("edited") do |renderer, row_no, value|
|
@@ -230,10 +260,19 @@ module Knj::Gtk2::Tv
|
|
230
260
|
end
|
231
261
|
elsif renderer.is_a?(Gtk::CellRendererToggle)
|
232
262
|
renderer.activatable = true
|
233
|
-
renderer.signal_connect("toggled") do |renderer, path
|
263
|
+
renderer.signal_connect("toggled") do |renderer, path|
|
234
264
|
iter = args[:tv].model.get_iter(path)
|
235
265
|
id = args[:tv].model.get_value(iter, 0)
|
236
266
|
model_obj = args[:ob].get(args[:model_class], id)
|
267
|
+
|
268
|
+
if model_obj[col_data[:col]].to_i == 1
|
269
|
+
value = false
|
270
|
+
value_i = 0
|
271
|
+
else
|
272
|
+
value = true
|
273
|
+
value_i = 1
|
274
|
+
end
|
275
|
+
|
237
276
|
callback_hash = {:args => args, :value => value, :model => model_obj, :col_no => col_no, :col_data => col_data}
|
238
277
|
|
239
278
|
if col_data[:value_callback]
|
@@ -246,16 +285,30 @@ module Knj::Gtk2::Tv
|
|
246
285
|
end
|
247
286
|
end
|
248
287
|
|
288
|
+
if value
|
289
|
+
value_i = 1
|
290
|
+
else
|
291
|
+
value_i = 0
|
292
|
+
end
|
293
|
+
|
294
|
+
callback_hash[:value] = value
|
295
|
+
|
249
296
|
if !cancel
|
250
297
|
args[:change_before].call(callback_hash) if args[:change_before]
|
251
298
|
begin
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
299
|
+
model_obj[col_data[:col]] = value_i
|
300
|
+
|
301
|
+
if col_data.key?(:value_set_callback)
|
302
|
+
value = col_data[:value_set_callback].call(callback_hash)
|
303
|
+
|
304
|
+
if value
|
305
|
+
value_i = 1
|
306
|
+
else
|
307
|
+
value_i = 0
|
308
|
+
end
|
258
309
|
end
|
310
|
+
|
311
|
+
iter[col_no] = value_i
|
259
312
|
ensure
|
260
313
|
args[:change_after].call(:args => args) if args[:change_after]
|
261
314
|
end
|
data/lib/knj/strings.rb
CHANGED
@@ -54,9 +54,7 @@ module Knj::Strings
|
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
-
|
58
|
-
|
59
|
-
return regex
|
57
|
+
return Regexp.new(pattern, arg_two)
|
60
58
|
end
|
61
59
|
|
62
60
|
#Partens a string up in blocks for whatever words can be used to search for. Supports a block or returns an array.
|
@@ -272,8 +270,23 @@ module Knj::Strings
|
|
272
270
|
end
|
273
271
|
end
|
274
272
|
|
273
|
+
#Returns a short time-format for the given amount of seconds.
|
274
|
+
def self.secs_to_human_short_time(secs)
|
275
|
+
secs = secs.to_i
|
276
|
+
|
277
|
+
return "#{secs}s" if secs < 60
|
278
|
+
|
279
|
+
mins = (secs.to_f / 60.0).floor
|
280
|
+
if mins < 60
|
281
|
+
return "#{mins.to_i}m"
|
282
|
+
end
|
283
|
+
|
284
|
+
hours = (mins.to_f / 60.0)
|
285
|
+
return "#{Knj::Locales.number_out(hours, 1)}t"
|
286
|
+
end
|
287
|
+
|
275
288
|
#Returns a human readable time-string from a given number of seconds.
|
276
|
-
def self.secs_to_human_time_str(secs)
|
289
|
+
def self.secs_to_human_time_str(secs, args = nil)
|
277
290
|
secs = secs.to_i
|
278
291
|
hours = (secs.to_f / 3600.0).floor.to_i
|
279
292
|
secs = secs - (hours * 3600)
|
@@ -281,17 +294,23 @@ module Knj::Strings
|
|
281
294
|
mins = (secs.to_f / 60).floor.to_i
|
282
295
|
secs = secs - (mins * 60)
|
283
296
|
|
284
|
-
|
297
|
+
str = "#{"%02d" % hours}:#{"%02d" % mins}"
|
298
|
+
|
299
|
+
if !args or !args.key?(:secs) or args[:secs]
|
300
|
+
str << ":#{"%02d" % secs}"
|
301
|
+
end
|
302
|
+
|
303
|
+
return str
|
285
304
|
end
|
286
305
|
|
287
306
|
#Turns a human readable time-string into a number of seconds.
|
288
307
|
def self.human_time_str_to_secs(str)
|
289
|
-
match = str.match(/^\s*(\d+)\s*:\s*(\d+)\s*:\s*(\d+)\s
|
308
|
+
match = str.match(/^\s*(\d+)\s*:\s*(\d+)(\s*:\s*(\d+)\s*|)/)
|
290
309
|
raise "Could not match string: '#{str}'." if !match
|
291
310
|
|
292
311
|
hours = match[1].to_i
|
293
312
|
minutes = match[2].to_i
|
294
|
-
secs = match[
|
313
|
+
secs = match[4].to_i
|
295
314
|
|
296
315
|
total = (hours * 3600) + (minutes * 60) + secs
|
297
316
|
return total
|
data/spec/strings_spec.rb
CHANGED
@@ -18,6 +18,11 @@ describe "Strings" do
|
|
18
18
|
#this should happen - Ruby doesnt support U-modifier...
|
19
19
|
end
|
20
20
|
|
21
|
+
regex = Knj::Strings.regex("/(\\d{6})$/")
|
22
|
+
res = "FNR. 7213820".match(regex)
|
23
|
+
raise "Not matched." if !res
|
24
|
+
raise "Expected result 1 to be '213820' but it wasnt: '#{res[1]}'." if res[1] != "213820"
|
25
|
+
|
21
26
|
res = Knj::Strings.is_regex?("Kasper")
|
22
27
|
raise "Expected res to be false but it wasnt." if res
|
23
28
|
|
@@ -28,5 +33,22 @@ describe "Strings" do
|
|
28
33
|
it "secs_to_human_time_str" do
|
29
34
|
res = Knj::Strings.secs_to_human_time_str(3695)
|
30
35
|
raise "Expected '01:01:35' but got: '#{res}'." if res != "01:01:35"
|
36
|
+
|
37
|
+
secs = Knj::Strings.human_time_str_to_secs("01:30:30")
|
38
|
+
raise "Expected secs to be 5430 but it was #{secs}" if secs != 5430
|
39
|
+
|
40
|
+
secs = Knj::Strings.human_time_str_to_secs("01:30")
|
41
|
+
raise "Expected secs to be 5400 but it was #{secs}" if secs != 5400
|
42
|
+
end
|
43
|
+
|
44
|
+
it "secs_to_human_short_time" do
|
45
|
+
res = Knj::Strings.secs_to_human_short_time(3700)
|
46
|
+
raise "Expected '1.0t' but got '#{res}'." if res != "1.0t"
|
47
|
+
|
48
|
+
res = Knj::Strings.secs_to_human_short_time(57)
|
49
|
+
raise "Expected '57s' but got '#{res}'." if res != "57s"
|
50
|
+
|
51
|
+
res = Knj::Strings.secs_to_human_short_time(185)
|
52
|
+
raise "Expected '3m' but got '#{res}'." if res != "3m"
|
31
53
|
end
|
32
54
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: knjrbfw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.79
|
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-08-
|
13
|
+
date: 2012-08-07 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -394,7 +394,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
394
394
|
requirements:
|
395
395
|
- - ">="
|
396
396
|
- !ruby/object:Gem::Version
|
397
|
-
hash:
|
397
|
+
hash: 1485433927830025325
|
398
398
|
segments:
|
399
399
|
- 0
|
400
400
|
version: "0"
|