flattendb 0.1.1 → 0.1.2

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/README CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  == VERSION
4
4
 
5
- This documentation refers to flattendb version 0.1.1
5
+ This documentation refers to flattendb version 0.1.2
6
6
 
7
7
 
8
8
  == DESCRIPTION
@@ -47,11 +47,7 @@ module FlattenDB
47
47
  abort "Command not found: #{cmd}! Please install `mdbtools' first."
48
48
  }
49
49
 
50
- databases.each { |database|
51
- %x{mdb-tables -1 #{database}}.split($/).each { |table|
52
- FasterCSV.parse(%x{mdb-export #{database} #{table}}, :headers => true)
53
- }
54
- }
50
+ # ...
55
51
  end
56
52
 
57
53
  def flatten!(options = {}, builder_options = {})
@@ -164,15 +164,16 @@ module FlattenDB
164
164
  def inject_foreign(tables, primary_table, foreign_table, local_key, foreign_key = local_key, foreign_tables = tables, foreign_table_name = foreign_table)
165
165
  raise ArgumentError, "no such foreign table: #{foreign_table}" unless foreign_tables.has_key?(foreign_table)
166
166
 
167
- foreign_rows = foreign_tables[foreign_table]
167
+ foreign_rows = Hash.new { |h, k| h[k] = [] }
168
+
169
+ foreign_tables[foreign_table].each { |foreign_row|
170
+ foreign_rows[foreign_row[foreign_key]] << foreign_row
171
+ }
168
172
 
169
173
  tables[primary_table].each { |row|
170
174
  if row.has_key?(local_key)
171
- foreign_content = foreign_rows.select { |foreign_row|
172
- row[local_key] == foreign_row[foreign_key]
173
- }
174
-
175
- row[foreign_table_name] = foreign_content unless foreign_content.empty?
175
+ rows = foreign_rows[row[local_key]]
176
+ row[foreign_table_name] = rows unless rows.empty?
176
177
  end
177
178
  }
178
179
  end
@@ -4,7 +4,7 @@ module FlattenDB
4
4
 
5
5
  MAJOR = 0
6
6
  MINOR = 1
7
- TINY = 1
7
+ TINY = 2
8
8
 
9
9
  class << self
10
10
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flattendb
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jens Wille
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-07-14 00:00:00 Z
18
+ date: 2011-07-18 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: libxml-ruby
@@ -118,7 +118,7 @@ rdoc_options:
118
118
  - --main
119
119
  - README
120
120
  - --title
121
- - flattendb Application documentation (v0.1.1)
121
+ - flattendb Application documentation (v0.1.2)
122
122
  - --line-numbers
123
123
  - --all
124
124
  require_paths: