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