seed_dump 0.6.0 → 1.0.0
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.
- checksums.yaml +4 -4
 - data/.rspec +2 -0
 - data/Gemfile +13 -0
 - data/README.md +89 -0
 - data/Rakefile +4 -24
 - data/VERSION +1 -1
 - data/lib/seed_dump/perform.rb +34 -36
 - data/seed_dump.gemspec +30 -11
 - data/{test → spec}/models/abstract_sample.rb +0 -0
 - data/{test → spec}/models/child_sample.rb +0 -1
 - data/{test → spec}/models/nested/sample.rb +0 -1
 - data/spec/models/sample.rb +2 -0
 - data/spec/seed_dump_perform_spec.rb +118 -0
 - data/spec/spec_helper.rb +15 -0
 - metadata +55 -12
 - data/README.rdoc +0 -114
 - data/test/fixtures/samples.yml +0 -54
 - data/test/models/sample.rb +0 -3
 - data/test/seed_dump_test.rb +0 -77
 - data/test/test_helper.rb +0 -36
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 6af3d1433e6c77d4aa40fa1ea392cc9ac21ee728
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: eb9a5434bc51a69c1f24828c91be082679bf6668
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a995c0615b35cc3a7332a8d2eef59dea404ece69fa9b8ec10ab46ff3c0338fed07de039c14673ec582fa4cb86877ad90c5f6f81c1ac5a76cb30e60e282546595
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 59aeb2c7666dfba8471406b8428598025f2e3a522f15fdd6419a06179c4671bfce6ca89eb14ee121a12522b0e1923200f9ba728737136903d077b234ce4c0921
         
     | 
    
        data/.rspec
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,89 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Seed Dump
         
     | 
