Class: Seeding::CreateSeed

Inherits:
Object
  • Object
show all
Defined in:
lib/seeding/create_seed.rb

Instance Method Summary collapse

Instance Method Details

#create(query_results) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/seeding/create_seed.rb', line 12

def create(query_results)
  klass = query_results[0].class.name
  # Create a uuid for the filename so it can't overwrite anything accidentially
  uuid = UUID.new.generate
  File.open("seeding-#{klass}-" + uuid + ".rb" , 'w') do |file|
    file.puts "# -*- encoding: utf-8 -*" 
    query_results.each_with_index.map do |v|
      attrib = v.attributes.keys
      str = "#{klass}.create! "
      attrib.each do |at|
        if v[at].class.to_s == "Fixnum"
          str << " :#{at} => #{v[at]}, "
        else
          temp_string = v[at].to_s.gsub("\"", "\\\"")
          str << " :#{at} => \"#{temp_string}\", "
        end
      end
      # todo: Clean this up
      str << "**"
      str.gsub!(", **", "")
      str << "\n"
      file.puts str
      file.puts "print \".\""
    end
  end
end

#query(q = {}) ⇒ Object

Pass in Activerecord query like Seedy::CreateSeed.new.query = true)



7
8
9
10
# File 'lib/seeding/create_seed.rb', line 7

def query(q={})
  @seedy_result = yield
  create @seedy_result
end