knjrbfw 0.0.104 → 0.0.105

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.
@@ -3,20 +3,20 @@ GEM
3
3
  specs:
4
4
  array_enumerator (0.0.3)
5
5
  datet (0.0.25)
6
- diff-lcs (1.2.2)
6
+ diff-lcs (1.2.4)
7
7
  git (1.2.5)
8
- http2 (0.0.13)
8
+ http2 (0.0.17)
9
9
  jeweler (1.8.4)
10
10
  bundler (~> 1.0)
11
11
  git (>= 1.2.5)
12
12
  rake
13
13
  rdoc
14
- json (1.7.7)
14
+ json (1.8.0)
15
15
  php4r (0.0.4)
16
16
  datet
17
17
  http2
18
18
  string-strtr
19
- rake (10.0.4)
19
+ rake (10.1.0)
20
20
  rdoc (4.0.1)
21
21
  json (~> 1.4)
22
22
  rmagick (2.13.2)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.104
1
+ 0.0.105
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "knjrbfw"
8
- s.version = "0.0.104"
8
+ s.version = "0.0.105"
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 = "2013-04-11"
12
+ s.date = "2013-06-28"
13
13
  s.description = "Including stuff for HTTP, SSH and much more."
14
14
  s.email = "k@spernj.org"
15
15
  s.extra_rdoc_files = [
@@ -241,6 +241,7 @@ Gem::Specification.new do |s|
241
241
  "lib/knj/unix_proc.rb",
242
242
  "lib/knj/web.rb",
243
243
  "lib/knj/webscripts/image.rhtml",
244
+ "lib/knj/webscripts/image_subproc.rhtml",
244
245
  "lib/knj/win.rb",
245
246
  "lib/knj/win_registry.rb",
246
247
  "lib/knj/win_tightvnc.rb",
@@ -266,7 +267,7 @@ Gem::Specification.new do |s|
266
267
  s.homepage = "http://github.com/kaspernj/knjrbfw"
267
268
  s.licenses = ["MIT"]
268
269
  s.require_paths = ["lib"]
269
- s.rubygems_version = "1.8.25"
270
+ s.rubygems_version = "1.8.23"
270
271
  s.summary = "A framework with lots of stuff for Ruby."
271
272
 
272
273
  if s.respond_to? :specification_version then
@@ -31,6 +31,8 @@ class KnjDB_sqlite3::Tables
31
31
 
32
32
  @list_mutex.synchronize do
33
33
  q_tables = @db.select("sqlite_master", {"type" => "table"}, {"orderby" => "name"}) do |d_tables|
34
+ next if d_tables[:name] == "sqlite_sequence"
35
+
34
36
  obj = @list.get!(d_tables[:name])
35
37
 
36
38
  if !obj
@@ -241,8 +241,12 @@ module Knj::Os
241
241
  end
242
242
  end
243
243
 
244
- puts ENV.to_hash
244
+ # Code for returning RBEnv Ruby path if running through RBEnv.
245
+ if ENV["RBENV_VERSION"] && ENV["RBENV_ROOT"]
246
+ rbenv_path = "#{ENV["RBENV_ROOT"]}/versions/#{ENV["RBENV_VERSION"]}/bin/ruby"
247
+ return rbenv_path if File.exists?(rbenv_path)
248
+ end
245
249
 
246
- raise "Could not figure out the executed executable."
250
+ raise "Could not figure out the executed executable from the environment: '#{ENV.to_hash}'."
247
251
  end
248
252
  end
@@ -48,23 +48,23 @@
48
48
  end
49
49
 
50
50
  time_orig = File.mtime(_get["path"])
51
-
52
- tmp_use = false
53
51
  tmp_write = false
54
52
  if Knj::CONFIG["webscripts_image"]
55
- tmp_use = true
56
53
  tmp_path = "#{Knj::CONFIG["webscripts_image"]["tmp_path"]}/#{idstr}"
57
- tmp_exists = File.exists?(tmp_path)
58
- tmp_write = true if !tmp_exists
59
-
60
- if !tmp_write and tmp_exists
61
- time_cache = File.mtime(tmp_path)
62
-
63
- if time_orig > time_cache
64
- tmp_write = true
65
- end
66
- end
67
- end
54
+ else
55
+ tmp_path = "#{Knj::Os.tmpdir}/knjrbfw_image_#{idstr}"
56
+ end
57
+
58
+ tmp_exists = File.exists?(tmp_path)
59
+ tmp_write = true unless tmp_exists
60
+
61
+ if !tmp_write and tmp_exists
62
+ time_cache = File.mtime(tmp_path)
63
+
64
+ if time_orig > time_cache
65
+ tmp_write = true
66
+ end
67
+ end
68
68
 
69
69
  if _get["force"] == "true" or _get["force"] == "1"
70
70
  force = true
@@ -85,85 +85,87 @@
85
85
  exit
86
86
  end
87
87
 
88
- if !tmp_use or tmp_write or force
88
+ if tmp_write or force
89
89
  blob_cont = nil
90
- Ruby_process::Cproxy.run do |data|
91
- subproc = data[:subproc]
92
- subproc.static(:Object, :require, "rubygems")
93
- subproc.static(:Object, :require, "#{Knj.knjrbfw_path}/../knjrbfw.rb")
94
- subproc.static(:Object, :require, "RMagick")
95
- subproc.static(:Dir, :chdir, File.dirname(__FILE__))
96
-
97
- pic = subproc.static("Magick::Image", :read, _get["path"]).first
98
-
99
- if !pic
100
- print "Could not open image from '#{_get["path"]}'."
101
- exit
102
- end
103
-
104
- pic.format = "png"
105
-
106
- pic_columns = pic.columns.__rp_marshal
107
- pic_rows = pic.rows.__rp_marshal
108
-
109
- width = pic_columns
110
- height = pic_rows
111
-
112
- height = _get["height"].to_i if _get["height"]
113
- width = _get["width"].to_i if _get["width"]
114
-
115
- if _get["smartsize"]
116
- if pic_columns > pic_rows
117
- width = _get["smartsize"].to_i
118
- height = (pic_rows.to_f / (pic_columns.to_f / width.to_f)).to_i
119
- else
120
- height = _get["smartsize"].to_i
121
- width = (pic_columns.to_f / (pic_rows.to_f / height.to_f)).to_i
122
- end
123
- end
124
-
125
- if _get["maxwidth"]
126
- maxwidth = _get["maxwidth"].to_i
127
-
128
- if width > maxwidth
129
- height = (pic_rows.to_f / (pic_columns.to_f / maxwidth.to_f)).to_i
130
- width = maxwidth
131
- end
132
- end
133
-
134
- if _get["maxheight"]
135
- maxheight = _get["maxheight"].to_i
136
-
137
- if height > maxheight
138
- width = (pic_columns.to_f / (pic_rows.to_f / maxheight.to_f)).to_i
139
- height = maxheight
140
- end
90
+
91
+ raise "RMagick has not been loaded. If loaded through here bugs will occur. Load in beginning of script." unless ::Kernel.const_defined?(:Magick)
92
+ pic = Magick::Image.read(_get["path"]).first
93
+
94
+ if !pic
95
+ print "Could not open image from '#{_get["path"]}'."
96
+ exit
97
+ end
98
+
99
+ pic.format = "png"
100
+
101
+ pic_columns = pic.columns
102
+ pic_rows = pic.rows
103
+
104
+ width = pic_columns
105
+ height = pic_rows
106
+
107
+ height = _get["height"].to_i if _get["height"]
108
+ width = _get["width"].to_i if _get["width"]
109
+
110
+ if _get["width"] && !_get["height"]
111
+ height = (pic_rows.to_f / (pic_columns.to_f / width.to_f)).to_i
112
+ elsif _get["height"] && !_get["width"]
113
+ width = (pic_columns.to_f / (pic_rows.to_f / height.to_f)).to_i
114
+ end
115
+
116
+ if _get["smartsize"]
117
+ if pic_columns > pic_rows
118
+ width = _get["smartsize"].to_i
119
+ height = (pic_rows.to_f / (pic_columns.to_f / width.to_f)).to_i
120
+ else
121
+ height = _get["smartsize"].to_i
122
+ width = (pic_columns.to_f / (pic_rows.to_f / height.to_f)).to_i
141
123
  end
124
+ end
125
+
126
+ if _get["maxwidth"]
127
+ maxwidth = _get["maxwidth"].to_i
142
128
 
143
- if _get["width"] and _get["height"]
144
- width = _get["width"].to_i
145
- height = _get["height"].to_i
129
+ if width > maxwidth
130
+ height = (pic_rows.to_f / (pic_columns.to_f / maxwidth.to_f)).to_i
131
+ width = maxwidth
146
132
  end
133
+ end
134
+
135
+ if _get["maxheight"]
136
+ maxheight = _get["maxheight"].to_i
147
137
 
148
- if height != pic_rows or width != pic_columns
149
- pic = pic.resize_to_fit(width.to_i, height.to_i)
138
+ if height > maxheight
139
+ width = (pic_columns.to_f / (pic_rows.to_f / maxheight.to_f)).to_i
140
+ height = maxheight
150
141
  end
142
+ end
143
+
144
+ if _get["width"] and _get["height"]
145
+ width = _get["width"].to_i
146
+ height = _get["height"].to_i
147
+ end
148
+
149
+ if height != pic_rows or width != pic_columns
150
+ pic = pic.resize_to_fill(width.to_i, height.to_i)
151
+ end
152
+
153
+ if _get["rounded_corners"]
154
+ args = {:img => pic, :radius => _get["rounded_corners"].to_i}
151
155
 
152
- if _get["rounded_corners"]
153
- args = {:img => pic, :radius => _get["rounded_corners"].to_i}
154
-
155
- if _get["border"] and _get["border_color"]
156
- args[:border] = _get["border"].to_i
157
- args[:border_color] = _get["border_color"]
158
- end
159
-
160
- #Call rounded_corners with the proxy-hash.
161
- subproc.static("Knj::Image", :rounded_corners, args)
156
+ if _get["border"] and _get["border_color"]
157
+ args[:border] = _get["border"].to_i
158
+ args[:border_color] = _get["border_color"]
162
159
  end
163
160
 
164
- pic.write(tmp_path) if tmp_write or force
161
+ #Call rounded_corners with the proxy-hash.
162
+ Knj::Image.rounded_corners(args)
165
163
  end
164
+
165
+ pic.write(tmp_path) if tmp_write or force
166
166
  end
167
+
168
+ raise "Picture was not written: '#{tmp_path}'." if !tmp_path || !File.exists?(tmp_path)
167
169
 
168
170
  appsrv.header("Last-Modified", "#{time_orig.httpdate} GMT") if time_orig
169
171
  appsrv.header("Content-Type", "image/png")
@@ -0,0 +1,180 @@
1
+ <%
2
+ #Register appserver.
3
+ begin
4
+ appsrv = _hb
5
+ rescue NameError
6
+ appsrv = _kas
7
+ end
8
+
9
+ #Support for the PHP-version... Comes handy when converting PHP to Ruby...
10
+ if !_get["path"]
11
+ trans = {
12
+ "picture" => "path"
13
+ }
14
+
15
+ if _get["edgesize"]
16
+ _get["rounded_corners"] = (_get["edgesize"].to_f / 3.0).to_i
17
+ end
18
+
19
+ if _get["edgeborder"]
20
+ if _get["edgeborder"].length == 6
21
+ _get["border_color"] = "##{_get["edgeborder"]}"
22
+ else
23
+ _get["border_color"] = _get["edbeborder"]
24
+ end
25
+ end
26
+
27
+ if _get["edgeborder"]
28
+ _get["border"] = 1
29
+ end
30
+
31
+ trans.each do |key, val|
32
+ _get[val] = _get[key] if _get[key]
33
+ end
34
+ end
35
+
36
+ #Base64-encoding of path.
37
+ if _get["path64"]
38
+ require "base64"
39
+ _get["path"] = Base64.decode64(_get["path64"])
40
+ end
41
+
42
+ require "digest/md5"
43
+ idstr = Digest::MD5.hexdigest("#{_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"]}")
44
+
45
+ if !_get["path"] or !File.exists?(_get["path"])
46
+ print "File does not exist: '#{_get["path"]}'.\n"
47
+ exit
48
+ end
49
+
50
+ time_orig = File.mtime(_get["path"])
51
+
52
+ tmp_write = false
53
+ if Knj::CONFIG["webscripts_image"]
54
+ tmp_path = "#{Knj::CONFIG["webscripts_image"]["tmp_path"]}/#{idstr}"
55
+ else
56
+ tmp_path = "#{Knj::Os.tmpdir}/knjrbfw_image_#{idstr}"
57
+ end
58
+
59
+ tmp_exists = File.exists?(tmp_path)
60
+ tmp_write = true if !tmp_exists
61
+
62
+ if !tmp_write and tmp_exists
63
+ time_cache = File.mtime(tmp_path)
64
+
65
+ if time_orig > time_cache
66
+ tmp_write = true
67
+ end
68
+ end
69
+
70
+ if _get["force"] == "true" or _get["force"] == "1"
71
+ force = true
72
+ else
73
+ force = false
74
+ end
75
+
76
+ notchanged = false
77
+
78
+ if _httpsession.handler.modified_since and time_cache and _httpsession.handler.modified_since.utc.to_s == time_cache.utc.to_s
79
+ notchanged = true
80
+ elsif _httpsession.handler.modified_since and _httpsession.handler.modified_since.utc.to_s == time_orig.utc.to_s
81
+ notchanged = true
82
+ end
83
+
84
+ if notchanged and !force
85
+ _httpsession.resp.status = 304
86
+ exit
87
+ end
88
+
89
+ if tmp_write or force
90
+ blob_cont = nil
91
+
92
+ require "ruby_process"
93
+ Ruby_process::Cproxy.run do |data|
94
+ subproc = data[:subproc]
95
+ subproc.static(:Object, :require, "rubygems")
96
+ subproc.static(:Object, :require, "#{Knj.knjrbfw_path}/../knjrbfw.rb")
97
+ subproc.static(:Object, :require, "RMagick")
98
+ subproc.static(:Dir, :chdir, File.dirname(__FILE__))
99
+
100
+ pic = subproc.static("Magick::Image", :read, _get["path"]).first
101
+
102
+ if !pic
103
+ print "Could not open image from '#{_get["path"]}'."
104
+ exit
105
+ end
106
+
107
+ pic.format = "png"
108
+
109
+ pic_columns = pic.columns.__rp_marshal
110
+ pic_rows = pic.rows.__rp_marshal
111
+
112
+ width = pic_columns
113
+ height = pic_rows
114
+
115
+ height = _get["height"].to_i if _get["height"]
116
+ width = _get["width"].to_i if _get["width"]
117
+
118
+ if _get["width"] && !_get["height"]
119
+ height = (pic_rows.to_f / (pic_columns.to_f / width.to_f)).to_i
120
+ elsif _get["height"] && !_get["width"]
121
+ width = (pic_columns.to_f / (pic_rows.to_f / height.to_f)).to_i
122
+ end
123
+
124
+ if _get["smartsize"]
125
+ if pic_columns > pic_rows
126
+ width = _get["smartsize"].to_i
127
+ height = (pic_rows.to_f / (pic_columns.to_f / width.to_f)).to_i
128
+ else
129
+ height = _get["smartsize"].to_i
130
+ width = (pic_columns.to_f / (pic_rows.to_f / height.to_f)).to_i
131
+ end
132
+ end
133
+
134
+ if _get["maxwidth"]
135
+ maxwidth = _get["maxwidth"].to_i
136
+
137
+ if width > maxwidth
138
+ height = (pic_rows.to_f / (pic_columns.to_f / maxwidth.to_f)).to_i
139
+ width = maxwidth
140
+ end
141
+ end
142
+
143
+ if _get["maxheight"]
144
+ maxheight = _get["maxheight"].to_i
145
+
146
+ if height > maxheight
147
+ width = (pic_columns.to_f / (pic_rows.to_f / maxheight.to_f)).to_i
148
+ height = maxheight
149
+ end
150
+ end
151
+
152
+ if _get["width"] and _get["height"]
153
+ width = _get["width"].to_i
154
+ height = _get["height"].to_i
155
+ end
156
+
157
+ if height != pic_rows or width != pic_columns
158
+ pic = pic.resize_to_fill(width.to_i, height.to_i)
159
+ end
160
+
161
+ if _get["rounded_corners"]
162
+ args = {:img => pic, :radius => _get["rounded_corners"].to_i}
163
+
164
+ if _get["border"] and _get["border_color"]
165
+ args[:border] = _get["border"].to_i
166
+ args[:border_color] = _get["border_color"]
167
+ end
168
+
169
+ #Call rounded_corners with the proxy-hash.
170
+ subproc.static("Knj::Image", :rounded_corners, args)
171
+ end
172
+
173
+ pic.write(tmp_path) if tmp_write or force
174
+ end
175
+ end
176
+
177
+ appsrv.header("Last-Modified", "#{time_orig.httpdate} GMT") if time_orig
178
+ appsrv.header("Content-Type", "image/png")
179
+ _httpsession.force_fileread(tmp_path)
180
+ %>
@@ -203,4 +203,80 @@ describe "Db" do
203
203
  date = Date.new(1985, 6, 17)
