seedbank 0.0.9 → 0.1.1

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.
Files changed (41) hide show
  1. data/.gitignore +26 -0
  2. data/.travis.yml +9 -0
  3. data/Gemfile +16 -0
  4. data/README.md +49 -1
  5. data/Rakefile +6 -7
  6. data/lib/seedbank.rb +8 -6
  7. data/lib/seedbank/dsl.rb +3 -1
  8. data/lib/seedbank/railtie.rb +1 -0
  9. data/lib/seedbank/runner.rb +31 -0
  10. data/lib/seedbank/version.rb +1 -1
  11. data/lib/tasks/seed.rake +5 -3
  12. data/seedbank.gemspec +6 -3
  13. data/test/dummy/Rakefile +7 -0
  14. data/test/dummy/app/controllers/application_controller.rb +3 -0
  15. data/test/dummy/app/models/fake_model.rb +7 -0
  16. data/test/dummy/config.ru +4 -0
  17. data/test/dummy/config/application.rb +29 -0
  18. data/test/dummy/config/boot.rb +10 -0
  19. data/test/dummy/config/database.yml +6 -0
  20. data/test/dummy/config/environment.rb +5 -0
  21. data/test/dummy/config/environments/development.rb +34 -0
  22. data/test/dummy/config/environments/test.rb +32 -0
  23. data/test/dummy/config/initializers/secret_token.rb +7 -0
  24. data/test/dummy/config/initializers/session_store.rb +8 -0
  25. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  26. data/test/dummy/config/locales/en.yml +5 -0
  27. data/test/dummy/config/routes.rb +2 -0
  28. data/test/dummy/db/seeds.rb +0 -0
  29. data/test/dummy/db/seeds/circular1.seeds.rb +3 -0
  30. data/test/dummy/db/seeds/circular2.seeds.rb +3 -0
  31. data/test/dummy/db/seeds/dependency.seeds.rb +1 -0
  32. data/test/dummy/db/seeds/dependency2.seeds.rb +1 -0
  33. data/test/dummy/db/seeds/dependent.seeds.rb +3 -0
  34. data/test/dummy/db/seeds/dependent_on_nested.seeds.rb +3 -0
  35. data/test/dummy/db/seeds/dependent_on_several.seeds.rb +3 -0
  36. data/test/dummy/db/seeds/no_block.seeds.rb +1 -0
  37. data/test/dummy/script/rails +6 -0
  38. data/test/seedbank/runner_test.rb +59 -0
  39. data/test/test_helper.rb +26 -2
  40. metadata +118 -60
  41. data/test/seedbank_test.rb +0 -8
data/.gitignore ADDED
@@ -0,0 +1,26 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+
21
+ ## PROJECT::SPECIFIC
22
+ *.gem
23
+ test/dummy/tmp
24
+ test/dummy/log
25
+ .rvmrc
26
+ Gemfile.lock
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - ree
4
+ - 1.8.7
5
+ - 1.9.3
6
+ - jruby-18mode # JRuby in 1.8 mode
7
+ - jruby-19mode # JRuby in 1.9 mode
8
+ - rbx-18mode
9
+ - rbx-19mode
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in seedbank.gemspec
4
+ gemspec
5
+
6
+ group :test do
7
+ gem 'rake'
8
+ end
9
+
10
+ # for CRuby, Rubinius, including Windows and RubyInstaller
11
+ gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
12
+
13
+ # for JRuby
14
+ platform :jruby do
15
+ gem 'activerecord-jdbcsqlite3-adapter'
16
+ end
data/README.md CHANGED
@@ -76,12 +76,60 @@ Seedbank.load_tasks if defined?(Seedbank)
76
76
 
77
77
  If you vendor the gem you'll need to change the require to the specific path.
78
78
 
