knjrbfw 0.0.7 → 0.0.8

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.
Files changed (65) hide show
  1. data/Gemfile +3 -1
  2. data/VERSION +1 -1
  3. data/knjrbfw.gemspec +14 -4
  4. data/lib/knj/amixer.rb +148 -0
  5. data/lib/knj/arrayext.rb +14 -5
  6. data/lib/knj/autoload.rb +63 -57
  7. data/lib/knj/autoload/backups/facets_dictionary.rb +2 -2
  8. data/lib/knj/autoload/erubis.rb +2 -0
  9. data/lib/knj/cmd_gen.rb +71 -0
  10. data/lib/knj/compiler.rb +2 -2
  11. data/lib/knj/datarow.rb +138 -38
  12. data/lib/knj/datestamp.rb +2 -2
  13. data/lib/knj/datet.rb +72 -17
  14. data/lib/knj/erb/include.rb +5 -5
  15. data/lib/knj/errors.rb +4 -1
  16. data/lib/knj/eruby.rb +25 -11
  17. data/lib/knj/event_filemod.rb +27 -26
  18. data/lib/knj/event_handler.rb +8 -8
  19. data/lib/knj/exchangerates.rb +1 -1
  20. data/lib/knj/facebook_connect.rb +37 -0
  21. data/lib/knj/gettext_threadded.rb +4 -3
  22. data/lib/knj/google_sitemap.rb +1 -1
  23. data/lib/knj/hash_methods.rb +1 -1
  24. data/lib/knj/http.rb +35 -19
  25. data/lib/knj/http2.rb +249 -0
  26. data/lib/knj/image.rb +128 -0
  27. data/lib/knj/jruby-gtk2/gtk2.rb +1 -1
  28. data/lib/knj/knj.rb +1 -1
  29. data/lib/knj/knj_controller.rb +0 -2
  30. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +3 -3
  31. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb +11 -11
  32. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_tables.rb +2 -2
  33. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb +71 -14
  34. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb +17 -14
  35. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_tables.rb +5 -5
  36. data/lib/knj/knjdb/libknjdb.rb +33 -16
  37. data/lib/knj/knjdb/libknjdb_row.rb +8 -8
  38. data/lib/knj/maemo/fremantle-calendar/fremantle-calendar.rb +1 -1
  39. data/lib/knj/mount.rb +6 -6
  40. data/lib/knj/mutexcl.rb +2 -2
  41. data/lib/knj/objects.rb +286 -73
  42. data/lib/knj/opts.rb +11 -4
  43. data/lib/knj/os.rb +16 -3
  44. data/lib/knj/php.rb +73 -26
  45. data/lib/knj/php_parser/php_parser.rb +1 -77
  46. data/lib/knj/retry.rb +4 -4
  47. data/lib/knj/rhodes/rhodes.rb +106 -0
  48. data/lib/knj/sshrobot/sshrobot.rb +1 -1
  49. data/lib/knj/strings.rb +72 -0
  50. data/lib/knj/sysuser.rb +1 -1
  51. data/lib/knj/tests/test_http2.rb +18 -0
  52. data/lib/knj/thread.rb +1 -5
  53. data/lib/knj/thread2.rb +3 -3
  54. data/lib/knj/threadhandler.rb +2 -2
  55. data/lib/knj/threadpool.rb +4 -4
  56. data/lib/knj/translations.rb +2 -17
  57. data/lib/knj/unix_proc.rb +3 -3
  58. data/lib/knj/web.rb +156 -77
  59. data/lib/knj/webscripts/image.rhtml +22 -3
  60. data/lib/knj/x11vnc.rb +3 -3
  61. data/spec/amixer_spec.rb +27 -0
  62. data/spec/knjrbfw_spec.rb +70 -12
  63. data/testfiles/image.jpg +0 -0
  64. metadata +32 -14
  65. data/Gemfile.lock +0 -32
@@ -1,5 +1,5 @@
1
1
  <%
2
- idstr = Knj::Php.md5("#{_get["path"]}_#{_get["smartsize"].to_i}_#{_get["width"].to_i}_#{_get["height"].to_i}_#{_get["maxwidth"].to_i}_#{_get["maxheight"].to_i}")
2
+ idstr = Knj::Php.md5("#{_get["path"]}_#{_get["smartsize"].to_i}_#{_get["width"].to_i}_#{_get["height"].to_i}_#{_get["maxwidth"].to_i}_#{_get["maxheight"].to_i}_#{_get["rounded_corners"].to_i}_#{_get["border"].to_i}_#{_get["border_color"]}")
3
3
 
4
4
  tmp_use = false
5
5
  tmp_write = false
@@ -19,8 +19,15 @@
19
19
  end
