lib/yinx_sql/batch.rb in yinx_sql-0.1.1 vs lib/yinx_sql/batch.rb in yinx_sql-0.1.2

- old
+ new

@@ -1,55 +1,48 @@ require 'yinx' -require 'yinx_sql/stack' -require 'yinx_sql/book' require 'yinx_sql/note' require 'yinx_sql/tag' module Yinx module SQL class Batch < ActiveRecord::Base has_many :tags, dependent: :destroy - has_many :stacks, dependent: :destroy - has_many :books, dependent: :destroy + has_many :notes, dependent: :destroy def self.insert notes batch = Batch.new - stacks = Hash.new do |h, name| - stack = Stack.new name: name - batch.stacks << stack - h[name] = stack - end - - books = Hash.new do |h, stack_book| - b = Book.new(name: stack_book[1]) - batch.books << b - stacks[stack_book[0]].books << b - h[stack_book] = b - end - tags = Hash.new do |h, name| tag = Tag.new name: name batch.tags << tag h[name] = tag end notes.each do |note| n = Note.new(title: note.title, + book: note.book, + stack: note.stack, content_length: note.contentLength, created_at: note.created_at, updated_at: note.updated_at) - book = books[[note.stack, note.book]] - book.notes << n + batch.notes << n note.tags.each do |tag_name| tag = tags[tag_name] tag.notes << n end end batch.save + end + + def books + notes.map(&:stack_book).uniq + end + + def stacks + notes.map{|note| note.stack.nil? ? 'NO_STACK' : note.stack}.uniq end end end end