204
204
  db.insert(:test, {:date => date}, :return_sql => true).should eql("INSERT INTO `test` (`date`) VALUES ('1985-06-17')")
205
205
  end
206
+
207
+ it "should copy database structure and data" do
208
+ require "knj/db"
209
+ require "knj/os"
210
+ require "rubygems"
211
+ require "sqlite3" if !Kernel.const_defined?("SQLite3") and RUBY_ENGINE != "jruby"
212
+
213
+ db_path1 = "#{Knj::Os.tmpdir}/knjrbfw_test_sqlite3_db1.sqlite3"
214
+ File.unlink(db_path1) if File.exists?(db_path1)
215
+
216
+ db_path2 = "#{Knj::Os.tmpdir}/knjrbfw_test_sqlite3_db2.sqlite3"
217
+ File.unlink(db_path2) if File.exists?(db_path2)
218
+
219
+ db1 = Knj::Db.new(
220
+ :type => "sqlite3",
221
+ :path => db_path1,
222
+ :return_keys => "symbols",
223
+ :index_append_table_name => true
224
+ )
225
+
226
+ db1.tables.create(:test_table, {
227
+ "columns" => [
228
+ {"name" => "id", "type" => "int", "autoincr" => true, "primarykey" => true},
229
+ {"name" => "testname", "type" => "varchar"}
230
+ ],
231
+ "indexes" => [
232
+ "testname"
233
+ ]
234
+ })
235
+
236
+ table1 = db1.tables["test_table"]
237
+ cols1 = table1.columns
238
+
239
+ 100.times do |count|
240
+ table1.insert(:testname => "TestRow#{count}")
241
+ end
242
+
243
+ db2 = Knj::Db.new(
244
+ :type => "sqlite3",
245
+ :path => db_path2,
246
+ :return_keys => "symbols",
247
+ :index_append_table_name => true
248
+ )
249
+
250
+ begin
251
+ table2 = db2.tables["test_table"]
252
+ raise "Expected not-found exception."
253
+ rescue Errno::ENOENT
254
+ #expected
255
+ end
256
+
257
+ db1.copy_to(db2)
258
+
259
+ table2 = db2.tables["test_table"]
260
+
261
+ cols2 = table2.columns
262
+ cols2.length.should eql(cols1.length)
263
+
264
+ table2.rows_count.should eql(table1.rows_count)
265
+
266
+ db1.select(:test_table) do |row1|
267
+ found = 0
268
+ db2.select(:test_table, row1) do |row2|
269
+ found += 1
270
+
271
+ row1.each do |key, val|
272
+ row2[key].should eql(val)
273
+ end
274
+ end
275
+
276
+ found.should eql(1)
277
+ end
278
+
279
+ table1.indexes.length.should eql(1)
280
+ table2.indexes.length.should eql(table1.indexes.length)
281
+ end
206
282
  end