20
20
  end
21
21
 
22
+ if !_get["path"] or !File.exists?(_get["path"])
23
+ print "File does not exist: '#{_get["path"]}'.\n"
24
+ exit
25
+ end
26
+
22
27
  if !tmp_use or tmp_write or _get["force"].to_i > 0
23
- pic = Magick::ImageList.new(_get["path"])
28
+ pic = Magick::Image.read(_get["path"]).first
29
+ pic.format = "png"
30
+
24
31
  width = pic.columns
25
32
  height = pic.rows
26
33
 
@@ -64,7 +71,17 @@
64
71
  pic = pic.resize_to_fit(width.to_i, height.to_i)
65
72
  end
66
73
 
67
- pic.format = "png"
74
+ if _get["rounded_corners"]
75
+ args = {:img => pic, :radius => _get["rounded_corners"].to_i}
76
+
77
+ if _get["border"] and _get["border_color"]
78
+ args[:border] = _get["border"].to_i
79
+ args[:border_color] = _get["border_color"]
80
+ end
81
+
82
+ Knj::Image.rounded_corners(args)
83
+ end
84
+
68
85
  blob_cont = pic.to_blob
69
86
  end
70
87
 
@@ -73,9 +90,11 @@
73
90
  end
74
91
 
75
92
  if tmp_use
93
+ Knj::Php.header("Last-Modified: #{time_orig.httpdate} GMT") if time_orig
76
94
  Knj::Php.header("Content-Type: image/png")
77
95
  print File.read(tmp_path)
78
96
  else
97
+ Knj::Php.header("Last-Modified: #{time_orig.httpdate} GMT") if time_orig
79
98
  Knj::Php.header("Content-Type: image/png")
80
99
  print blob_cont
81
100
  end
@@ -4,10 +4,10 @@ class Knj::X11VNC
4
4
  @open = true
5
5
 
6
6
  cmd = "x11vnc -q"
7
- cmd += " -shared" if @args[:shared] or !@args.has_key?(:shared)
8
- cmd += " -forever" if @args[:forever] or !@args.has_key?(:forever)
7
+ cmd += " -shared" if @args[:shared] or !@args.key?(:shared)
8
+ cmd += " -forever" if @args[:forever] or !@args.key?(:forever)
9
9
  cmd += " -rfbport #{@args[:port]}" if @args[:port]
10
- cmd += " -nolookup" if @args[:nolookup] or !@args.has_key?(:nolookup)
10
+ cmd += " -nolookup" if @args[:nolookup] or !@args.key?(:nolookup)
11
11
 
12
12
  print cmd + "\n"
13
13
 
@@ -0,0 +1,27 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Amixer" do
4
+ it "should load by using autoload" do
5
+ require "knjrbfw"
6
+ require "knj/autoload"
7
+
8
+ $amixer = Knj::Amixer.new
9
+ end
10
+
11
+ it "should register various devices" do
12
+ $devices = $amixer.devices
13
+ end
14
+
15
+ it "should register various mixers and do various operations on them" do
16
+ $devices.each do |name, device|
17
+ mixers = device.mixers
18
+
19
+ if device.active?(:stream => "PLAYBACK")
20
+ mixers.each do |name, mixer|
21
+ next if !mixer.volume?
22
+ mixer.vol_add -5
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -81,9 +81,34 @@ describe "Knjrbfw" do
81
81
  raise "Registered nullstamp on valid date." if Knj::Datet.is_nullstamp?("1985-06-17 10:30:00")
82
82
 
83
83
  date = Knj::Datet.in("2011-07-09 13:05:04 +0200")
84
- if date.time.localtime.to_s != "2011-07-09 15:05:04 +0200"
85
- raise "Datet didnt return expected result: '#{date.time.localtime}'."
84
+ ltime = date.localtime_str
85
+
86
+ #if RUBY_VERSION.slice(0, 3) == "1.9"
87
+ # if ltime != date.time.localtime
88
+ # raise "Calculated localtime (#{ltime}) was not the same as the real Time-localtime (#{date.time.localtime})."
89
+ # end
90
+ #end
91
+
92
+ if ltime != "2011-07-09 13:05:04 +0200"
93
+ raise "Datet didnt return expected result: '#{ltime}'."
94
+ end
95
+ end
96
+
97
+ it "should be able to compare dates" do
98
+ date1 = Knj::Datet.in("17/06 1985")
99
+ date2 = Knj::Datet.in("18/06 1985")
100
+ date3 = Knj::Datet.in("17/06 1985")
101
+
102
+ raise "Date1 was wrongly higher than date2." if date1 > date2
103
+
104
+ if date2 > date1
105
+ #do nothing.
106
+ else
107
+ raise "Date2 was wrongly not higher than date1."
86
108
  end
