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 CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.2.0
@@ -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 'btrieve_meta'
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
- meta = @session.btrieve_meta
65
- return raw_data if meta.nil? # BS LOC - I'm ashamed
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.btrieve_meta.down(@btrieve_table.tablename, key_name, raw_data)
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, :btrieve_meta
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
- @btrieve_meta = BtrieveMeta.new(self)
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: 19
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 4
10
- version: 0.1.4
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-24 00:00:00 -07:00
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/btrieve_meta.rb
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
@@ -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
@@ -1,13 +0,0 @@
1
- class FosCode
2
- attr_reader :group, :value, :code, :description
3
- def initialize(group, value, code, description)
4
- @group=group
5
- @value=value
6
- @code=code
7
- @description=description
8
- end
9
-
10
- def to_s
11
- @description
12
- end
13
- end