metadata CHANGED
@@ -1,203 +1,203 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knjrbfw
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.104
5
4
  prerelease:
5
+ version: 0.0.105
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kasper Johansen
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-11 00:00:00.000000000 Z
12
+ date: 2013-06-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: wref
16
- requirement: !ruby/object:Gem::Requirement
15
+ version_requirements: !ruby/object:Gem::Requirement
17
16
  none: false
18
17
  requirements:
19
18
  - - ! '>='
20
19
  - !ruby/object:Gem::Version
21
20
  version: '0'
21
+ name: wref
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
24
+ requirement: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
- name: tsafe
32
- requirement: !ruby/object:Gem::Requirement
31
+ version_requirements: !ruby/object:Gem::Requirement
33
32
  none: false
34
33
  requirements:
35
34
  - - ! '>='
36
35
  - !ruby/object:Gem::Version
37
36
  version: '0'
37
+ name: tsafe
38
38
  type: :runtime
39
39
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
40
+ requirement: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
46
  - !ruby/object:Gem::Dependency
47
- name: datet
48
- requirement: !ruby/object:Gem::Requirement
47
+ version_requirements: !ruby/object:Gem::Requirement
49
48
  none: false
50
49
  requirements:
51
50
  - - ! '>='
52
51
  - !ruby/object:Gem::Version