79
+ Usage
80
+ =====
81
+
82
+ Seeds files are just plain old Ruby executed in your rails application environment so anything you could type into the rails console will work in your seeds.
83
+
84
+ The seed files under db/seeds are run first in alphanumeric order followed by the ones in the db/seeds/RAILS_ENV. You can add dependencies to your seed files
85
+ to enforce the run order. for example;
86
+
87
+ db/seeds/companies.seeds.rb
88
+ ```ruby
89
+ Company.find_or_create_by_name('Hatch', :url => 'http://thisishatch.co.uk' )
90
+ ```
91
+
92
+ db/seeds/users.seeds.rb
93
+ ```ruby
94
+ after :companies do
95
+ company = Company.find_by_name('Hatch')
96
+ company.users.create(:first_name => 'James', :last_name => 'McCarthy')
97
+ end
98
+ ```
99
+
100
+ db/seeds/projects.seeds.rb
101
+ ```ruby
102
+ after :companies do
103
+ company = Company.find_by_name('Hatch')
104
+ company.projects.create(:title => 'Seedbank')
105
+ end
106
+ ```
107
+
108
+ db/seeds/tasks.seeds.rb
109
+ ```ruby
110
+ after :projects, :users do
111
+ project = Project.find_by_name('Seedbank')
112
+ user = User.find_by_first_name_and_last_name('James', 'McCarthy')
113
+ project.tasks.create(:owner => user, :title => 'Document seed dependencies in the README.md')
114
+ end
115
+ ```
116
+
117
+ Contributors
118
+ ============
119
+ ```shell
120
+ git log | grep Author | sort | uniq
121
+ ```
122
+
123
+ * James McCarthy
124
+ * Andy Triggs
125
+ * Philip Arndt
126
+
79
127
  Note on Patches/Pull Request
80
128
  ============================
81
129
 
82
130
  * Fork the project.
83
131
  * Make your feature addition or bug fix.
84
- * Add tests for it (when I have some). This is important so I don't break it in a future version unintentionally.
132
+ * Add tests for it. This is important so I don't break it in a future version unintentionally.
85
133
  * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but
86
134
  bump version in a commit by itself I can ignore it when I pull)
87
135
  * Send me a pull request. Bonus points for topic branches.
data/Rakefile CHANGED
@@ -1,15 +1,13 @@
1
+ require 'bundler/gem_tasks'
1
2
  require 'rake'
2
3
  require 'rake/testtask'
3
- require 'rake/rdoctask'
4
-
5
- desc 'Default: run unit tests.'
6
- task :default => :test
4
+ require 'rdoc/task'
7
5
 
8
6
  desc 'Test the seedbank gem.'
9
7
  Rake::TestTask.new(:test) do |t|
10
8
  t.libs << 'lib'
11
9
  t.libs << 'test'
12
- t.pattern = 'test/**/*_test.rb'
10
+ t.pattern = 'test/seedbank/**/*_test.rb'
13
11
  t.verbose = true
14
12
  end
15
13
 
@@ -18,6 +16,7 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
18
16
  rdoc.rdoc_dir = 'rdoc'
19
17
  rdoc.title = 'Seedbank'
20
18
  rdoc.options << '--line-numbers' << '--inline-source'
21
- rdoc.rdoc_files.include('README')
22
19
  rdoc.rdoc_files.include('lib/**/*.rb')
23
- end
20
+ end
21
+
22
+ task :default => ["test"]
data/lib/seedbank.rb CHANGED
@@ -1,18 +1,20 @@
1
1
  require 'seedbank/dsl'
2
2
  require 'seedbank/task'
3
3
  require 'seedbank/task_manager'
4
+ require 'seedbank/runner'
4
5
 
5
6
  require 'rake' unless defined?(Rake)
6
7
 
7
- Rake::Task.extend(Seedbank::Task)
8
- Rake::Application.send(:include, Seedbank::TaskManager)
9
-
10
8
  module Seedbank
11
9
 
12
- @@seeds_root = 'db/seeds'
10
+ class << self
11
+
12
+ attr_writer :seeds_root
13
+
14
+ def seeds_root
15
+ @seeds_root ||= 'db/seeds'
16
+ end
13
17
 
14
- def self.seeds_root
15
- @@seeds_root
16
18
  end
17
19
 
18
20
  def self.load_tasks
data/lib/seedbank/dsl.rb CHANGED
@@ -16,7 +16,9 @@ module Seedbank
16
16
  fq_name = scopes.push(File.basename(seed_file, '.seeds.rb')).join(':')
17
17
 
18
18
  args = Rake::Task.task_defined?('db:abort_if_pending_migrations') ? { fq_name => 'db:abort_if_pending_migrations' } : fq_name
