beezwax 0.1.4 → 0.2.0
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/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