knjrbfw 0.0.78 → 0.0.79

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.78
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.78"
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-03}
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, {:cachename => cachename})
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, value|
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
- if model_obj[col_data[:col]].to_i == 1
253
- model_obj[col_data[:col]] = 0
254
- iter[col_no] = 0
255
- else
256
- model_obj[col_data[:col]] = 1
257
- iter[col_no] = 1
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
- regex = Regexp.new(pattern, arg_two)
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
- return "#{"%02d" % hours}:#{"%02d" % mins}:#{"%02d" % secs}"
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[3].to_i
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.78
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-03 00:00:00 +02:00
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: -1132063425696658380
397
+ hash: 1485433927830025325
398
398
  segments:
399
399
  - 0
400
400
  version: "0"