19
- task = Rake::Task.define_task(args) { load(seed_file) if File.exist?(seed_file) }
19
+ task = Rake::Task.define_task(args) do |seed_task|
20
+ Seedbank::Runner.new(seed_task).module_eval(File.read(seed_file)) if File.exist?(seed_file)
21
+ end
20
22
  task.add_description "Load the seed data from #{seed_file}"
21
23
  fq_name
22
24
  end
@@ -5,6 +5,7 @@ module Seedbank
5
5
  class Railtie < Rails::Railtie
6
6
 
7
7
  rake_tasks do
8
+ Seedbank.seeds_root = File.expand_path('db/seeds', Rails.root)
8
9
  Seedbank.load_tasks
9
10
  end
10
11
 
@@ -0,0 +1,31 @@
1
+ module Seedbank
2
+ class Runner < Module
3
+
4
+ def initialize(task)
5
+ @task = task
6
+ super()
7
+ end
8
+
9
+ # Run this seed after the specified dependencies have run
10
+ # @param dependencies [Array] seeds to run before the block is executed
11
+ #
12
+ # If a block is specified the contents of the block are executed after all the
13
+ # dependencies have been executed.
14
+ #
15
+ # If no block is specified just the dependencies are run. This makes it possible
16
+ # to create shared dependencies. For example
17
+ #
18
+ # @example db/seeds/production/users.seeds.rb
19
+ # after 'shared:users'
20
+ #
21
+ # Would look for a db/seeds/shared/users.seeds.rb seed and execute it.
22
+ def after(*dependencies, &block)
23
+ dependencies.flatten!
24
+ dependencies.map! { |dep| "db:seed:#{dep}"}
25
+ dependent_task_name = @task.name + ':body'
26
+ dependent_task = Rake::Task.define_task(dependent_task_name => dependencies, &block)
27
+ dependent_task.invoke
28
+ end
29
+
30
+ end
31
+ end
@@ -1,3 +1,3 @@
1
1
  module Seedbank
2
- VERSION = "0.0.9"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/tasks/seed.rake CHANGED
@@ -1,11 +1,13 @@
1
1
  namespace :db do
2
2
 
3
+ Rake::Task.extend(Seedbank::Task)
4
+ Rake::Application.send(:include, Seedbank::TaskManager)
3
5
  include Seedbank::DSL
4
6
 
5
- base_dependencies = ['db:seed:original']
7
+ base_dependencies = ['db:seed:original']
6
8
  override_dependency = []
7
-
8
9
  common_dependencies = []
10
+
9
11
  # Create seed tasks for all the seeds in seeds_path and add them to the dependency
10
12
  # list along with the original db/seeds.rb.
11
13
  Dir.glob(File.join(seeds_root, '*.seeds.rb')).each do |seed_file|
@@ -22,7 +24,7 @@ namespace :db do
22
24
  environment = File.basename(e)
23
25
 
24
26
  environment_dependencies = []
25
- Dir.glob(File.join(seeds_root, environment, '*.seeds.rb')).each do |seed_file|
27
+ Dir.glob(File.join(seeds_root, environment, '*.seeds.rb')).sort.each do |seed_file|
26
28
  environment_dependencies << define_seed_task(seed_file)
27
29
  end
28
30
 
data/seedbank.gemspec CHANGED
@@ -22,7 +22,9 @@ Gem::Specification.new do |s|
22
22
  files and lets each environment have it's own seeds.
23
23
  }
24
24
 
25
- s.files = Dir.glob('**/*') - Dir.glob('seedbank*.gem')
25
+ s.files = `git ls-files`.split("\n")
26
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
27
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
28
  s.require_paths = ["lib"]
27
29
 
28
30
  s.rdoc_options = ["--charset=UTF-8"]
@@ -31,8 +33,9 @@ Gem::Specification.new do |s|
31
33
  "README.md"
32
34
  ]
33
35
 
34
- s.test_files = Dir.glob('test/**/*')
35
- s.add_development_dependency('test-unit')
36
+ s.add_development_dependency "minitest", "~> 3.2"
37
+ s.add_development_dependency "flexmock"
38
+ s.add_development_dependency "rails", "~> 3.2.6"
36
39
 