109
+
110
+ raise "Date1 was wrongly not the same as date3." if date1 != date3
111
+ raise "Date1 was the same as date2?" if date1 == date2
87
112
  end
88
113
 
89
114
  it "should be able to automatic generate methods on datarow-classes (has_many, has_one)." do
@@ -203,16 +228,6 @@ describe "Knjrbfw" do
203
228
  raise "Unexpected result from ArrayExt." if res != "'1','2','3'"
204
229
  end
205
230
 
206
- it "should be able to generate valid SQL based on arrays." do
207
- ret = $ob.sqlhelper({
208
- "test_col" => [1, 2, 3]
209
- },{
210
- :cols_str => ["test_col"]
211
- })
212
-
213
- raise "Unexpected SQL for generating based on array: '#{ret[:sql_where]}'" if ret[:sql_where] != " AND `test_col` IN ('1','2','3')"
214
- end
215
-
216
231
  it "should be able to execute various forms of Web.input methods." do
217
232
  html = Knj::Web.inputs([{
218
233
  :title => "Test 1",
@@ -267,6 +282,48 @@ describe "Knjrbfw" do
267
282
  end
268
283
  end
269
284
 
285
+ it "should be able to properly parse 'Set-Cookie' headers." do
286
+ data = Knj::Web.parse_set_cookies("TestCookie=TestValue+; Expires=Fri, 05 Aug 2011 10:58:17 GMT; Path=\n")
287
+
288
+ raise "No data returned?" if !data or !data.respond_to?(:length)
289
+ raise "Wrong number of cookies returned: '#{data.length}'." if data.length != 1
290
+
291
+ raise "Unexpected name: '#{data[0]["name"]}'." if data[0]["name"] != "TestCookie"
292
+ raise "Unexpected value: '#{data[0]["value"]}'." if data[0]["value"] != "TestValue "
293
+ raise "Unexpected path: '#{data[0]["path"]}'." if data[0]["path"] != ""
294
+ raise "Unexpected expire:' #{data[0]["expire"]}'." if data[0]["expires"] != "Fri, 05 Aug 2011 10:58:17 GMT"
295
+ end
296
+
297
+ it "should be able to draw rounded transparent corners on images." do
298
+ pic = Magick::Image.read("#{File.dirname(__FILE__)}/../testfiles/image.jpg").first
299
+ pic.format = "png"
300
+
301
+ Knj::Image.rounded_corners(
302
+ :img => pic,
303
+ :radius => 10
304
+ )
305
+
306
+ blob_cont = pic.to_blob
307
+ end
308
+
309
+ it "should be possible to use Strings.html_links-method." do
310
+ teststr = "This is a test. http://www.google.com This is a test."
311
+
312
+
313
+ #Test normal usage.
314
+ test1 = Knj::Strings.html_links(teststr)
315
+ raise "Unexpected string: '#{teststr}'" if test1 != "This is a test. <a href=\"http://www.google.com\">http://www.google.com</a> This is a test."
316
+
317
+
318
+ #Test with a block.
319
+ test2 = Knj::Strings.html_links(teststr) do |data|
320
+ data[:str].gsub(data[:match][0], "TEST")
321
+ end
322
+
323
+ raise "Unexpected string: '#{test2}'." if test2 != "This is a test. TEST This is a test."
324
+ end
325
+
326
+ =begin
270
327
  it "should be able to use Knj::Mutexcl with advanced arguments." do
271
328
  mutex = Knj::Mutexcl.new(
272
329
  :modes => {
@@ -334,4 +391,5 @@ describe "Knjrbfw" do
334
391
  sleep 0.35
335
392
  raise "Count should be 4 but it wasnt: '#{$count}'." if $count != 4
336
393
  end
394
+ =end
337
395
  end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knjrbfw
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-03 00:00:00.000000000 +02:00
12
+ date: 2011-11-15 00:00:00.000000000 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &13561560 !ruby/object:Gem::Requirement
17
+ requirement: &20019120 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 2.3.0
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *13561560
25
+ version_requirements: *20019120
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &13537480 !ruby/object:Gem::Requirement
28
+ requirement: &20018500 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.0.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *13537480
36
+ version_requirements: *20018500
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: jeweler
39
- requirement: &13534260 !ruby/object:Gem::Requirement
39
+ requirement: &20017840 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.6.3
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *13534260
47
+ version_requirements: *20017840
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rcov
50
- requirement: &13526740 !ruby/object:Gem::Requirement
50
+ requirement: &20017240 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *13526740
58
+ version_requirements: *20017240
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: sqlite3
61
- requirement: &13524020 !ruby/object:Gem::Requirement
61
+ requirement: &20016640 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,7 +66,18 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *13524020
69
+ version_requirements: *20016640
70
+ - !ruby/object:Gem::Dependency
71
+ name: rmagick
72
+ requirement: &20016040 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: *20016040
70
81
  description: Including stuff for HTTP, SSH and much more.
71
82
  email: k@spernj.org
72
83
  executables: []
@@ -78,13 +89,13 @@ files:
78
89
  - .document
79
90
  - .rspec
80
91
  - Gemfile
81
- - Gemfile.lock
82
92
  - LICENSE.txt
83
93
  - README.rdoc
84
94
  - Rakefile
85
95
  - VERSION
86
96
  - knjrbfw.gemspec
87
97
  - lib/knj/.gitignore
98
+ - lib/knj/amixer.rb
88
99
  - lib/knj/arrayext.rb
89
100
  - lib/knj/autoload.rb
90
101
  - lib/knj/autoload/activesupport.rb
@@ -110,6 +121,7 @@ files:
110
121
  - lib/knj/autoload/twitter.rb
111
122
  - lib/knj/autoload/xmlsimple.rb
112
123
  - lib/knj/autoload/zip.rb
124
+ - lib/knj/cmd_gen.rb
113
125
  - lib/knj/compiler.rb
114
126
  - lib/knj/cpufreq.rb
115
127
  - lib/knj/datarow.rb
@@ -132,6 +144,7 @@ files:
132
144
  - lib/knj/event_handler.rb
133
145
  - lib/knj/exchangerates.rb
134
146
  - lib/knj/ext/webrick.rb
147
+ - lib/knj/facebook_connect.rb
135
148
  - lib/knj/filesystem.rb
136
149
  - lib/knj/fs/drivers/filesystem.rb
137
150
  - lib/knj/fs/drivers/ftp.rb
@@ -147,6 +160,8 @@ files:
147
160
  - lib/knj/gtk2_tv.rb
148
161
  - lib/knj/hash_methods.rb
149
162
  - lib/knj/http.rb
163
+ - lib/knj/http2.rb
164
+ - lib/knj/image.rb
150
165
  - lib/knj/includes/appserver_cli.rb
151
166
  - lib/knj/ip2location.rb
152
167
  - lib/knj/ironruby-gtk2/button.rb
@@ -266,6 +281,7 @@ files:
266
281
  - lib/knj/tests/compiler/compiler_test.rb
267
282
  - lib/knj/tests/compiler/compiler_test_file.rb
268
283
  - lib/knj/tests/test_degulesider.rb
284
+ - lib/knj/tests/test_http2.rb
269
285
  - lib/knj/tests/test_mount.rb
270
286
  - lib/knj/tests/test_retry.rb
271
287
  - lib/knj/thread.rb
@@ -282,8 +298,10 @@ files:
282
298
  - lib/knj/x11vnc.rb
283
299
  - lib/knj/youtube.rb
284
300
  - lib/knjrbfw.rb
301
+ - spec/amixer_spec.rb
285
302
  - spec/knjrbfw_spec.rb
286
303
  - spec/spec_helper.rb
304
+ - testfiles/image.jpg
287
305
  has_rdoc: true
288
306
  homepage: http://github.com/kaspernj/knjrbfw
289
307
  licenses:
@@ -300,7 +318,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
300
318
  version: '0'
301
319
  segments:
302
320
  - 0
303
- hash: -3172684593992288463
321
+ hash: -3343804310231409804
304
322
  required_rubygems_version: !ruby/object:Gem::Requirement
305
323
  none: false
306
324
  requirements:
@@ -1,32 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- diff-lcs (1.1.2)
5
- git (1.2.5)
6
- jeweler (1.6.3)
7
- bundler (~> 1.0)
8
- git (>= 1.2.5)
9
- rake
10
- rake (0.9.2)
11
- rcov (0.9.9)
12
- rcov (0.9.9-java)
13
- rspec (2.3.0)
14
- rspec-core (~> 2.3.0)
15
- rspec-expectations (~> 2.3.0)
16
- rspec-mocks (~> 2.3.0)
17
- rspec-core (2.3.1)
18
- rspec-expectations (2.3.0)
19
- diff-lcs (~> 1.1.2)
20
- rspec-mocks (2.3.0)
21
- sqlite3 (1.3.3)
22
-
23
- PLATFORMS
24
- java
25
- ruby
26
-
27
- DEPENDENCIES
28
- bundler (~> 1.0.0)
29
- jeweler (~> 1.6.3)
30
- rcov
31
- rspec (~> 2.3.0)
32
- sqlite3