53
52
  version: '0'
53
+ name: datet
54
54
  type: :runtime
55
55
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
56
+ requirement: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  - !ruby/object:Gem::Dependency
63
- name: http2
64
- requirement: !ruby/object:Gem::Requirement
63
+ version_requirements: !ruby/object:Gem::Requirement
65
64
  none: false
66
65
  requirements:
67
66
  - - ! '>='
68
67
  - !ruby/object:Gem::Version
69
68
  version: '0'
69
+ name: http2
70
70
  type: :runtime
71
71
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
72
+ requirement: !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  - !ruby/object:Gem::Dependency
79
- name: php4r
80
- requirement: !ruby/object:Gem::Requirement
79
+ version_requirements: !ruby/object:Gem::Requirement
81
80
  none: false
82
81
  requirements:
83
82
  - - ! '>='
84
83
  - !ruby/object:Gem::Version
85
84
  version: '0'
85
+ name: php4r
86
86
  type: :runtime
87
87
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
88
+ requirement: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
91
  - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
94
  - !ruby/object:Gem::Dependency
95
- name: ruby_process
96
- requirement: !ruby/object:Gem::Requirement
95
+ version_requirements: !ruby/object:Gem::Requirement
97
96
  none: false
98
97
  requirements:
99
98
  - - ! '>='