37
40
  s.post_install_message = %q{
38
41
  ================================================================================
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env rake
2
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
3
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4
+
5
+ require File.expand_path('../config/application', __FILE__)
6
+
7
+ Dummy::Application.load_tasks
@@ -0,0 +1,3 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+ end
@@ -0,0 +1,7 @@
1
+ class FakeModel
2
+
3
+ def self.seed(seed)
4
+ puts "Running seed: #{seed}"
5
+ end
6
+
7
+ end
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Dummy::Application
@@ -0,0 +1,29 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ # Pick the frameworks you want:
4
+ require "active_record/railtie"
5
+
6
+ Bundler.require if defined?(Bundler)
7
+ require 'seedbank'
8
+
9
+ module Dummy
10
+ class Application < Rails::Application
11
+ # Configure the default encoding used in templates for Ruby 1.9.
12
+ config.encoding = "utf-8"
13
+
14
+ # Configure sensitive parameters which will be filtered from the log file.
15
+ config.filter_parameters += [:password]
16
+
17
+ # Use SQL instead of Active Record's schema dumper when creating the database.
18
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
19
+ # like if you have constraints or database-specific column types
20
+ # config.active_record.schema_format = :sql
21
+
22
+ # Enforce whitelist mode for mass assignment.
23
+ # This will create an empty whitelist of attributes available for mass-assignment for all models
24
+ # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
25
+ # parameters by using an attr_accessible or attr_protected declaration.
26
+ config.active_record.whitelist_attributes = true
27
+ end
28
+ end
29
+
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ gemfile = File.expand_path('../../../../Gemfile', __FILE__)
3
+
4
+ if File.exist?(gemfile)
5
+ ENV['BUNDLE_GEMFILE'] = gemfile
6
+ require 'bundler'
7
+ Bundler.setup
8
+ end
9
+
10
+ $:.unshift File.expand_path('../../../../lib', __FILE__)
@@ -0,0 +1,6 @@
1
+ development:
2
+ adapter: sqlite3
3
+ database: ":memory:"
4
+ test:
5
+ adapter: sqlite3
6
+ database: ":memory:"
@@ -0,0 +1,5 @@
1
+ # Load the rails application
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the rails application
5
+ Dummy::Application.initialize!
@@ -0,0 +1,34 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb
3
+
4
+ # In the development environment your application's code is reloaded on
5
+ # every request. This slows down response time but is perfect for development
6
+ # since you don't have to restart the web server when you make code changes.
7
+ config.cache_classes = false
8
+
9
+ # Log error messages when you accidentally call methods on nil.
10
+ config.whiny_nils = true
11
+
12
+ # Show full error reports and disable caching
13
+ config.consider_all_requests_local = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # Print deprecation notices to the Rails logger
17
+ config.active_support.deprecation = :log
18
+
19
+ # Only use best-standards-support built into browsers
20
+ config.action_dispatch.best_standards_support = :builtin
21
+
22
+ # Raise exception on mass assignment protection for Active Record models
23
+ config.active_record.mass_assignment_sanitizer = :strict
24
+
25
+ # Log the query plan for queries taking more than this (works
26
+ # with SQLite, MySQL, and PostgreSQL)
27
+ config.active_record.auto_explain_threshold_in_seconds = 0.5
28
+
29
+ # Do not compress assets
30
+ config.assets.compress = false
31
+
32
+ # Expands the lines which load the assets
33
+ config.assets.debug = true
34
+ end
@@ -0,0 +1,32 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb
3
+
4
+ # The test environment is used exclusively to run your application's
5
+ # test suite. You never need to work with it otherwise. Remember that
6
+ # your test database is "scratch space" for the test suite and is wiped
7
+ # and recreated between test runs. Don't rely on the data there!
8
+ config.cache_classes = true
9
+
10
+ # Configure static asset server for tests with Cache-Control for performance
11
+ config.serve_static_assets = true
12
+ config.static_cache_control = "public, max-age=3600"
13
+
14
+ # Log error messages when you accidentally call methods on nil
15
+ config.whiny_nils = true
16
+
17
+ # Show full error reports and disable caching
18
+ config.consider_all_requests_local = true
19
+ config.action_controller.perform_caching = false
20
+
21
+ # Raise exceptions instead of rendering exception templates
22
+ config.action_dispatch.show_exceptions = false
23
+
24
+ # Disable request forgery protection in test environment
25
+ config.action_controller.allow_forgery_protection = false
26
+
27
+ # Raise exception on mass assignment protection for Active Record models
28
+ config.active_record.mass_assignment_sanitizer = :strict
29
+
30
+ # Print deprecation notices to the stderr
31
+ config.active_support.deprecation = :stderr
32
+ end
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ Dummy::Application.config.secret_token = 'c2af159f67aa6955b415217bf5aa58779dec6fccc201c7bf38f9a8ad25893d88596778df8bb7106153666f41c3161cfb7f89b639a2c15a084abb6c2c57f74c55'
@@ -0,0 +1,8 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Dummy::Application.config.session_store :cookie_store, :key => '_dummy_session'
4
+
5
+ # Use the database for sessions instead of the cookie-based default,
6
+ # which shouldn't be used to store highly confidential information
7
+ # (create the session table with "rails generate session_migration")
8
+ # Dummy::Application.config.session_store :active_record_store
@@ -0,0 +1,14 @@
1
+ # Be sure to restart your server when you modify this file.
2
+ #
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActiveSupport.on_load(:action_controller) do
8
+ wrap_parameters :format => [:json]
9
+ end
10
+
11
+ # Disable root element in JSON by default.
12
+ ActiveSupport.on_load(:active_record) do
13
+ self.include_root_in_json = false
14
+ end
@@ -0,0 +1,5 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: "Hello world"
@@ -0,0 +1,2 @@
1
+ Dummy::Application.routes.draw do
2
+ end
File without changes
@@ -0,0 +1,3 @@
1
+ after :circular2 do
2
+ FakeModel.seed('circular1')
3
+ end
@@ -0,0 +1,3 @@
1
+ after :circular1 do
2
+ FakeModel.seed('circular2')
3
+ end
@@ -0,0 +1 @@
1
+ FakeModel.seed('dependency')
@@ -0,0 +1 @@
1
+ FakeModel.seed('dependency2')
@@ -0,0 +1,3 @@
1
+ after :dependency do
2
+ FakeModel.seed('dependent')
3
+ end
@@ -0,0 +1,3 @@
1
+ after :dependent, :dependency2 do
2
+ FakeModel.seed('dependent on nested')
3
+ end
@@ -0,0 +1,3 @@
1
+ after :dependency, :dependency2 do
2
+ FakeModel.seed('dependent on several')
3
+ end
@@ -0,0 +1 @@
1
+ after :dependency
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,59 @@
1
+ require 'test_helper'
2
+
3
+ describe Seedbank::Runner do
4
+
5
+ before do
6
+ flexmock(FakeModel)
7
+ end
8
+
9
+ describe "seeds with dependency" do
10
+
11
+ subject { Rake::Task['db:seed:dependent'] }
12
+
13
+ it "runs the dependencies in order" do
14
+ FakeModel.should_receive(:seed).with('dependency').once.ordered
15
+ FakeModel.should_receive(:seed).with('dependent').once.ordered
16
+
17
+ subject.invoke
18
+ end
19
+ end
20
+
21
+ describe "seeds with multiple dependencies" do
22
+
23
+ subject { Rake::Task['db:seed:dependent_on_several'] }
24
+
25
+ it "runs the dependencies in order" do
26
+ FakeModel.should_receive(:seed).with('dependency').once.ordered
27
+ FakeModel.should_receive(:seed).with('dependency2').once.ordered
28
+ FakeModel.should_receive(:seed).with('dependent on several').once.ordered
29
+
30
+ subject.invoke
31
+ end
32
+ end
33
+
34
+ describe "seeds with nested dependencies" do
35
+
36
+ subject { Rake::Task['db:seed:dependent_on_nested'] }
37
+
38
+ it "runs all dependencies in order" do
39
+ FakeModel.should_receive(:seed).with('dependency').once.ordered
40
+ FakeModel.should_receive(:seed).with('dependent').once.ordered
41
+ FakeModel.should_receive(:seed).with('dependency2').once.ordered
42
+ FakeModel.should_receive(:seed).with('dependent on nested').once.ordered
43
+
44
+ subject.invoke
45
+ end
46
+
47
+ end
48
+
49
+ describe "after with no block given" do
50
+
51
+ subject { Rake::Task['db:seed:no_block'] }
52
+
53
+ it "runs the dependencies" do
54
+ FakeModel.should_receive(:seed).with('dependency').once.ordered
55
+
56
+ subject.invoke
57
+ end
58
+ end
59
+ end
data/test/test_helper.rb CHANGED
@@ -1,3 +1,27 @@
1
1
  require 'rubygems'
2
- require 'test/unit'
3
- require 'active_support'
2
+ require "flexmock"
3
+ require 'minitest/autorun'
4
+
5
+ # Configure Rails Environment
6
+ environment = ENV["RAILS_ENV"] = 'test'
7
+ rails_root = File.expand_path('../dummy', __FILE__)
8
+
9
+ require File.expand_path('config/environment.rb', rails_root)
10
+
11
+ Rails.backtrace_cleaner.remove_silencers!
12
+
13
+ Seedbank.seeds_root = File.expand_path('dummy/db/seeds', __FILE__)
14
+
15
+ class Seedbank::Spec < MiniTest::Spec
16
+
17
+ include FlexMock::TestCase
18
+
19
+ def setup
20
+ Rake.application = Rake::Application.new
21
+ Dummy::Application.load_tasks
22
+ super
23
+ end
24
+
25
+ end
26
+
27
+ MiniTest::Spec.register_spec_type(/^Seedbank::/, Seedbank::Spec)
metadata CHANGED
@@ -1,37 +1,50 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seedbank
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 9
10
- version: 0.0.9
4
+ prerelease:
5
+ version: 0.1.1
11
6
  platform: ruby
12
7
  authors:
13
- - James McCarthy
8
+ - James McCarthy
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2012-03-13 00:00:00 +00:00
19
- default_executable:
13
+ date: 2012-03-13 00:00:00 Z
20
14
  dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: test-unit
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
33
- type: :development
34
- version_requirements: *id001
15
+ - !ruby/object:Gem::Dependency
16
+ name: minitest
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: "3.2"
24
+ type: :development
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: flexmock
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :development
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: rails
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 3.2.6
46
+ type: :development
47
+ version_requirements: *id003
35
48
  description: "\n Extends Rails seeds to split out complex seeds into multiple\n files and lets each environment have it's own seeds.\n "
36
49
  email: james2mccarthy@gmail.com
37
50
  executables: []
@@ -39,59 +52,104 @@ executables: []
39
52
  extensions: []
40
53
 
41
54
  extra_rdoc_files:
42
- - MIT-LICENSE
43
- - README.md
55
+ - MIT-LICENSE
56
+ - README.md
44
57
  files:
45
- - lib/seedbank/dsl.rb
46
- - lib/seedbank/railtie.rb
47
- - lib/seedbank/task.rb
48
- - lib/seedbank/task_manager.rb
49
- - lib/seedbank/version.rb
50
- - lib/seedbank.rb
51
- - lib/tasks/seed.rake
52
- - MIT-LICENSE
53
- - Rakefile
54
- - README.md
55
- - seedbank.gemspec
56
- - test/seedbank_test.rb
57
- - test/test_helper.rb
58
- - TODO.txt
59
- has_rdoc: true
58
+ - .gitignore
59
+ - .travis.yml
60
+ - Gemfile
61
+ - MIT-LICENSE
62
+ - README.md
63
+ - Rakefile
64
+ - TODO.txt
65
+ - lib/seedbank.rb
66
+ - lib/seedbank/dsl.rb
67
+ - lib/seedbank/railtie.rb
68
+ - lib/seedbank/runner.rb
69
+ - lib/seedbank/task.rb
70
+ - lib/seedbank/task_manager.rb
71
+ - lib/seedbank/version.rb
72
+ - lib/tasks/seed.rake
73
+ - seedbank.gemspec
74
+ - test/dummy/Rakefile
75
+ - test/dummy/app/controllers/application_controller.rb
76
+ - test/dummy/app/models/fake_model.rb
77
+ - test/dummy/config.ru
78
+ - test/dummy/config/application.rb
79
+ - test/dummy/config/boot.rb
80
+ - test/dummy/config/database.yml
81
+ - test/dummy/config/environment.rb
82
+ - test/dummy/config/environments/development.rb
83
+ - test/dummy/config/environments/test.rb
84
+ - test/dummy/config/initializers/secret_token.rb
85
+ - test/dummy/config/initializers/session_store.rb
86
+ - test/dummy/config/initializers/wrap_parameters.rb
87
+ - test/dummy/config/locales/en.yml
88
+ - test/dummy/config/routes.rb
89
+ - test/dummy/db/seeds.rb
90
+ - test/dummy/db/seeds/circular1.seeds.rb
91
+ - test/dummy/db/seeds/circular2.seeds.rb
92
+ - test/dummy/db/seeds/dependency.seeds.rb
93
+ - test/dummy/db/seeds/dependency2.seeds.rb
94
+ - test/dummy/db/seeds/dependent.seeds.rb
95
+ - test/dummy/db/seeds/dependent_on_nested.seeds.rb
96
+ - test/dummy/db/seeds/dependent_on_several.seeds.rb
97
+ - test/dummy/db/seeds/no_block.seeds.rb
98
+ - test/dummy/script/rails
99
+ - test/seedbank/runner_test.rb
100
+ - test/test_helper.rb
60
101
  homepage: http://github.com/james2m/seedbank
61
102
  licenses: []
62
103
 
63
104
  post_install_message: "\n ================================================================================\n\n Rails 2.x\n ---------\n If you are using Seedbank with Rails 2.x you will need to place the following at \n the end of your Rakefile so Rubygems can load the seedbank tasks;\n\n require 'seedbank'\n Seedbank.load_tasks if defined?(Seedbank)\n\n Rails 3.x\n ---------\n Your work here is done!\n\n ================================================================================\n "
64
105
  rdoc_options:
65
- - --charset=UTF-8
106
+ - --charset=UTF-8
66
107
  require_paths:
67
- - lib
108
+ - lib
68
109
  required_ruby_version: !ruby/object:Gem::Requirement
69
110
  none: false
70
111
  requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: "0"
77
115
  required_rubygems_version: !ruby/object:Gem::Requirement
78
116
  none: false
79
117
  requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- hash: 31
83
- segments:
84
- - 1
85
- - 2
86
- - 0
87
- version: 1.2.0
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 1.2.0
88
121
  requirements: []
89
122
 
90
123
  rubyforge_project:
91
- rubygems_version: 1.3.5
124
+ rubygems_version: 1.8.24
92
125
  signing_key:
93
126
  specification_version: 3
94
127
  summary: Extends Rails seeds to split out complex seeds into their own file and have different seeds for each environment.
95
128
  test_files:
96
- - test/seedbank_test.rb
97
- - test/test_helper.rb
129
+ - test/dummy/Rakefile
130
+ - test/dummy/app/controllers/application_controller.rb
131
+ - test/dummy/app/models/fake_model.rb
132
+ - test/dummy/config.ru
133
+ - test/dummy/config/application.rb
134
+ - test/dummy/config/boot.rb
135
+ - test/dummy/config/database.yml
136
+ - test/dummy/config/environment.rb
137
+ - test/dummy/config/environments/development.rb
138
+ - test/dummy/config/environments/test.rb
139
+ - test/dummy/config/initializers/secret_token.rb
140
+ - test/dummy/config/initializers/session_store.rb
141
+ - test/dummy/config/initializers/wrap_parameters.rb
142
+ - test/dummy/config/locales/en.yml
143
+ - test/dummy/config/routes.rb
144
+ - test/dummy/db/seeds.rb
145
+ - test/dummy/db/seeds/circular1.seeds.rb
146
+ - test/dummy/db/seeds/circular2.seeds.rb
147
+ - test/dummy/db/seeds/dependency.seeds.rb
148
+ - test/dummy/db/seeds/dependency2.seeds.rb
149
+ - test/dummy/db/seeds/dependent.seeds.rb
150
+ - test/dummy/db/seeds/dependent_on_nested.seeds.rb
151
+ - test/dummy/db/seeds/dependent_on_several.seeds.rb
152
+ - test/dummy/db/seeds/no_block.seeds.rb
153
+ - test/dummy/script/rails
154
+ - test/seedbank/runner_test.rb
155
+ - test/test_helper.rb
@@ -1,8 +0,0 @@
1
- require 'test_helper'
2
-
3
- class SeedbankTest < ActiveSupport::TestCase
4
- # Replace this with your real tests.
5
- test "the truth" do
6
- assert true
7
- end
8
- end