beezwax 0.1.4 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/btrieve/btrieve_core.rb +2 -11
- data/lib/btrieve/btrieve_map.rb +28 -0
- data/lib/btrieve/btrieve_record.rb +3 -9
- data/lib/btrieve/btrieve_session.rb +3 -2
- metadata +6 -7
- data/lib/btrieve/btrieve_meta.rb +0 -63
- data/lib/btrieve/fos_code.rb +0 -13
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/btrieve/btrieve_core.rb
CHANGED
@@ -31,14 +31,7 @@ module Btrieve
|
|
31
31
|
|
32
32
|
def self.create_string_buffer(size)
|
33
33
|
0.chr*(size)
|
34
|
-
end
|
35
|
-
|
36
|
-
#def dir_voodoo(session)
|
37
|
-
# wd=Dir.pwd
|
38
|
-
# Dir.chdir(session.pathname)
|
39
|
-
# yield
|
40
|
-
# Dir.chdir(wd)
|
41
|
-
#end
|
34
|
+
end
|
42
35
|
|
43
36
|
end
|
44
37
|
|
@@ -60,8 +53,6 @@ end
|
|
60
53
|
require_relative 'btrieve_session'
|
61
54
|
require_relative 'btrieve_table'
|
62
55
|
require_relative 'btrieve_schema'
|
63
|
-
require_relative '
|
56
|
+
require_relative 'btrieve_map'
|
64
57
|
require_relative 'btrieve_record'
|
65
58
|
require_relative 'btrieve_model'
|
66
|
-
require_relative 'fos_code'
|
67
|
-
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class BtrieveMap
|
2
|
+
include Btrieve
|
3
|
+
|
4
|
+
attr_accessor :mapping
|
5
|
+
|
6
|
+
def initialize()
|
7
|
+
@mapping={}
|
8
|
+
end
|
9
|
+
|
10
|
+
def up(tablename, column_name, value)
|
11
|
+
db_cast(tablename, column_name, value, :up)
|
12
|
+
end
|
13
|
+
|
14
|
+
def down(tablename, column_name, value)
|
15
|
+
db_cast(tablename, column_name, value, :down)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def db_cast(tablename, column_name, value, mode)
|
21
|
+
table=mapping[tablename.to_s]
|
22
|
+
return value if(table.nil?)
|
23
|
+
column=table[column_name.to_s]
|
24
|
+
return value if(column.nil?)
|
25
|
+
column[mode].call(value)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -61,18 +61,12 @@ class BtrieveRecord
|
|
61
61
|
schema_key=get_schema_key(key_name)
|
62
62
|
return nil if(schema_key.nil?)
|
63
63
|
raw_data=@data_buffer.unpack(schema_key[:unpacker])[0]
|
64
|
-
|
65
|
-
|
66
|
-
meta.up(@btrieve_table.tablename, key_name, raw_data)
|
64
|
+
btrieve_map = @session.btrieve_map
|
65
|
+
btrieve_map.up(@btrieve_table.tablename, key_name, raw_data)
|
67
66
|
end
|
68
|
-
|
69
|
-
# def [](key_name)
|
70
|
-
# schema_key = get_schema_key(key_name)
|
71
|
-
# @data_buffer.unpack(schema_key[:unpacker])[0] if schema_key
|
72
|
-
# end
|
73
67
|
|
74
68
|
def []=(key_name, raw_data)
|
75
|
-
value=@session.
|
69
|
+
value=@session.btrieve_map.down(@btrieve_table.tablename, key_name, raw_data)
|
76
70
|
schema_key = get_schema_key(key_name)
|
77
71
|
packer_string = schema_key[:unpacker]
|
78
72
|
match = packer_string.match(/@(\d+)([a-zA-Z]+)(\d*)/)
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class BtrieveSession
|
2
2
|
SESSIONS = {}
|
3
3
|
include Btrieve
|
4
|
-
attr_reader :pathname, :client_id, :cache, :model_classes, :btrieve_schema
|
4
|
+
attr_reader :pathname, :client_id, :cache, :model_classes, :btrieve_schema
|
5
|
+
attr_accessor :btrieve_map
|
5
6
|
|
6
7
|
def self.set_context(pathname)
|
7
8
|
session = get_session
|
@@ -43,7 +44,7 @@ class BtrieveSession
|
|
43
44
|
@client_id = "#{0.chr*12}#{[0x5257].pack('S')}#{rand(65535)}"
|
44
45
|
btr_op(self, SET_DIRECTORY, NULL_BUFFER, NULL_BUFFER, @pathname, NULL_KEY)
|
45
46
|
@btrieve_schema = BtrieveSchema.new(self)
|
46
|
-
@
|
47
|
+
@btrieve_map = BtrieveMap.new()
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beezwax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Patrick Lardin
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-08-
|
18
|
+
date: 2010-08-25 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -53,13 +53,12 @@ files:
|
|
53
53
|
- lib/beezwax.rb
|
54
54
|
- lib/btrieve/btrieve_const.rb
|
55
55
|
- lib/btrieve/btrieve_core.rb
|
56
|
-
- lib/btrieve/
|
56
|
+
- lib/btrieve/btrieve_map.rb
|
57
57
|
- lib/btrieve/btrieve_model.rb
|
58
58
|
- lib/btrieve/btrieve_record.rb
|
59
59
|
- lib/btrieve/btrieve_schema.rb
|
60
60
|
- lib/btrieve/btrieve_session.rb
|
61
61
|
- lib/btrieve/btrieve_table.rb
|
62
|
-
- lib/btrieve/fos_code.rb
|
63
62
|
- test/helper.rb
|
64
63
|
- test/test_beezwax.rb
|
65
64
|
has_rdoc: true
|
data/lib/btrieve/btrieve_meta.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
class BtrieveMeta
|
2
|
-
include Btrieve
|
3
|
-
|
4
|
-
TO_FOS_DATE=lambda{|date|Date.strptime(date,"%Y%m%d").jd-Date.parse("1900/01/01").jd+1}
|
5
|
-
FROM_FOS_DATE=lambda{|day|Date.jd(day.to_i+Date.parse("1900/01/01").jd-1)}
|
6
|
-
TO_FOS_TIME=lambda{|time|time[0,2].to_i*60+time[3,2].to_i}
|
7
|
-
FROM_FOS_TIME=lambda{|time|"#{time.to_i/60}:#{(time.to_i%60).to_s.rjust(2,"0")}"}
|
8
|
-
|
9
|
-
def initialize(session)
|
10
|
-
@session=session
|
11
|
-
@mapping={
|
12
|
-
"passengers"=>{
|
13
|
-
# "birthday"=>{:up=>FROM_FOS_DATE, :down=>TO_FOS_DATE},
|
14
|
-
# "last flown"=>{:up=>FROM_FOS_DATE, :down=>TO_FOS_DATE}
|
15
|
-
},
|
16
|
-
"trip legs"=>{
|
17
|
-
# "dept date act local"=>{:up=>FROM_FOS_DATE, :down=>TO_FOS_DATE},
|
18
|
-
# "dept time act local"=>{:up=>FROM_FOS_TIME, :down=>TO_FOS_TIME},
|
19
|
-
# "arr date act local"=>{:up=>FROM_FOS_DATE, :down=>TO_FOS_DATE},
|
20
|
-
# "arriv time act local"=>{:up=>FROM_FOS_TIME, :down=>TO_FOS_TIME},
|
21
|
-
# "flight time actual"=>{:up=>FROM_FOS_TIME, :down=>TO_FOS_TIME},
|
22
|
-
# "leg type code"=>{:up=>FROM_FOS_CODE('trip_type___'), :down=>TO_FOS_CODE('trip_type___')},
|
23
|
-
# "leg purpose code"=>{:up=>FROM_FOS_CODE('purpose_____'), :down=>TO_FOS_CODE('purpose_____')}
|
24
|
-
}
|
25
|
-
}
|
26
|
-
@codes={}
|
27
|
-
codes_table=@session.get_table("codes")[0]
|
28
|
-
codes_table.each_record(BtrCodes::READ_ONLY_MODE) do |row|
|
29
|
-
group=row[:name]
|
30
|
-
code=row[:code]
|
31
|
-
description=row[:description]
|
32
|
-
value=row[:value]
|
33
|
-
group_map=@codes[group]||={}
|
34
|
-
group_map[value]=FosCode.new(group, value, code, description)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def up(tablename, column_name, value)
|
39
|
-
db_cast(tablename, column_name, value, :up)
|
40
|
-
end
|
41
|
-
|
42
|
-
def down(tablename, column_name, value)
|
43
|
-
db_cast(tablename, column_name, value, :down)
|
44
|
-
end
|
45
|
-
|
46
|
-
private
|
47
|
-
|
48
|
-
def db_cast(tablename, column_name, value, mode)
|
49
|
-
table=@mapping[tablename.to_s]
|
50
|
-
return value if(table.nil?)
|
51
|
-
column=table[column_name.to_s]
|
52
|
-
return value if(column.nil?)
|
53
|
-
column[mode].call(value)
|
54
|
-
end
|
55
|
-
|
56
|
-
def FROM_FOS_CODE(groupname)
|
57
|
-
lambda{|value|@codes[groupname][value]}
|
58
|
-
end
|
59
|
-
|
60
|
-
def TO_FOS_CODE(groupname)
|
61
|
-
lambda{|value|@codes[groupname][value].value}
|
62
|
-
end
|
63
|
-
end
|
data/lib/btrieve/fos_code.rb
DELETED