| 
      
 2 
     | 
    
         
            +
            ========
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            Seed Dump is a Rails 4 plugin that adds a rake task named `db:seed:dump`.
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            It allows you to create a `db/seeds.rb` from the existing data in your database.
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Note: if you want to use Seed Dump with Rails 3 or earlier, use [version 0.5.3](http://rubygems.org/gems/seed_dump/versions/0.5.3) or earlier.
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            Example Usage
         
     | 
| 
      
 11 
     | 
    
         
            +
            -------------
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            Dump all data directly to `db/seeds.rb`:
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                $ rake db:seed:dump
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            Dump only data from the users and products table and dump a maximum amount of 2 records:
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                $ rake db:seed:dump MODELS=User,Product LIMIT=2
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            Result:
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                $ cat db/seeds.rb
         
     | 
| 
      
 24 
     | 
    
         
            +
                # Autogenerated by the db:seed:dump task
         
     | 
| 
      
 25 
     | 
    
         
            +
                # Do not hesitate to tweak this to your needs
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                products = Product.create([
         
     | 
| 
      
 28 
     | 
    
         
            +
                  { :category_id => 1, :description => "Long Sleeve Shirt", :name => "Long Sleeve Shirt" },
         
     | 
| 
      
 29 
     | 
    
         
            +
                  { :category_id => 3, :description => "Plain White Tee Shirt", :name => "Plain T-Shirt" }
         
     | 
| 
      
 30 
     | 
    
         
            +
                ])
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                users = User.create([
         
     | 
| 
      
 33 
     | 
    
         
            +
                  { :id => 1, :password => "123456", :username => "test_1" },
         
     | 
| 
      
 34 
     | 
    
         
            +
                  { :id => 2, :password => "234567", :username => "tes2" }
         
     | 
| 
      
 35 
     | 
    
         
            +
                ])
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            Append to `db/seeds.rb` instead of overwriting it:
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                rake db:seed:dump APPEND=true
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            Use another output file instead of `db/seeds.rb`:
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                rake db:seed:dump FILE=db/categories.rb
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            If you want the dump to use `create!` rather than `create`:
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                rake db:seed:dump CREATE_METHOD='create!'
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            There are more environment variables that can be set— see below for all of them.
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            Installation
         
     | 
| 
      
 53 
     | 
    
         
            +
            ------------
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            Add it to your Gemfile with:
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                gem 'seed_dump'
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            Or install it by hand:
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                $ gem install seed_dump
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            All environment variables
         
     | 
| 
      
 65 
     | 
    
         
            +
            -------------------------
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            `APPEND`: Append the data to the file instead of overwriting it.
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            `CREATE_METHOD`: Use the specified create method rather than `create` (the default).  Note: if you are using bash and want to use `create!`, be sure to use single quotes on the command line (i.e. `CREATE_METHOD='create!'`).
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            `FILE`: Use a different output file.  Default: `db/seeds.rb`.
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            `LIMIT`: Dump no more then this amount of data.  Default: no limit.
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            `MAX`: Split one create action per model into several create actions with MAX elements in each.  Default: no limit.  Useful for large data dumping to reduce memory usage.
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            `MODEL[S]`: A model name or a comma-separated list of models.  Default: all models.
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            `NO_DATA`: Don't dump any data from the db, instead generate empty `create` options. 
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            `WITH_ID`: Include the `:id` in the `create` options.
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            `TIMESTAMPS`: If true, include the `:created_by` and `:updated_by` timestamps.  If false, don't include them.  Default: true.
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            `SKIP_CALLBACKS`: Deactivate callbacks while importing.
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
            `PG_SCHEMA`: Postgres schema support.
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
            `MODEL_DIR`: Specify an alternate model dir.
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -16,30 +16,6 @@ rescue LoadError 
     | 
|
| 
       16 
16 
     | 
    
         
             
              puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
         
     | 
| 
       17 
17 
     | 
    
         
             
            end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            require 'rake/testtask'
         
     | 
| 
       20 
     | 
    
         
            -
            Rake::TestTask.new(:test) do |test|
         
     | 
| 
       21 
     | 
    
         
            -
              test.libs << 'lib' << 'test'
         
     | 
| 
       22 
     | 
    
         
            -
              test.pattern = 'test/*_test.rb'
         
     | 
| 
       23 
     | 
    
         
            -
              test.verbose = true
         
     | 
| 
       24 
     | 
    
         
            -
            end
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
            begin
         
     | 
| 
       27 
     | 
    
         
            -
              require 'rcov/rcovtask'
         
     | 
| 
       28 
     | 
    
         
            -
              Rcov::RcovTask.new do |test|
         
     | 
| 
       29 
     | 
    
         
            -
                test.libs << 'test'
         
     | 
| 
       30 
     | 
    
         
            -
                test.pattern = 'test/**/test_*.rb'
         
     | 
| 
       31 
     | 
    
         
            -
                test.verbose = true
         
     | 
| 
       32 
     | 
    
         
            -
              end
         
     | 
| 
       33 
     | 
    
         
            -
            rescue LoadError
         
     | 
| 
       34 
     | 
    
         
            -
              task :rcov do
         
     | 
| 
       35 
     | 
    
         
            -
                abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
         
     | 
| 
       36 
     | 
    
         
            -
              end
         
     | 
| 
       37 
     | 
    
         
            -
            end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
            task :test => :check_dependencies
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
            task :default => :test
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
19 
     | 
    
         
             
            require 'rdoc/task'
         
     | 
| 
       44 
20 
     | 
    
         
             
            Rake::RDocTask.new do |rdoc|
         
     | 
| 
       45 
21 
     | 
    
         
             
              version = File.exist?('VERSION') ? File.read('VERSION') : ""
         
     | 
| 
         @@ -49,3 +25,7 @@ Rake::RDocTask.new do |rdoc| 
     | 
|
| 
       49 
25 
     | 
    
         
             
              rdoc.rdoc_files.include('README*')
         
     | 
| 
       50 
26 
     | 
    
         
             
              rdoc.rdoc_files.include('lib/**/*.rb')
         
     | 
| 
       51 
27 
     | 
    
         
             
            end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            require 'rspec/core/rake_task'
         
     | 
| 
      
 30 
     | 
    
         
            +
            RSpec::Core::RakeTask.new(:spec)
         
     | 
| 
      
 31 
     | 
    
         
            +
            task :default => :spec
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.0.0
         
     | 
    
        data/lib/seed_dump/perform.rb
    CHANGED
    
    | 
         @@ -22,7 +22,6 @@ module SeedDump 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  @opts['with_id'] = env["WITH_ID"].true?
         
     | 
| 
       23 
23 
     | 
    
         
             
                  @opts['timestamps'] = env["TIMESTAMPS"].true? || env["TIMESTAMPS"].nil?
         
     | 
| 
       24 
24 
     | 
    
         
             
                  @opts['no-data'] = env['NO_DATA'].true?
         
     | 
| 
       25 
     | 
    
         
            -
                  @opts['without_protection'] = env['WITHOUT_PROTECTION'].true? || (env['WITHOUT_PROTECTION'].nil? && @opts['timestamps'])
         
     | 
| 
       26 
25 
     | 
    
         
             
                  @opts['skip_callbacks'] = env['SKIP_CALLBACKS'].true?
         
     | 
| 
       27 
26 
     | 
    
         
             
                  @opts['models']  = env['MODELS'] || (env['MODEL'] ? env['MODEL'] : "")
         
     | 
| 
       28 
27 
     | 
    
         
             
                  @opts['file']    = env['FILE'] || "#{Rails.root}/db/seeds.rb"
         
     | 
| 
         @@ -34,41 +33,46 @@ module SeedDump 
     | 
|
| 
       34 
33 
     | 
    
         
             
                  @opts['schema']  = env['PG_SCHEMA']
         
     | 
| 
       35 
34 
     | 
    
         
             
                  @opts['model_dir']  = env['MODEL_DIR'] || @model_dir
         
     | 
| 
       36 
35 
     | 
    
         
             
                  @opts['create_method']  = env['CREATE_METHOD'] || 'create'
         
     | 
| 
       37 
     | 
    
         
            -
                  @opts['rails4'] = env['RAILS4'].true?
         
     | 
| 
       38 
     | 
    
         
            -
                  monkeypatch_AR if @opts['rails4']
         
     | 
| 
       39 
36 
     | 
    
         
             
                end
         
     | 
| 
       40 
37 
     | 
    
         | 
| 
       41 
     | 
    
         
            -
                def  
     | 
| 
       42 
     | 
    
         
            -
                   
     | 
| 
       43 
     | 
    
         
            -
                    def attr_accessible(*opts)
         
     | 
| 
       44 
     | 
    
         
            -
                      nil
         
     | 
| 
       45 
     | 
    
         
            -
                    end
         
     | 
| 
       46 
     | 
    
         
            -
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
                def log(msg)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  puts msg if @opts['debug']
         
     | 
| 
       47 
40 
     | 
    
         
             
                end
         
     | 
| 
       48 
41 
     | 
    
         | 
| 
       49 
42 
     | 
    
         
             
                def load_models
         
     | 
| 
       50 
     | 
    
         
            -
                   
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                     
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                     
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
      
 43 
     | 
    
         
            +
                  log("Searching in #{@opts['model_dir']} for models")
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                  Dir[File.join(Dir.pwd, @opts['model_dir'])].sort.each do |f|
         
     | 
| 
      
 46 
     | 
    
         
            +
                    log("Processing file #{f}")
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                    dirname, basename = File.split(f)
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                    dir_array = dirname.split(File::SEPARATOR)
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                    # Find index of last occurence of 'models' in path
         
     | 
| 
      
 53 
     | 
    
         
            +
                    models_index = nil
         
     | 
| 
      
 54 
     | 
    
         
            +
                    dir_array.each_with_index {|x, i| models_index = i if x == 'models'}
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                    model_dir_array = dir_array[models_index + 1..-1]
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
       58 
58 
     | 
    
         
             
                    # Initialize nested model namespaces
         
     | 
| 
       59 
     | 
    
         
            -
                     
     | 
| 
       60 
     | 
    
         
            -
                       
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
      
 59 
     | 
    
         
            +
                    model_dir_array.inject(Object) do |parent, child|
         
     | 
| 
      
 60 
     | 
    
         
            +
                      child = child.camelize
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                      if parent.const_defined?(child)
         
     | 
| 
      
 63 
     | 
    
         
            +
                        parent.const_get(child)
         
     | 
| 
       62 
64 
     | 
    
         
             
                      else
         
     | 
| 
       63 
     | 
    
         
            -
                         
     | 
| 
      
 65 
     | 
    
         
            +
                        parent.const_set(child, Module.new)
         
     | 
| 
       64 
66 
     | 
    
         
             
                      end
         
     | 
| 
       65 
67 
     | 
    
         
             
                    end
         
     | 
| 
       66 
68 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
                    model = parts.join("::")
         
     | 
| 
       68 
69 
     | 
    
         
             
                    require f
         
     | 
| 
       69 
70 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
                     
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
      
 71 
     | 
    
         
            +
                    model = File.join(model_dir_array + [File.basename(basename, '.rb')]).camelize
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                    log("Detected model #{model}")
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                    @models << model if @opts['models'].include?(model) || @opts['models'].empty?
         
     | 
| 
       72 
76 
     | 
    
         
             
                  end
         
     | 
| 
       73 
77 
     | 
    
         
             
                end
         
     | 
| 
       74 
78 
     | 
    
         | 
| 
         @@ -103,25 +107,22 @@ module SeedDump 
     | 
|
| 
       103 
107 
     | 
    
         
             
                  create_hash = ""
         
     | 
| 
       104 
108 
     | 
    
         
             
                  options = ''
         
     | 
| 
       105 
109 
     | 
    
         
             
                  rows = []
         
     | 
| 
       106 
     | 
    
         
            -
                  arr =  
     | 
| 
       107 
     | 
    
         
            -
                   
     | 
| 
      
 110 
     | 
    
         
            +
                  arr = nil
         
     | 
| 
      
 111 
     | 
    
         
            +
                  unless @opts['no-data']
         
     | 
| 
      
 112 
     | 
    
         
            +
                    arr = model.all
         
     | 
| 
      
 113 
     | 
    
         
            +
                    arr.limit(@ar_options[:limit]) if @ar_options[:limit]
         
     | 
| 
      
 114 
     | 
    
         
            +
                  end
         
     | 
| 
       108 
115 
     | 
    
         
             
                  arr = arr.empty? ? [model.new] : arr
         
     | 
| 
       109 
116 
     | 
    
         | 
| 
       110 
117 
     | 
    
         
             
                  arr.each_with_index { |r,i|
         
     | 
| 
       111 
118 
     | 
    
         
             
                    attr_s = [];
         
     | 
| 
       112 
119 
     | 
    
         
             
                    r.attributes.each do |k,v|
         
     | 
| 
       113 
     | 
    
         
            -
                       
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
       115 
     | 
    
         
            -
                        @last_record.push k if pushed_key
         
     | 
| 
       116 
     | 
    
         
            -
                      end
         
     | 
| 
      
 120 
     | 
    
         
            +
                      pushed_key = dump_attribute(attr_s,r,k,v)
         
     | 
| 
      
 121 
     | 
    
         
            +
                      @last_record.push k if pushed_key
         
     | 
| 
       117 
122 
     | 
    
         
             
                    end
         
     | 
| 
       118 
123 
     | 
    
         
             
                    rows.push "#{@indent}{ " << attr_s.join(', ') << " }"
         
     | 
| 
       119 
124 
     | 
    
         
             
                  }
         
     | 
| 
       120 
125 
     | 
    
         | 
| 
       121 
     | 
    
         
            -
                  if @opts['without_protection']
         
     | 
| 
       122 
     | 
    
         
            -
                    options = ', :without_protection => true '
         
     | 
| 
       123 
     | 
    
         
            -
                  end
         
     | 
| 
       124 
     | 
    
         
            -
             
     | 
| 
       125 
126 
     | 
    
         
             
                  if @opts['max']
         
     | 
| 
       126 
127 
     | 
    
         
             
                    splited_rows = rows.each_slice(@opts['max']).to_a
         
     | 
| 
       127 
128 
     | 
    
         
             
                    maxsarr = []
         
     | 
| 
         @@ -182,11 +183,8 @@ module SeedDump 
     | 
|
| 
       182 
183 
     | 
    
         
             
                end
         
     | 
| 
       183 
184 
     | 
    
         | 
| 
       184 
185 
     | 
    
         
             
                def run(env)
         
     | 
| 
       185 
     | 
    
         
            -
             
     | 
| 
       186 
186 
     | 
    
         
             
                  setup env
         
     | 
| 
       187 
187 
     | 
    
         | 
| 
       188 
     | 
    
         
            -
                  puts "Protection is disabled." if @opts['verbose'] && @opts['without_protection']
         
     | 
| 
       189 
     | 
    
         
            -
             
     | 
| 
       190 
188 
     | 
    
         
             
                  set_search_path @opts['schema'] if @opts['schema']
         
     | 
| 
       191 
189 
     | 
    
         | 
| 
       192 
190 
     | 
    
         
             
                  load_models
         
     | 
    
        data/seed_dump.gemspec
    CHANGED
    
    | 
         @@ -5,20 +5,22 @@ 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
7 
     | 
    
         
             
              s.name = "seed_dump"
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = "0. 
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "1.0.0"
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.authors = ["Rob Halff", "Ryan Oblak"]
         
     | 
| 
       12 
     | 
    
         
            -
              s.date = "2013- 
     | 
| 
      
 12 
     | 
    
         
            +
              s.date = "2013-09-18"
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.description = "Dump (parts) of your database to db/seeds.rb to get a headstart creating a meaningful seeds.rb file"
         
     | 
| 
       14 
14 
     | 
    
         
             
              s.email = "rroblak@gmail.com"
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.extra_rdoc_files = [
         
     | 
| 
       16 
     | 
    
         
            -
                "README. 
     | 
| 
      
 16 
     | 
    
         
            +
                "README.md"
         
     | 
| 
       17 
17 
     | 
    
         
             
              ]
         
     | 
| 
       18 
18 
     | 
    
         
             
              s.files = [
         
     | 
| 
      
 19 
     | 
    
         
            +
                ".rspec",
         
     | 
| 
       19 
20 
     | 
    
         
             
                "CHANGELOG.rdoc",
         
     | 
| 
      
 21 
     | 
    
         
            +
                "Gemfile",
         
     | 
| 
       20 
22 
     | 
    
         
             
                "MIT-LICENSE",
         
     | 
| 
       21 
     | 
    
         
            -
                "README. 
     | 
| 
      
 23 
     | 
    
         
            +
                "README.md",
         
     | 
| 
       22 
24 
     | 
    
         
             
                "Rakefile",
         
     | 
| 
       23 
25 
     | 
    
         
             
                "VERSION",
         
     | 
| 
       24 
26 
     | 
    
         
             
                "lib/clip.rb",
         
     | 
| 
         @@ -28,17 +30,34 @@ Gem::Specification.new do |s| 
     | 
|
| 
       28 
30 
     | 
    
         
             
                "lib/tasks/seed_dump.rake",
         
     | 
| 
       29 
31 
     | 
    
         
             
                "lib/true.rb",
         
     | 
| 
       30 
32 
     | 
    
         
             
                "seed_dump.gemspec",
         
     | 
| 
       31 
     | 
    
         
            -
                " 
     | 
| 
       32 
     | 
    
         
            -
                " 
     | 
| 
       33 
     | 
    
         
            -
                " 
     | 
| 
       34 
     | 
    
         
            -
                " 
     | 
| 
       35 
     | 
    
         
            -
                " 
     | 
| 
       36 
     | 
    
         
            -
                " 
     | 
| 
       37 
     | 
    
         
            -
                "test/test_helper.rb"
         
     | 
| 
      
 33 
     | 
    
         
            +
                "spec/models/abstract_sample.rb",
         
     | 
| 
      
 34 
     | 
    
         
            +
                "spec/models/child_sample.rb",
         
     | 
| 
      
 35 
     | 
    
         
            +
                "spec/models/nested/sample.rb",
         
     | 
| 
      
 36 
     | 
    
         
            +
                "spec/models/sample.rb",
         
     | 
| 
      
 37 
     | 
    
         
            +
                "spec/seed_dump_perform_spec.rb",
         
     | 
| 
      
 38 
     | 
    
         
            +
                "spec/spec_helper.rb"
         
     | 
| 
       38 
39 
     | 
    
         
             
              ]
         
     | 
| 
       39 
40 
     | 
    
         
             
              s.homepage = "https://github.com/rroblak/seed_dump"
         
     | 
| 
       40 
41 
     | 
    
         
             
              s.require_paths = ["lib"]
         
     | 
| 
       41 
42 
     | 
    
         
             
              s.rubygems_version = "2.0.3"
         
     | 
| 
       42 
43 
     | 
    
         
             
              s.summary = "{Seed Dumper for Rails}"
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              if s.respond_to? :specification_version then
         
     | 
| 
      
 46 
     | 
    
         
            +
                s.specification_version = 4
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         
     | 
| 
      
 49 
     | 
    
         
            +
                  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
         
     | 
| 
      
 50 
     | 
    
         
            +
                  s.add_runtime_dependency(%q<activerecord>, [">= 0"])
         
     | 
| 
      
 51 
     | 
    
         
            +
                  s.add_development_dependency(%q<jeweler>, [">= 0"])
         
     | 
| 
      
 52 
     | 
    
         
            +
                else
         
     | 
| 
      
 53 
     | 
    
         
            +
                  s.add_dependency(%q<activesupport>, [">= 0"])
         
     | 
| 
      
 54 
     | 
    
         
            +
                  s.add_dependency(%q<activerecord>, [">= 0"])
         
     | 
| 
      
 55 
     | 
    
         
            +
                  s.add_dependency(%q<jeweler>, [">= 0"])
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
              else
         
     | 
| 
      
 58 
     | 
    
         
            +
                s.add_dependency(%q<activesupport>, [">= 0"])
         
     | 
| 
      
 59 
     | 
    
         
            +
                s.add_dependency(%q<activerecord>, [">= 0"])
         
     | 
| 
      
 60 
     | 
    
         
            +
                s.add_dependency(%q<jeweler>, [">= 0"])
         
     | 
| 
      
 61 
     | 
    
         
            +
              end
         
     | 
| 
       43 
62 
     | 
    
         
             
            end
         
     | 
| 
       44 
63 
     | 
    
         | 
| 
         
            File without changes
         
     | 
| 
         @@ -0,0 +1,118 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe SeedDump::Perform do
         
     | 
| 
      
 4 
     | 
    
         
            +
              before(:all) do
         
     | 
| 
      
 5 
     | 
    
         
            +
                ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                ActiveRecord::Schema.define(:version => 1) do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  create_table 'child_samples', :force => true do |t|
         
     | 
| 
      
 9 
     | 
    
         
            +
                    t.string   'name'
         
     | 
| 
      
 10 
     | 
    
         
            +
                    t.datetime 'created_at', :null => false
         
     | 
| 
      
 11 
     | 
    
         
            +
                    t.datetime 'updated_at', :null => false
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  create_table 'samples', :force => true do |t|
         
     | 
| 
      
 15 
     | 
    
         
            +
                    t.string   'string'
         
     | 
| 
      
 16 
     | 
    
         
            +
                    t.text     'text'
         
     | 
| 
      
 17 
     | 
    
         
            +
                    t.integer  'integer'
         
     | 
| 
      
 18 
     | 
    
         
            +
                    t.float    'float'
         
     | 
| 
      
 19 
     | 
    
         
            +
                    t.decimal  'decimal'
         
     | 
| 
      
 20 
     | 
    
         
            +
                    t.datetime 'datetime'
         
     | 
| 
      
 21 
     | 
    
         
            +
                    t.datetime 'timestamp'
         
     | 
| 
      
 22 
     | 
    
         
            +
                    t.time     'time'
         
     | 
| 
      
 23 
     | 
    
         
            +
                    t.date     'date'
         
     | 
| 
      
 24 
     | 
    
         
            +
                    t.binary   'binary'
         
     | 
| 
      
 25 
     | 
    
         
            +
                    t.boolean  'boolean'
         
     | 
| 
      
 26 
     | 
    
         
            +
                    t.datetime 'created_at', :null => false
         
     | 
| 
      
 27 
     | 
    
         
            +
                    t.datetime 'updated_at', :null => false
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
              before do
         
     | 
| 
      
 33 
     | 
    
         
            +
                @sd = SeedDump::Perform.new
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                @env = {'MODEL_DIR' => 'spec/models/*.rb',
         
     | 
| 
      
 36 
     | 
    
         
            +
                        'FILE' => Dir.pwd + '/spec/db/seeds.rb',
         
     | 
| 
      
 37 
     | 
    
         
            +
                        'VERBOSE' => false,
         
     | 
| 
      
 38 
     | 
    
         
            +
                        'DEBUG' => false}
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              it 'should load models from the specified directory' do
         
     | 
| 
      
 42 
     | 
    
         
            +
                @sd.setup(@env)
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                @sd.load_models
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                @sd.models.should eq(["AbstractSample", "ChildSample", "Sample"])
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
              it 'should support nested models' do
         
     | 
| 
      
 50 
     | 
    
         
            +
                @env['MODEL_DIR'] = 'spec/models/**/*.rb'
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                @sd.setup @env
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                @sd.load_models
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                @sd.models.should eq(['AbstractSample', 'ChildSample', 'Nested::Sample', 'Sample'])
         
     | 
| 
      
 57 
     | 
    
         
            +
              end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
              it 'should not include timestamps if the TIMESTAMPS parameter is false' do
         
     | 
| 
      
 60 
     | 
    
         
            +
                @env['TIMESTAMPS'] = false
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                @sd.setup @env
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                @sd.load_models
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                @sd.dump_models
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                @sd.last_record.should_not include('created_at')
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
              it 'should include timestamps if the TIMESTAMPS parameter is true' do
         
     | 
| 
      
 72 
     | 
    
         
            +
                @env['TIMESTAMPS'] = true
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                @sd.setup @env
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                @sd.load_models
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                @sd.dump_models
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                @sd.last_record.should include('created_at')
         
     | 
| 
      
 81 
     | 
    
         
            +
              end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
              it 'should include ids if the WITH_ID parameter is true' do
         
     | 
| 
      
 84 
     | 
    
         
            +
                @env['WITH_ID'] = true
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                @sd.setup @env
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                @sd.load_models
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
                @sd.dump_models
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
                @sd.last_record.should include('id')
         
     | 
| 
      
 93 
     | 
    
         
            +
              end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
              it 'should skip abstract models' do
         
     | 
| 
      
 96 
     | 
    
         
            +
                @env['MODELS'] = 'AbstractSample'
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
                @sd.setup @env
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                @sd.load_models
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
                @sd.dump_models
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
                @sd.last_record.should eq([])
         
     | 
| 
      
 105 
     | 
    
         
            +
              end
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
              it 'should use the create method specified in the CREATE_METHOD parameter' do
         
     | 
| 
      
 108 
     | 
    
         
            +
                @env['CREATE_METHOD'] = 'create!'
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
                @sd.setup @env
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
                @sd.load_models
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
                @sd.dump_models
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
                @sd.instance_variable_get(:@seed_rb).should include('create!')
         
     | 
| 
      
 117 
     | 
    
         
            +
              end
         
     | 
| 
      
 118 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/spec_helper.rb
    ADDED
    
    | 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'seed_dump/perform'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'active_support/core_ext/string'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'active_record'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            RSpec.configure do |config|
         
     | 
| 
      
 6 
     | 
    
         
            +
              config.treat_symbols_as_metadata_keys_with_true_values = true
         
     | 
| 
      
 7 
     | 
    
         
            +
              config.run_all_when_everything_filtered = true
         
     | 
| 
      
 8 
     | 
    
         
            +
              config.filter_run :focus
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              # Run specs in random order to surface order dependencies. If you find an
         
     | 
| 
      
 11 
     | 
    
         
            +
              # order dependency and want to debug it, you can fix the order by providing
         
     | 
| 
      
 12 
     | 
    
         
            +
              # the seed, which is printed after each run.
         
     | 
| 
      
 13 
     | 
    
         
            +
              #     --seed 1234
         
     | 
| 
      
 14 
     | 
    
         
            +
              config.order = 'random'
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: seed_dump
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Rob Halff
         
     | 
| 
         @@ -9,19 +9,63 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2013- 
     | 
| 
       13 
     | 
    
         
            -
            dependencies: 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-09-18 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 15 
     | 
    
         
            +
              name: activesupport
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 18 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 19 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 20 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 21 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 22 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 23 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 24 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 25 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 26 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 27 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 28 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 29 
     | 
    
         
            +
              name: activerecord
         
     | 
| 
      
 30 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 31 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 32 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 33 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 34 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 35 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 36 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 37 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 38 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 39 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 40 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 41 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 42 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 43 
     | 
    
         
            +
              name: jeweler
         
     | 
| 
      
 44 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 45 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 46 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 47 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 48 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 49 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 50 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 51 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 52 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 53 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 54 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 55 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       14 
56 
     | 
    
         
             
            description: Dump (parts) of your database to db/seeds.rb to get a headstart creating
         
     | 
| 
       15 
57 
     | 
    
         
             
              a meaningful seeds.rb file
         
     | 
| 
       16 
58 
     | 
    
         
             
            email: rroblak@gmail.com
         
     | 
| 
       17 
59 
     | 
    
         
             
            executables: []
         
     | 
| 
       18 
60 
     | 
    
         
             
            extensions: []
         
     | 
| 
       19 
61 
     | 
    
         
             
            extra_rdoc_files:
         
     | 
| 
       20 
     | 
    
         
            -
            - README. 
     | 
| 
      
 62 
     | 
    
         
            +
            - README.md
         
     | 
| 
       21 
63 
     | 
    
         
             
            files:
         
     | 
| 
      
 64 
     | 
    
         
            +
            - .rspec
         
     | 
| 
       22 
65 
     | 
    
         
             
            - CHANGELOG.rdoc
         
     | 
| 
      
 66 
     | 
    
         
            +
            - Gemfile
         
     | 
| 
       23 
67 
     | 
    
         
             
            - MIT-LICENSE
         
     | 
| 
       24 
     | 
    
         
            -
            - README. 
     | 
| 
      
 68 
     | 
    
         
            +
            - README.md
         
     | 
| 
       25 
69 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       26 
70 
     | 
    
         
             
            - VERSION
         
     | 
| 
       27 
71 
     | 
    
         
             
            - lib/clip.rb
         
     | 
| 
         @@ -31,13 +75,12 @@ files: 
     | 
|
| 
       31 
75 
     | 
    
         
             
            - lib/tasks/seed_dump.rake
         
     | 
| 
       32 
76 
     | 
    
         
             
            - lib/true.rb
         
     | 
| 
       33 
77 
     | 
    
         
             
            - seed_dump.gemspec
         
     | 
| 
       34 
     | 
    
         
            -
            -  
     | 
| 
       35 
     | 
    
         
            -
            -  
     | 
| 
       36 
     | 
    
         
            -
            -  
     | 
| 
       37 
     | 
    
         
            -
            -  
     | 
| 
       38 
     | 
    
         
            -
            -  
     | 
| 
       39 
     | 
    
         
            -
            -  
     | 
| 
       40 
     | 
    
         
            -
            - test/test_helper.rb
         
     | 
| 
      
 78 
     | 
    
         
            +
            - spec/models/abstract_sample.rb
         
     | 
| 
      
 79 
     | 
    
         
            +
            - spec/models/child_sample.rb
         
     | 
| 
      
 80 
     | 
    
         
            +
            - spec/models/nested/sample.rb
         
     | 
| 
      
 81 
     | 
    
         
            +
            - spec/models/sample.rb
         
     | 
| 
      
 82 
     | 
    
         
            +
            - spec/seed_dump_perform_spec.rb
         
     | 
| 
      
 83 
     | 
    
         
            +
            - spec/spec_helper.rb
         
     | 
| 
       41 
84 
     | 
    
         
             
            homepage: https://github.com/rroblak/seed_dump
         
     | 
| 
       42 
85 
     | 
    
         
             
            licenses: []
         
     | 
| 
       43 
86 
     | 
    
         
             
            metadata: {}
         
     | 
    
        data/README.rdoc
    DELETED
    
    | 
         @@ -1,114 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            = SeedDump
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            Seed dump is a Rails plugin that adds a rake task named db:seed:dump.
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            It allows you to create a db/seeds.rb from your existing data in the database.
         
     | 
| 
       6 
     | 
    
         
            -
            When there is no data in the database it will generate empty create statements.
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            It mainly exists for people who are too lazy writing create statements in db/seeds.rb themselves
         
     | 
| 
       9 
     | 
    
         
            -
            and need something to dump data from their existing database data into seeds.rb
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            Note: for Rails 4 compatibility please add "RAILS4=true WITHOUT_PROTECTION=false".  This will be cleaned up in the future.
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            == Example Usage
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
            Dump all data directly to db/seeds.rb:
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
              rake db:seed:dump
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            Dump only data from the users and products table and dump a maximum amount of 2 records:
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
              $ rake db:seed:dump MODELS=User,Product LIMIT=2
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            Result:
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
              $ cat db/seeds.rb 
         
     | 
| 
       26 
     | 
    
         
            -
              # Autogenerated by the db:seed:dump task
         
     | 
| 
       27 
     | 
    
         
            -
              # Do not hesitate to tweak this to your needs
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
              products = Product.create([
         
     | 
| 
       30 
     | 
    
         
            -
                { :category_id => 1, :description => "Long Sleeve Shirt", :name => "Long Sleeve Shirt" },
         
     | 
| 
       31 
     | 
    
         
            -
                { :category_id => 3, :description => "Plain White Tee Shirt", :name => "Plain T-Shirt" }
         
     | 
| 
       32 
     | 
    
         
            -
              ])
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
              users = User.create([
         
     | 
| 
       35 
     | 
    
         
            -
                { :id => 1, :password => "123456", :username => "test_1" },
         
     | 
| 
       36 
     | 
    
         
            -
                { :id => 2, :password => "234567", :username => "tes2" }
         
     | 
| 
       37 
     | 
    
         
            -
              ])
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
            Append to db/seeds.rb instead of overwriting it:
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
              rake db:seed:dump APPEND=true
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
            Use another output file instead of db/seeds.rb
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
              rake db:seed:dump FILE=db/categories.rb
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
            By default the :id column will not be added to the generated create statements.
         
     | 
| 
       48 
     | 
    
         
            -
            If you do want the :id to be included use WITH_ID:
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
              rake db:seed:dump WITH_ID=1
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
            If you don't want +seed_dump+ to dump any data allready available in the database use NO_DATA.
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
            This will generate the dump with only 1 empty create statement.
         
     | 
| 
       55 
     | 
    
         
            -
            It's up to you to edit these and change the values into something meaningful:
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
              rake db:seed:dump MODEL=User NO_DATA=1 APPEND=true 
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
            If you want the dump to use `create!` rather than `create`:
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
              rake db:seed:dump CREATE_METHOD='create!'
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
            Here is a full example using all of the options above:
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
              rake db:seed:dump MODELS=Category LIMIT=10 APPEND=true FILE=db/categories.rb WITH_ID=1 NO_DATA=1 CREATE_METHOD='create!'
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
            == All environment variables
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
            RAILS4:
         
     | 
| 
       70 
     | 
    
         
            -
              Specify as "true" for Rails 4 compatibility.
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
            APPEND:
         
     | 
| 
       73 
     | 
    
         
            -
             Append the data to db/seeds.rb instead of overwriting it.
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
            CREATE_METHOD:
         
     | 
| 
       76 
     | 
    
         
            -
             Use the specified create method rather than 'create' (the default).  Note: if you are using bash and want to use 'create!', be sure to use single quotes on the command line (i.e. CREATE_METHOD='create!').
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
            FILE:
         
     | 
| 
       79 
     | 
    
         
            -
             Use a different output file, default: db/seeds.rb
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
            LIMIT:
         
     | 
| 
       82 
     | 
    
         
            -
             Dump no more then this amount of data, default: no limit
         
     | 
| 
       83 
     | 
    
         
            -
             
         
     | 
| 
       84 
     | 
    
         
            -
            MAX:
         
     | 
| 
       85 
     | 
    
         
            -
             Split one create action per model to several create actions with MAX elements in each, default: no limit
         
     | 
| 
       86 
     | 
    
         
            -
             It usefull for large data dumping to reduce memory usage
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
            MODEL(S):
         
     | 
| 
       89 
     | 
    
         
            -
             A model name or a comma seperated list of models, default: all models
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
            NO_DATA:
         
     | 
| 
       92 
     | 
    
         
            -
             Don't dump any data from the db, instead generate empty Create options 
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
            WITH_ID:
         
     | 
| 
       95 
     | 
    
         
            -
             Inlcude the +:id+ in the create options
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
            TIMESTAMPS:
         
     | 
| 
       98 
     | 
    
         
            -
             Include the :created_by and :updated_by timestamps (default)
         
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
            SKIP_CALLBACKS:
         
     | 
| 
       101 
     | 
    
         
            -
             Deactivate callbacks while importing.
         
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
            PG_SCHEMA:
         
     | 
| 
       104 
     | 
    
         
            -
             Postgres schema support
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
            WITHOUT_PROTECTION:
         
     | 
| 
       107 
     | 
    
         
            -
             Skip protection for columns that are protected by default.
         
     | 
| 
       108 
     | 
    
         
            -
             Note : WITH_ID and TIMESTAMPS automatically override protection
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
            MODEL_DIR:
         
     | 
| 
       111 
     | 
    
         
            -
             Specify an alternative model dir
         
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
            Copyright (c) 2010 Rob Halff, released under the MIT license
         
     | 
    
        data/test/fixtures/samples.yml
    DELETED
    
    | 
         @@ -1,54 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            bharathiyar:
         
     | 
| 
       4 
     | 
    
         
            -
              string: Poetry of Subramaniya Bharathiyar 
         
     | 
| 
       5 
     | 
    
         
            -
              text: யாமறிந்த மொழிகளிலே தமிழ்மொழி போல் இனிதாவது எங்கும் காணோம்,
         
     | 
| 
       6 
     | 
    
         
            -
            பாமரராய் விலங்குகளாய், உலகனைத்தும் இகழ்ச்சிசொலப் பான்மை கெட்டு,
         
     | 
| 
       7 
     | 
    
         
            -
            நாமமது தமிழரெனக் கொண்டு இங்கு வாழ்ந்திடுதல் நன்றோ? சொல்லீர்!
         
     | 
| 
       8 
     | 
    
         
            -
            தேமதுரத் தமிழோசை உலகமெலாம் பரவும்வகை செய்தல் வேண்டும்.  
         
     | 
| 
       9 
     | 
    
         
            -
              integer: 1
         
     | 
| 
       10 
     | 
    
         
            -
              float: 3.3333
         
     | 
| 
       11 
     | 
    
         
            -
              decimal: 9.99
         
     | 
| 
       12 
     | 
    
         
            -
              datetime: 1902-07-21 17:01:31
         
     | 
| 
       13 
     | 
    
         
            -
              timestamp: 1900-07-21 17:01:31
         
     | 
| 
       14 
     | 
    
         
            -
              time: 1903-07-21 17:01:31
         
     | 
| 
       15 
     | 
    
         
            -
              date: 1904-07-21
         
     | 
| 
       16 
     | 
    
         
            -
              binary: 
         
     | 
| 
       17 
     | 
    
         
            -
              boolean: false
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            pushkin:
         
     | 
| 
       20 
     | 
    
         
            -
              string: Pushkin's Bronze Horseman 
         
     | 
| 
       21 
     | 
    
         
            -
              text: На берегу пустынных волн
         
     | 
| 
       22 
     | 
    
         
            -
            Стоял он, дум великих полн,
         
     | 
| 
       23 
     | 
    
         
            -
            И вдаль глядел. Пред ним широко
         
     | 
| 
       24 
     | 
    
         
            -
            Река неслася; бедный чёлн
         
     | 
| 
       25 
     | 
    
         
            -
            По ней стремился одиноко.
         
     | 
| 
       26 
     | 
    
         
            -
            По мшистым, топким берегам
         
     | 
| 
       27 
     | 
    
         
            -
            Чернели избы здесь и там,
         
     | 
| 
       28 
     | 
    
         
            -
            Приют убогого чухонца;
         
     | 
| 
       29 
     | 
    
         
            -
            И лес, неведомый лучам
         
     | 
| 
       30 
     | 
    
         
            -
            В тумане спрятанного солнца,
         
     | 
| 
       31 
     | 
    
         
            -
            Кругом шумел. 
         
     | 
| 
       32 
     | 
    
         
            -
              integer: 1
         
     | 
| 
       33 
     | 
    
         
            -
              float: 1.5
         
     | 
| 
       34 
     | 
    
         
            -
              decimal: 9.99
         
     | 
| 
       35 
     | 
    
         
            -
              datetime: 2012-07-21 17:01:31
         
     | 
| 
       36 
     | 
    
         
            -
              timestamp: 2012-07-21 17:01:31
         
     | 
| 
       37 
     | 
    
         
            -
              time: 2012-07-21 17:01:31
         
     | 
| 
       38 
     | 
    
         
            -
              date: 2012-07-21
         
     | 
| 
       39 
     | 
    
         
            -
              binary: 
         
     | 
| 
       40 
     | 
    
         
            -
              boolean: false
         
     | 
| 
       41 
     | 
    
         
            -
            poem:
         
     | 
| 
       42 
     | 
    
         
            -
              string: Anglo-Saxon Rune Poem 
         
     | 
| 
       43 
     | 
    
         
            -
              text: ᚠᛇᚻ᛫ᛒᛦᚦ᛫ᚠᚱᚩᚠᚢᚱ᛫ᚠᛁᚱᚪ᛫ᚷᛖᚻᚹᛦᛚᚳᚢᛗ
         
     | 
| 
       44 
     | 
    
         
            -
            ᛋᚳᛖᚪᛚ᛫ᚦᛖᚪᚻ᛫ᛗᚪᚾᚾᚪ᛫ᚷᛖᚻᚹᛦᛚᚳ᛫ᛗᛁᚳᛚᚢᚾ᛫ᚻᛦᛏ᛫ᛞᚫᛚᚪᚾ
         
     | 
| 
       45 
     | 
    
         
            -
            ᚷᛁᚠ᛫ᚻᛖ᛫ᚹᛁᛚᛖ᛫ᚠᚩᚱ᛫ᛞᚱᛁᚻᛏᚾᛖ᛫ᛞᚩᛗᛖᛋ᛫ᚻᛚᛇᛏᚪᚾ 
         
     | 
| 
       46 
     | 
    
         
            -
              integer: 1
         
     | 
| 
       47 
     | 
    
         
            -
              float: 1.9
         
     | 
| 
       48 
     | 
    
         
            -
              decimal: 4.55
         
     | 
| 
       49 
     | 
    
         
            -
              datetime: 2012-07-21 17:01:31
         
     | 
| 
       50 
     | 
    
         
            -
              timestamp: 2012-07-21 17:01:31
         
     | 
| 
       51 
     | 
    
         
            -
              time: 2012-07-21 17:01:31
         
     | 
| 
       52 
     | 
    
         
            -
              date: 2012-07-21
         
     | 
| 
       53 
     | 
    
         
            -
              binary: 
         
     | 
| 
       54 
     | 
    
         
            -
              boolean: false
         
     | 
    
        data/test/models/sample.rb
    DELETED
    
    
    
        data/test/seed_dump_test.rb
    DELETED
    
    | 
         @@ -1,77 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'test_helper'
         
     | 
| 
       2 
     | 
    
         
            -
            require "seed_dump/perform"
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            class SeedDumpTest < ActiveSupport::TestCase
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
              setup do
         
     | 
| 
       7 
     | 
    
         
            -
                @sd = SeedDump::Perform.new
         
     | 
| 
       8 
     | 
    
         
            -
                # universial options for every test
         
     | 
| 
       9 
     | 
    
         
            -
                @env = {
         
     | 
| 
       10 
     | 
    
         
            -
                 "MODEL_DIR" => 'test/models/**.rb',
         
     | 
| 
       11 
     | 
    
         
            -
                 "FILE" => Dir.pwd + '/test/db/seeds.rb',
         
     | 
| 
       12 
     | 
    
         
            -
                 "VERBOSE" => false,
         
     | 
| 
       13 
     | 
    
         
            -
                 "DEBUG" => false,
         
     | 
| 
       14 
     | 
    
         
            -
                 "RAILS4" => ENV['RAILS4']
         
     | 
| 
       15 
     | 
    
         
            -
                }
         
     | 
| 
       16 
     | 
    
         
            -
              end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              test "load sample model" do
         
     | 
| 
       19 
     | 
    
         
            -
                @env['MODEL_DIR'] = 'test/models/*.rb'
         
     | 
| 
       20 
     | 
    
         
            -
                @sd.setup @env
         
     | 
| 
       21 
     | 
    
         
            -
                @sd.load_models
         
     | 
| 
       22 
     | 
    
         
            -
                assert_equal ["AbstractSample", "ChildSample", "Sample"], @sd.models
         
     | 
| 
       23 
     | 
    
         
            -
              end
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
              test "support nested models" do
         
     | 
| 
       26 
     | 
    
         
            -
                @env['MODEL_DIR'] = 'test/models/**/*.rb'
         
     | 
| 
       27 
     | 
    
         
            -
                @sd.setup @env
         
     | 
| 
       28 
     | 
    
         
            -
                @sd.load_models
         
     | 
| 
       29 
     | 
    
         
            -
                assert_equal ["AbstractSample", "ChildSample", "Nested::Sample", "Sample"], @sd.models
         
     | 
| 
       30 
     | 
    
         
            -
              end
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
              test "without timestamps" do
         
     | 
| 
       33 
     | 
    
         
            -
                @env['MODEL_DIR'] = 'test/models/*.rb'
         
     | 
| 
       34 
     | 
    
         
            -
                @env['TIMESTAMPS'] = false
         
     | 
| 
       35 
     | 
    
         
            -
                @sd.setup @env
         
     | 
| 
       36 
     | 
    
         
            -
                @sd.load_models
         
     | 
| 
       37 
     | 
    
         
            -
                @sd.dump_models
         
     | 
| 
       38 
     | 
    
         
            -
                assert !@sd.last_record.include?("created_at"), "Should not include created_at if timestamps are off"
         
     | 
| 
       39 
     | 
    
         
            -
              end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
              test "with timestamps" do
         
     | 
| 
       42 
     | 
    
         
            -
                @env['MODEL_DIR'] = 'test/models/*.rb'
         
     | 
| 
       43 
     | 
    
         
            -
                @env['TIMESTAMPS'] = true
         
     | 
| 
       44 
     | 
    
         
            -
                @sd.setup @env
         
     | 
| 
       45 
     | 
    
         
            -
                @sd.load_models
         
     | 
| 
       46 
     | 
    
         
            -
                @sd.dump_models
         
     | 
| 
       47 
     | 
    
         
            -
                assert @sd.last_record.include?("created_at"), "Must include created_at if timestamps are desired"
         
     | 
| 
       48 
     | 
    
         
            -
              end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
              test "with id" do
         
     | 
| 
       51 
     | 
    
         
            -
                @env['MODEL_DIR'] = 'test/models/*.rb'
         
     | 
| 
       52 
     | 
    
         
            -
                @env['WITH_ID'] = true
         
     | 
| 
       53 
     | 
    
         
            -
                @sd.setup @env
         
     | 
| 
       54 
     | 
    
         
            -
                @sd.load_models
         
     | 
| 
       55 
     | 
    
         
            -
                @sd.dump_models
         
     | 
| 
       56 
     | 
    
         
            -
                assert @sd.last_record.include?("id"), "WITH_ID must include id"
         
     | 
| 
       57 
     | 
    
         
            -
              end
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
              test "skip abstract model" do
         
     | 
| 
       60 
     | 
    
         
            -
                @env['MODELS'] = "AbstractSample"
         
     | 
| 
       61 
     | 
    
         
            -
                @env['MODEL_DIR'] = 'test/models/*.rb'
         
     | 
| 
       62 
     | 
    
         
            -
                @env['TIMESTAMPS'] = false
         
     | 
| 
       63 
     | 
    
         
            -
                @sd.setup @env
         
     | 
| 
       64 
     | 
    
         
            -
                @sd.load_models
         
     | 
| 
       65 
     | 
    
         
            -
                @sd.dump_models
         
     | 
| 
       66 
     | 
    
         
            -
                assert_equal [], @sd.last_record
         
     | 
| 
       67 
     | 
    
         
            -
              end
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
              test "create method" do
         
     | 
| 
       70 
     | 
    
         
            -
                @env['MODEL_DIR'] = 'test/models/*.rb'
         
     | 
| 
       71 
     | 
    
         
            -
                @env['CREATE_METHOD'] = 'create!'
         
     | 
| 
       72 
     | 
    
         
            -
                @sd.setup @env
         
     | 
| 
       73 
     | 
    
         
            -
                @sd.load_models
         
     | 
| 
       74 
     | 
    
         
            -
                @sd.dump_models
         
     | 
| 
       75 
     | 
    
         
            -
                assert @sd.instance_variable_get(:@seed_rb) =~ /create!/, 'CREATE_METHOD must specify the creation method'
         
     | 
| 
       76 
     | 
    
         
            -
              end
         
     | 
| 
       77 
     | 
    
         
            -
            end
         
     | 
    
        data/test/test_helper.rb
    DELETED
    
    | 
         @@ -1,36 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
         
     | 
| 
       2 
     | 
    
         
            -
            require 'rubygems'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'test/unit'
         
     | 
| 
       4 
     | 
    
         
            -
            require 'active_support'
         
     | 
| 
       5 
     | 
    
         
            -
            require 'active_record'
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            #require 'your_thing'
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            ActiveRecord::Schema.define(:version => 1) do
         
     | 
| 
       12 
     | 
    
         
            -
              create_table "child_samples", :force => true do |t|
         
     | 
| 
       13 
     | 
    
         
            -
                t.string   "name"
         
     | 
| 
       14 
     | 
    
         
            -
                t.datetime "created_at", :null => false
         
     | 
| 
       15 
     | 
    
         
            -
                t.datetime "updated_at", :null => false
         
     | 
| 
       16 
     | 
    
         
            -
              end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              create_table "samples", :force => true do |t|
         
     | 
| 
       19 
     | 
    
         
            -
                t.string   "string"
         
     | 
| 
       20 
     | 
    
         
            -
                t.text     "text"
         
     | 
| 
       21 
     | 
    
         
            -
                t.integer  "integer"
         
     | 
| 
       22 
     | 
    
         
            -
                t.float    "float"
         
     | 
| 
       23 
     | 
    
         
            -
                t.decimal  "decimal"
         
     | 
| 
       24 
     | 
    
         
            -
                t.datetime "datetime"
         
     | 
| 
       25 
     | 
    
         
            -
                t.datetime "timestamp"
         
     | 
| 
       26 
     | 
    
         
            -
                t.time     "time"
         
     | 
| 
       27 
     | 
    
         
            -
                t.date     "date"
         
     | 
| 
       28 
     | 
    
         
            -
                t.binary   "binary"
         
     | 
| 
       29 
     | 
    
         
            -
                t.boolean  "boolean"
         
     | 
| 
       30 
     | 
    
         
            -
                t.datetime "created_at", :null => false
         
     | 
| 
       31 
     | 
    
         
            -
                t.datetime "updated_at", :null => false
         
     | 
| 
       32 
     | 
    
         
            -
              end
         
     | 
| 
       33 
     | 
    
         
            -
            end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
            #class Sample < ActiveRecord::Base
         
     | 
| 
       36 
     | 
    
         
            -
            #end
         
     |