100
99
  - !ruby/object:Gem::Version
101
100
  version: '0'
101
+ name: ruby_process
102
102
  type: :runtime
103
103
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
104
+ requirement: !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  - !ruby/object:Gem::Dependency
111
- name: rspec
112
- requirement: !ruby/object:Gem::Requirement
111
+ version_requirements: !ruby/object:Gem::Requirement
113
112
  none: false
114
113
  requirements:
115
114
  - - ! '>='
116
115
  - !ruby/object:Gem::Version
117
116
  version: '0'
117
+ name: rspec
118
118
  type: :development
119
119
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
120
+ requirement: !ruby/object:Gem::Requirement
121
121
  none: false
122
122
  requirements:
123
123
  - - ! '>='
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  - !ruby/object:Gem::Dependency
127
- name: bundler
128
- requirement: !ruby/object:Gem::Requirement
127
+ version_requirements: !ruby/object:Gem::Requirement
129
128
  none: false
130
129
  requirements:
131
130
  - - ! '>='
132
131
  - !ruby/object:Gem::Version
133
132
  version: '0'
133
+ name: bundler
134
134
  type: :development
135
135
  prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
136
+ requirement: !ruby/object:Gem::Requirement
137
137
  none: false
138
138
  requirements:
139
139
  - - ! '>='
140
140
  - !ruby/object:Gem::Version
141
141
  version: '0'
142
142
  - !ruby/object:Gem::Dependency
143
- name: jeweler
144
- requirement: !ruby/object:Gem::Requirement
143
+ version_requirements: !ruby/object:Gem::Requirement
145
144
  none: false
146
145
  requirements:
147
146
  - - ! '>='
148
147
  - !ruby/object:Gem::Version
149
148
  version: '0'
149
+ name: jeweler
150
150
  type: :development
151
151
  prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
152
+ requirement: !ruby/object:Gem::Requirement
153
153
  none: false
154
154
  requirements:
155
155
  - - ! '>='
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
158
  - !ruby/object:Gem::Dependency
159
- name: sqlite3
160
- requirement: !ruby/object:Gem::Requirement
159
+ version_requirements: !ruby/object:Gem::Requirement
161
160
  none: false
162
161
  requirements:
163
162
  - - ! '>='
164
163
  - !ruby/object:Gem::Version
165
164
  version: '0'
165
+ name: sqlite3
166
166
  type: :development
167
167
  prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
168
+ requirement: !ruby/object:Gem::Requirement
169
169
  none: false
170
170
  requirements:
171
171
  - - ! '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  - !ruby/object:Gem::Dependency
175
- name: rmagick
176
- requirement: !ruby/object:Gem::Requirement
175
+ version_requirements: !ruby/object:Gem::Requirement
177
176
  none: false
