seedbank 0.0.9 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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