Class: Linkage::ResultSet
- Inherits:
-
Object
- Object
- Linkage::ResultSet
- Defined in:
- lib/linkage/result_set.rb
Instance Method Summary collapse
- #add_group(group, dataset_id = nil) ⇒ Object
- #create_tables! ⇒ Object
- #database(&block) ⇒ Object
- #flush! ⇒ Object
- #groups_dataset ⇒ Object
- #groups_records_dataset ⇒ Object
-
#initialize(config) ⇒ ResultSet
constructor
A new instance of ResultSet.
Constructor Details
#initialize(config) ⇒ ResultSet
Returns a new instance of ResultSet.
3 4 5 6 7 |
# File 'lib/linkage/result_set.rb', line 3 def initialize(config) @config = config @next_group_id = 1 @next_group_mutex = Mutex.new end |
Instance Method Details
#add_group(group, dataset_id = nil) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/linkage/result_set.rb', line 38 def add_group(group, dataset_id = nil) if !@groups_buffer groups_headers = [:id] + group.values.keys @groups_buffer = ImportBuffer.new(@config.results_uri, :groups, groups_headers, @config.) end @groups_records_buffer ||= ImportBuffer.new(@config.results_uri, :groups_records, [:group_id, :dataset, :record_id], @config.) group_id = next_group_id @groups_buffer.add([group_id] + group.values.values) group.records.each do |record_id| @groups_records_buffer.add([group_id, dataset_id, record_id]) end end |
#create_tables! ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/linkage/result_set.rb', line 21 def create_tables! database do |db| schema = @config.groups_table_schema db.create_table(:groups) do schema.each { |col| column(*col) } end pk_type = @config.dataset_1.field_set.primary_key.merge(@config.dataset_2.field_set.primary_key).ruby_type db.create_table(:groups_records) do column(:record_id, pk_type[:type], pk_type[:opts] || {}) Integer :group_id Integer :dataset index :group_id end end end |
#database(&block) ⇒ Object
17 18 19 |
# File 'lib/linkage/result_set.rb', line 17 def database(&block) Sequel.connect(@config.results_uri, @config., &block) end |
#flush! ⇒ Object
52 53 54 55 |
# File 'lib/linkage/result_set.rb', line 52 def flush! @groups_buffer.flush if @groups_buffer @groups_records_buffer.flush if @groups_records_buffer end |