178
177
  requirements:
179
178
  - - ! '>='
180
179
  - !ruby/object:Gem::Version
181
180
  version: '0'
181
+ name: rmagick
182
182
  type: :development
183
183
  prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
184
+ requirement: !ruby/object:Gem::Requirement
185
185
  none: false
186
186
  requirements:
187
187
  - - ! '>='
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  - !ruby/object:Gem::Dependency
191
- name: array_enumerator
192
- requirement: !ruby/object:Gem::Requirement
191
+ version_requirements: !ruby/object:Gem::Requirement
193
192
  none: false
194
193
  requirements:
195
194
  - - ! '>='
196
195
  - !ruby/object:Gem::Version
197
196
  version: '0'
197
+ name: array_enumerator
198
198
  type: :development
199
199
  prerelease: false
200
- version_requirements: !ruby/object:Gem::Requirement
200
+ requirement: !ruby/object:Gem::Requirement
201
201
  none: false
202
202
  requirements:
203
203
  - - ! '>='
@@ -435,6 +435,7 @@ files:
435
435
  - lib/knj/unix_proc.rb
436
436
  - lib/knj/web.rb
437
437
  - lib/knj/webscripts/image.rhtml
438
+ - lib/knj/webscripts/image_subproc.rhtml
438
439
  - lib/knj/win.rb
439
440
  - lib/knj/win_registry.rb
440
441
  - lib/knj/win_tightvnc.rb
@@ -468,10 +469,10 @@ required_ruby_version: !ruby/object:Gem::Requirement
468
469
  requirements:
469
470
  - - ! '>='
470
471
  - !ruby/object:Gem::Version
471
- version: '0'
472
472
  segments:
473
473
  - 0
474
- hash: -708484530570275600
474
+ hash: -3077588616452879408
475
+ version: '0'
475
476
  required_rubygems_version: !ruby/object:Gem::Requirement
476
477
  none: false
477
478
  requirements:
@@ -480,7 +481,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
480
481
  version: '0'
481
482
  requirements: []
482
483
  rubyforge_project:
483
- rubygems_version: 1.8.25
484
+ rubygems_version: 1.8.23
484
485
  signing_key:
485
486
  specification_version: 3
486
487
  summary: A framework with lots of stuff for Ruby.