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.
- data/Gemfile +3 -1
- data/VERSION +1 -1
- data/knjrbfw.gemspec +14 -4
- data/lib/knj/amixer.rb +148 -0
- data/lib/knj/arrayext.rb +14 -5
- data/lib/knj/autoload.rb +63 -57
- data/lib/knj/autoload/backups/facets_dictionary.rb +2 -2
- data/lib/knj/autoload/erubis.rb +2 -0
- data/lib/knj/cmd_gen.rb +71 -0
- data/lib/knj/compiler.rb +2 -2
- data/lib/knj/datarow.rb +138 -38
- data/lib/knj/datestamp.rb +2 -2
- data/lib/knj/datet.rb +72 -17
- data/lib/knj/erb/include.rb +5 -5
- data/lib/knj/errors.rb +4 -1
- data/lib/knj/eruby.rb +25 -11
- data/lib/knj/event_filemod.rb +27 -26
- data/lib/knj/event_handler.rb +8 -8
- data/lib/knj/exchangerates.rb +1 -1
- data/lib/knj/facebook_connect.rb +37 -0
- data/lib/knj/gettext_threadded.rb +4 -3
- data/lib/knj/google_sitemap.rb +1 -1
- data/lib/knj/hash_methods.rb +1 -1
- data/lib/knj/http.rb +35 -19
- data/lib/knj/http2.rb +249 -0
- data/lib/knj/image.rb +128 -0
- data/lib/knj/jruby-gtk2/gtk2.rb +1 -1
- data/lib/knj/knj.rb +1 -1
- data/lib/knj/knj_controller.rb +0 -2
- data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +3 -3
- data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb +11 -11
- data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_tables.rb +2 -2
- data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb +71 -14
- data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb +17 -14
- data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_tables.rb +5 -5
- data/lib/knj/knjdb/libknjdb.rb +33 -16
- data/lib/knj/knjdb/libknjdb_row.rb +8 -8
- data/lib/knj/maemo/fremantle-calendar/fremantle-calendar.rb +1 -1
- data/lib/knj/mount.rb +6 -6
- data/lib/knj/mutexcl.rb +2 -2
- data/lib/knj/objects.rb +286 -73
- data/lib/knj/opts.rb +11 -4
- data/lib/knj/os.rb +16 -3
- data/lib/knj/php.rb +73 -26
- data/lib/knj/php_parser/php_parser.rb +1 -77
- data/lib/knj/retry.rb +4 -4
- data/lib/knj/rhodes/rhodes.rb +106 -0
- data/lib/knj/sshrobot/sshrobot.rb +1 -1
- data/lib/knj/strings.rb +72 -0
- data/lib/knj/sysuser.rb +1 -1
- data/lib/knj/tests/test_http2.rb +18 -0
- data/lib/knj/thread.rb +1 -5
- data/lib/knj/thread2.rb +3 -3
- data/lib/knj/threadhandler.rb +2 -2
- data/lib/knj/threadpool.rb +4 -4
- data/lib/knj/translations.rb +2 -17
- data/lib/knj/unix_proc.rb +3 -3
- data/lib/knj/web.rb +156 -77
- data/lib/knj/webscripts/image.rhtml +22 -3
- data/lib/knj/x11vnc.rb +3 -3
- data/spec/amixer_spec.rb +27 -0
- data/spec/knjrbfw_spec.rb +70 -12
- data/testfiles/image.jpg +0 -0
- metadata +32 -14
- data/Gemfile.lock +0 -32
@@ -207,8 +207,8 @@ class KnjDB_mysql::Tables::Table
|
|
207
207
|
|
208
208
|
def create_indexes(index_arr)
|
209
209
|
index_arr.each do |index_data|
|
210
|
-
raise "No name was given." if !index_data.
|
211
|
-
raise "No columns was given on index #{index_data["name"]}." if index_data["columns"].empty?
|
210
|
+
raise "No name was given." if !index_data.key?("name") or index_data["name"].strip.length <= 0
|
211
|
+
raise "No columns was given on index: '#{index_data["name"]}'." if !index_data["columns"] or index_data["columns"].empty?
|
212
212
|
|
213
213
|
sql = "CREATE INDEX #{@db.escape_col}#{@db.esc_col(index_data["name"])}#{@db.escape_col} ON #{@db.escape_table}#{@db.esc_table(self.name)}#{@db.escape_table} ("
|
214
214
|
|
@@ -12,11 +12,23 @@ class KnjDB_sqlite3
|
|
12
12
|
@knjdb = knjdb_ob
|
13
13
|
@path = @knjdb.opts[:path] if @knjdb.opts[:path]
|
14
14
|
@path = @knjdb.opts["path"] if @knjdb.opts["path"]
|
15
|
-
@symbolize = true if !@knjdb.opts.
|
15
|
+
@symbolize = true if !@knjdb.opts.key?(:return_keys) or @knjdb.opts[:return_keys] == "symbols"
|
16
16
|
|
17
|
+
@knjdb.opts[:subtype] = "java" if !@knjdb.opts.key?(:subtype) and RUBY_ENGINE == "jruby"
|
17
18
|
raise "No path was given." if !@path
|
18
19
|
|
19
|
-
if @knjdb.opts[:subtype] == "
|
20
|
+
if @knjdb.opts[:subtype] == "java"
|
21
|
+
if @knjdb.opts[:sqlite_driver]
|
22
|
+
require @knjdb.opts[:sqlite_driver]
|
23
|
+
else
|
24
|
+
require "#{File.dirname(__FILE__)}/../../sqlitejdbc-v056.jar"
|
25
|
+
end
|
26
|
+
|
27
|
+
require "java"
|
28
|
+
import "org.sqlite.JDBC"
|
29
|
+
@conn = java.sql.DriverManager::getConnection("jdbc:sqlite:#{@knjdb.opts[:path]}")
|
30
|
+
@stat = @conn.createStatement
|
31
|
+
elsif @knjdb.opts[:subtype] == "rhodes"
|
20
32
|
@conn = SQLite3::Database.new(@path, @path)
|
21
33
|
else
|
22
34
|
@conn = SQLite3::Database.open(@path)
|
@@ -28,16 +40,24 @@ class KnjDB_sqlite3
|
|
28
40
|
def query(string)
|
29
41
|
begin
|
30
42
|
if @knjdb.opts[:subtype] == "rhodes"
|
31
|
-
|
43
|
+
return KnjDB_sqlite3_result.new(self, @conn.execute(string, string))
|
44
|
+
elsif @knjdb.opts[:subtype] == "java"
|
45
|
+
begin
|
46
|
+
return KnjDB_sqlite3_result_java.new(self, @stat.executeQuery(string))
|
47
|
+
rescue java.sql.SQLException => e
|
48
|
+
if e.message == "java.sql.SQLException: query does not return ResultSet"
|
49
|
+
return KnjDB_sqlite3_result_java.new(self, nil)
|
50
|
+
else
|
51
|
+
raise e
|
52
|
+
end
|
53
|
+
end
|
32
54
|
else
|
33
|
-
|
55
|
+
return KnjDB_sqlite3_result.new(self, @conn.execute(string))
|
34
56
|
end
|
35
|
-
rescue
|
36
|
-
|
37
|
-
raise e
|
57
|
+
rescue => e
|
58
|
+
#Add SQL to the error message.
|
59
|
+
raise e.class, "#{e.message}\n\nSQL: #{string}"
|
38
60
|
end
|
39
|
-
|
40
|
-
return KnjDB_sqlite3_result.new(self, res)
|
41
61
|
end
|
42
62
|
|
43
63
|
def escape(string)
|
@@ -65,23 +85,60 @@ class KnjDB_sqlite3
|
|
65
85
|
end
|
66
86
|
end
|
67
87
|
|
88
|
+
class KnjDB_sqlite3_result_java
|
89
|
+
def initialize(driver, rs)
|
90
|
+
@index = 0
|
91
|
+
retkeys = driver.knjdb.opts[:return_keys]
|
92
|
+
|
93
|
+
if rs
|
94
|
+
metadata = rs.getMetaData
|
95
|
+
columns_count = metadata.getColumnCount
|
96
|
+
|
97
|
+
@rows = []
|
98
|
+
while rs.next
|
99
|
+
row_data = {}
|
100
|
+
for i in (1..columns_count)
|
101
|
+
col_name = metadata.getColumnName(i)
|
102
|
+
col_name = col_name.to_s.to_sym if retkeys == "symbols"
|
103
|
+
row_data[col_name] = rs.getString(i)
|
104
|
+
end
|
105
|
+
|
106
|
+
@rows << row_data
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def fetch
|
112
|
+
return false if !@rows
|
113
|
+
ret = @rows[@index]
|
114
|
+
return false if !ret
|
115
|
+
@index += 1
|
116
|
+
return ret
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
68
120
|
class KnjDB_sqlite3_result
|
69
121
|
def initialize(driver, result_array)
|
70
122
|
@result_array = result_array
|
71
123
|
@index = 0
|
72
|
-
|
124
|
+
|
125
|
+
if driver.knjdb.opts[:return_keys] == "symbols"
|
126
|
+
@symbols = true
|
127
|
+
else
|
128
|
+
@symbols = false
|
129
|
+
end
|
73
130
|
end
|
74
131
|
|
75
132
|
def fetch
|
76
|
-
|
77
|
-
return false if !
|
133
|
+
result_hash = @result_array[@index]
|
134
|
+
return false if !result_hash
|
78
135
|
@index += 1
|
79
136
|
|
80
137
|
ret = {}
|
81
|
-
|
138
|
+
result_hash.each do |key, val|
|
82
139
|
if Knj::Php::is_numeric(key)
|
83
140
|
#do nothing.
|
84
|
-
elsif @
|
141
|
+
elsif @symbols and !key.is_a?(Symbol)
|
85
142
|
ret[key.to_sym] = val
|
86
143
|
else
|
87
144
|
ret[key] = val
|
@@ -11,23 +11,26 @@ class KnjDB_sqlite3::Columns
|
|
11
11
|
raise "No type given." if !data["type"]
|
12
12
|
type = data["type"]
|
13
13
|
|
14
|
-
|
14
|
+
if type == "enum"
|
15
|
+
type = "varchar"
|
16
|
+
data.delete("maxlength")
|
17
|
+
end
|
18
|
+
|
19
|
+
data["maxlength"] = 255 if type == "varchar" and !data.key?("maxlength")
|
15
20
|
type = "integer" if @db.int_types.index(type) and (data["autoincr"] or data["primarykey"])
|
16
21
|
|
17
22
|
sql = "`#{data["name"]}` #{type}"
|
18
23
|
sql += "(#{data["maxlength"]})" if data["maxlength"] and !data["autoincr"]
|
19
|
-
sql += "(11)" if !data.
|
24
|
+
sql += "(11)" if !data.key?("maxlength") and !data["autoincr"]
|
20
25
|
sql += " PRIMARY KEY" if data["primarykey"]
|
21
|
-
sql += " NOT NULL" if !data["null"] and data.
|
26
|
+
sql += " NOT NULL" if !data["null"] and data.key?("null")
|
22
27
|
|
23
|
-
if data.
|
28
|
+
if data.key?("default_func")
|
24
29
|
sql += " DEFAULT #{data["default_func"]}"
|
25
|
-
elsif data.
|
26
|
-
sql += " DEFAULT '#{@
|
30
|
+
elsif data.key?("default") and data["default"] != false
|
31
|
+
sql += " DEFAULT '#{@db.escape(data["default"])}'"
|
27
32
|
end
|
28
33
|
|
29
|
-
sql += " COMMENT '#{@driver.escape(data["comment"])}'" if data.has_key?("comment")
|
30
|
-
|
31
34
|
return sql
|
32
35
|
end
|
33
36
|
end
|
@@ -132,12 +135,12 @@ class KnjDB_sqlite3::Columns::Column
|
|
132
135
|
def change(data)
|
133
136
|
newdata = data.clone
|
134
137
|
|
135
|
-
newdata["name"] = self.name if !newdata.
|
136
|
-
newdata["type"] = self.type if !newdata.
|
137
|
-
newdata["maxlength"] = self.maxlength if !newdata.
|
138
|
-
newdata["null"] = self.null? if !newdata.
|
139
|
-
newdata["default"] = self.default if !newdata.
|
140
|
-
newdata.delete("primarykey") if newdata.
|
138
|
+
newdata["name"] = self.name if !newdata.key?("name")
|
139
|
+
newdata["type"] = self.type if !newdata.key?("type")
|
140
|
+
newdata["maxlength"] = self.maxlength if !newdata.key?("maxlength") and self.maxlength
|
141
|
+
newdata["null"] = self.null? if !newdata.key?("null")
|
142
|
+
newdata["default"] = self.default if !newdata.key?("default")
|
143
|
+
newdata.delete("primarykey") if newdata.key?("primarykey")
|
141
144
|
|
142
145
|
@type = nil
|
143
146
|
@maxlength = nil
|
@@ -80,7 +80,7 @@ class KnjDB_sqlite3::Tables::Table
|
|
80
80
|
@db.cols
|
81
81
|
@list = {}
|
82
82
|
|
83
|
-
q_cols = @db.query("PRAGMA table_info(
|
83
|
+
q_cols = @db.query("PRAGMA table_info(`#{@driver.esc_table(self.name)}`)")
|
84
84
|
while d_cols = q_cols.fetch
|
85
85
|
@list[d_cols[:name]] = KnjDB_sqlite3::Columns::Column.new(
|
86
86
|
:table => self,
|
@@ -96,7 +96,7 @@ class KnjDB_sqlite3::Tables::Table
|
|
96
96
|
|
97
97
|
def create_columns(col_arr)
|
98
98
|
col_arr.each do |col_data|
|
99
|
-
#if col_data.
|
99
|
+
#if col_data.key?("after")
|
100
100
|
# self.create_column_programmatic(col_data)
|
101
101
|
#else
|
102
102
|
@db.query("ALTER TABLE `#{self.name}` ADD COLUMN #{@db.cols.data_sql(col_data)};")
|
@@ -175,7 +175,7 @@ class KnjDB_sqlite3::Tables::Table
|
|
175
175
|
sql += ", " if !first
|
176
176
|
first = false if first
|
177
177
|
|
178
|
-
if args.
|
178
|
+
if args.key?("alter_columns") and args["alter_columns"][name.to_s]
|
179
179
|
sql += @db.cols.data_sql(args["alter_columns"][name.to_s])
|
180
180
|
else
|
181
181
|
sql += @db.cols.data_sql(col.data)
|
@@ -227,7 +227,7 @@ class KnjDB_sqlite3::Tables::Table
|
|
227
227
|
@db.indexes
|
228
228
|
@indexes_list = {}
|
229
229
|
|
230
|
-
q_indexes = @db.query("PRAGMA index_list(`#{self.name}`)")
|
230
|
+
q_indexes = @db.query("PRAGMA index_list(`#{@driver.esc_table(self.name)}`)")
|
231
231
|
while d_indexes = q_indexes.fetch
|
232
232
|
if @db.opts[:index_append_table_name]
|
233
233
|
match_name = d_indexes[:name].match(/__(.+)$/)
|
@@ -257,7 +257,7 @@ class KnjDB_sqlite3::Tables::Table
|
|
257
257
|
|
258
258
|
def create_indexes(index_arr)
|
259
259
|
index_arr.each do |index_data|
|
260
|
-
raise "No name was given." if !index_data.
|
260
|
+
raise "No name was given." if !index_data.key?("name") or index_data["name"].strip.length <= 0
|
261
261
|
raise "No columns was given on index #{index_data["name"]}." if index_data["columns"].empty?
|
262
262
|
|
263
263
|
name = index_data["name"]
|
data/lib/knj/knjdb/libknjdb.rb
CHANGED
@@ -26,12 +26,10 @@ class Knj::Db
|
|
26
26
|
@opts[key.to_sym] = val
|
27
27
|
end
|
28
28
|
|
29
|
-
if
|
30
|
-
@opts[:type] = "java_sqlite3"
|
31
|
-
elsif @opts[:type] == "mysql" and RUBY_PLATFORM == "java"
|
29
|
+
if RUBY_PLATFORM == "java"
|
32
30
|
@opts[:subtype] = "java"
|
33
31
|
elsif @opts[:type] == "sqlite3" and RUBY_PLATFORM.index("mswin32") != nil
|
34
|
-
@opts[:
|
32
|
+
@opts[:subtype] = "ironruby"
|
35
33
|
end
|
36
34
|
|
37
35
|
self.connect
|
@@ -67,7 +65,7 @@ class Knj::Db
|
|
67
65
|
fpaths.each do |fpath|
|
68
66
|
rpath = "#{File.dirname(__FILE__)}/#{fpath}"
|
69
67
|
|
70
|
-
if (!@opts.
|
68
|
+
if (!@opts.key?(:require) or @opts[:require]) and File.exists?(rpath)
|
71
69
|
require rpath
|
72
70
|
break
|
73
71
|
end
|
@@ -88,7 +86,7 @@ class Knj::Db
|
|
88
86
|
def free_thread
|
89
87
|
tid = self.__id__
|
90
88
|
|
91
|
-
if Thread.current[:knjdb] and Thread.current[:knjdb].
|
89
|
+
if Thread.current[:knjdb] and Thread.current[:knjdb].key?(tid)
|
92
90
|
db = Thread.current[:knjdb][tid]
|
93
91
|
Thread.current[:knjdb].delete(tid)
|
94
92
|
@conns.free(db) if @conns
|
@@ -112,7 +110,7 @@ class Knj::Db
|
|
112
110
|
table_args = nil
|
113
111
|
table_args = args["tables"][table["name"].to_s] if args and args["tables"] and args["tables"][table["name"].to_s]
|
114
112
|
next if table_args and table_args["skip"]
|
115
|
-
table.delete("indexes") if table.
|
113
|
+
table.delete("indexes") if table.key?("indexes") and args["skip_indexes"]
|
116
114
|
db.tables.create(table["name"], table)
|
117
115
|
|
118
116
|
limit_from = 0
|
@@ -309,7 +307,7 @@ class Knj::Db
|
|
309
307
|
if Thread.current[:knjdb]
|
310
308
|
tid = self.__id__
|
311
309
|
|
312
|
-
if Thread.current[:knjdb].
|
310
|
+
if Thread.current[:knjdb].key?(tid)
|
313
311
|
yield(Thread.current[:knjdb][tid])
|
314
312
|
return nil
|
315
313
|
end
|
@@ -325,9 +323,18 @@ class Knj::Db
|
|
325
323
|
@conns.free(conn)
|
326
324
|
end
|
327
325
|
elsif @conn
|
328
|
-
|
329
|
-
|
330
|
-
|
326
|
+
begin
|
327
|
+
@mutex.synchronize do
|
328
|
+
yield(@conn)
|
329
|
+
return nil
|
330
|
+
end
|
331
|
+
rescue ThreadError => e
|
332
|
+
if e.message != "deadlock; recursive locking"
|
333
|
+
yield(@conn)
|
334
|
+
return nil
|
335
|
+
else
|
336
|
+
raise e
|
337
|
+
end
|
331
338
|
end
|
332
339
|
end
|
333
340
|
|
@@ -390,8 +397,18 @@ class Knj::Db
|
|
390
397
|
return @enc_table
|
391
398
|
end
|
392
399
|
|
393
|
-
def
|
394
|
-
|
400
|
+
def enc_col
|
401
|
+
if !@enc_col
|
402
|
+
conn_exec do |driver|
|
403
|
+
@enc_col = driver.escape_col
|
404
|
+
end
|
405
|
+
end
|
406
|
+
|
407
|
+
return @enc_col
|
408
|
+
end
|
409
|
+
|
410
|
+
def date_out(date_obj = Knj::Datet.new, args = {})
|
411
|
+
return Knj::Datet.in(date_obj).dbstr(args)
|
395
412
|
end
|
396
413
|
|
397
414
|
def date_in(date_obj)
|
@@ -401,7 +418,7 @@ class Knj::Db
|
|
401
418
|
def tables
|
402
419
|
conn_exec do |driver|
|
403
420
|
if !driver.tables
|
404
|
-
require "#{File.dirname(__FILE__)}/drivers/#{@opts[:type]}/knjdb_#{@opts[:type]}_tables" if (!@opts.
|
421
|
+
require "#{File.dirname(__FILE__)}/drivers/#{@opts[:type]}/knjdb_#{@opts[:type]}_tables" if (!@opts.key?(:require) or @opts[:require])
|
405
422
|
driver.tables = Kernel.const_get("KnjDB_#{@opts[:type]}".to_sym).const_get(:Tables).new(
|
406
423
|
:driver => driver,
|
407
424
|
:db => self
|
@@ -414,7 +431,7 @@ class Knj::Db
|
|
414
431
|
|
415
432
|
def cols
|
416
433
|
if !@cols
|
417
|
-
require "#{File.dirname(__FILE__)}/drivers/#{@opts[:type]}/knjdb_#{@opts[:type]}_columns" if (!@opts.
|
434
|
+
require "#{File.dirname(__FILE__)}/drivers/#{@opts[:type]}/knjdb_#{@opts[:type]}_columns" if (!@opts.key?(:require) or @opts[:require])
|
418
435
|
@cols = Kernel.const_get("KnjDB_#{@opts[:type]}".to_sym).const_get(:Columns).new(
|
419
436
|
:driver => @conn,
|
420
437
|
:db => self
|
@@ -426,7 +443,7 @@ class Knj::Db
|
|
426
443
|
|
427
444
|
def indexes
|
428
445
|
if !@indexes
|
429
|
-
require "#{File.dirname(__FILE__)}/drivers/#{@opts[:type]}/knjdb_#{@opts[:type]}_indexes" if (!@opts.
|
446
|
+
require "#{File.dirname(__FILE__)}/drivers/#{@opts[:type]}/knjdb_#{@opts[:type]}_indexes" if (!@opts.key?(:require) or @opts[:require])
|
430
447
|
@indexes = Kernel.const_get("KnjDB_#{@opts[:type]}".to_sym).const_get(:Indexes).new(
|
431
448
|
:driver => @conn,
|
432
449
|
:db => self
|
@@ -43,7 +43,7 @@ class Knj::Db_row
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def ob
|
46
|
-
return @args[:objects] if @args.
|
46
|
+
return @args[:objects] if @args.key?(:objects)
|
47
47
|
return $ob if $ob and $ob.is_a?(Knj::Objects)
|
48
48
|
return false
|
49
49
|
end
|
@@ -83,18 +83,18 @@ class Knj::Db_row
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def has_key?(key)
|
86
|
-
return @data.
|
86
|
+
return @data.key?(key.to_sym)
|
87
87
|
end
|
88
88
|
|
89
89
|
def [](key)
|
90
90
|
raise "No valid key given." if !key
|
91
91
|
raise "No data was loaded on the object? Maybe you are trying to call a deleted object?" if !@data
|
92
92
|
|
93
|
-
if @data.
|
93
|
+
if @data.key?(key)
|
94
94
|
return @data[key]
|
95
|
-
elsif @data.
|
95
|
+
elsif @data.key?(key.to_sym)
|
96
96
|
return @data[key.to_sym]
|
97
|
-
elsif @data.
|
97
|
+
elsif @data.key?(key.to_s)
|
98
98
|
return @data[key.to_s]
|
99
99
|
end
|
100
100
|
|
@@ -115,9 +115,9 @@ class Knj::Db_row
|
|
115
115
|
return @data[@args[:col_title].to_sym]
|
116
116
|
end
|
117
117
|
|
118
|
-
if @data.
|
118
|
+
if @data.key?(:title)
|
119
119
|
return @data[:title]
|
120
|
-
elsif @data.
|
120
|
+
elsif @data.key?(:name)
|
121
121
|
return @data[:name]
|
122
122
|
end
|
123
123
|
|
@@ -136,7 +136,7 @@ class Knj::Db_row
|
|
136
136
|
|
137
137
|
def method_missing(*args)
|
138
138
|
func_name = args[0].to_s
|
139
|
-
if match = func_name.match(/^(\S+)\?$/) and @data.
|
139
|
+
if match = func_name.match(/^(\S+)\?$/) and @data.key?(match[1].to_sym)
|
140
140
|
if @data[match[1].to_sym] == "1" or @data[match[1].to_sym] == "yes"
|
141
141
|
return true
|
142
142
|
elsif @data[match[1].to_sym] == "0" or @data[match[1].to_sym] == "no"
|
data/lib/knj/mount.rb
CHANGED
@@ -13,8 +13,8 @@ class Knj::Mount
|
|
13
13
|
#raise "The folder doesnt exist?" if !File.exists?(folder_to)
|
14
14
|
|
15
15
|
add = true
|
16
|
-
add = false if args.
|
17
|
-
add = false if args.
|
16
|
+
add = false if args.key?("to") and args["to"] != folder_to
|
17
|
+
add = false if args.key?("from") and args["from"] != folder_from
|
18
18
|
|
19
19
|
if args["from_search"]
|
20
20
|
Knj::Strings.searchstring(args["from_search"]).each do |str|
|
@@ -43,11 +43,11 @@ class Knj::Mount
|
|
43
43
|
|
44
44
|
def self.mount(args)
|
45
45
|
cmd = "mount"
|
46
|
-
cmd += " -t #{Knj::Strings.unixsafe(args["type"])}" if args.
|
46
|
+
cmd += " -t #{Knj::Strings.unixsafe(args["type"])}" if args.key?("type")
|
47
47
|
cmd += " --bind" if args["bind"]
|
48
48
|
cmd += " #{Knj::Strings.unixsafe(args["from"])} #{Knj::Strings.unixsafe(args["to"])}"
|
49
49
|
|
50
|
-
if args.
|
50
|
+
if args.key?("opts")
|
51
51
|
raise "opts argument must be an array." if !args["opts"].is_a?(Array)
|
52
52
|
|
53
53
|
cmd += "-O "
|
@@ -85,7 +85,7 @@ class Knj::Mount
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def [](key)
|
88
|
-
raise "Invalid key: #{key}." if !@data.
|
88
|
+
raise "Invalid key: #{key}." if !@data.key?(key)
|
89
89
|
return @data[key]
|
90
90
|
end
|
91
91
|
|
@@ -96,7 +96,7 @@ class Knj::Mount
|
|
96
96
|
alias :umount :unmount
|
97
97
|
|
98
98
|
def access?(args = {})
|
99
|
-
args["timeout"] = 2 if !args.
|
99
|
+
args["timeout"] = 2 if !args.key?("timeout")
|
100
100
|
access = false
|
101
101
|
|
102
102
|
begin
|