seedbed 0.4.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 1.0.0
@@ -0,0 +1,10 @@
1
+ require 'seedbed'
2
+ require 'rails'
3
+
4
+ class SeedBed
5
+ class Railtie < Rails::Railtie
6
+ rake_tasks do
7
+ load "tasks/tasks.rake"
8
+ end
9
+ end
10
+ end
data/lib/seedbed.rb CHANGED
@@ -1,5 +1,5 @@
1
+ require 'rails'
1
2
  class SeedBed
2
-
3
3
  @@debug = true
4
4
  attr_accessor :path
5
5
 
@@ -28,6 +28,55 @@ class SeedBed
28
28
  @@debug
29
29
  end
30
30
 
31
+ def self.available_seeds
32
+ @path = "db/seeds"
33
+ basedir = File.join( File.expand_path(@path), "**" , "*.rb")
34
+ files = Dir.glob( basedir ).collect{|d| d.split( File.expand_path(@path) ).last.split('/')[1..-1].collect{|s| s.split('.rb').first.to_sym} }
35
+ namespaces = Hash.new{ |h,k| h[k] = Hash.new &h.default_proc }
36
+ files.each do |path|
37
+ sub = namespaces
38
+ path.each{ |dir| sub[dir]; sub = sub[dir] }
39
+ end
40
+ namespaces
41
+ end
42
+
43
+ def self.tasks
44
+ build_tree( SeedBed.available_seeds )
45
+ end
46
+
47
+ private
48
+
49
+ def self.build_tree(b)
50
+ fil = ""
51
+ b.keys.each do |t|
52
+ fil << "desc \"plants seeds for #{t}\" \n"
53
+ if b[t].empty?
54
+ fil << "task :#{t} do |tsk| \n"
55
+ fil << "puts tsk.scope[2..-1].join('/') \n"
56
+ fil << "SeedBed.plant( tsk.scope[2..-1].join('/') + '/' + '#{t}' )\n"
57
+ fil << "end \n"
58
+ else
59
+ fil << "namespace :#{t} do \n"
60
+ fil << build_tree( b[t] )
61
+ fil << "\n"
62
+ fil << "end \n"
63
+ end
64
+ end
65
+ fil
66
+ # branch.keys.reject{|k| branch[k].empty? }.each do |ns|
67
+ # namespace ns do
68
+ # branch[ns].keys.each do |t|
69
+ # desc "Runs seed for #{t}"
70
+ # task t do
71
+ # puts "task #{t}"
72
+ # end
73
+ # end
74
+ # end
75
+ # end
76
+ end
77
+
78
+
31
79
  end
32
80
 
33
- require 'seedbed/system'
81
+ require 'seedbed/system'
82
+ require 'seedbed/railtie' if defined?(Rails)
@@ -0,0 +1,5 @@
1
+ namespace :db do
2
+ namespace :seed do
3
+ eval SeedBed.tasks
4
+ end
5
+ end
data/seedbed.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{seedbed}
8
- s.version = "0.4.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 = ["Spencer Markowski", "The Able Few"]
12
- s.date = %q{2011-01-01}
12
+ s.date = %q{2011-01-18}
13
13
  s.description = %q{Manage seeds in individual files in db/seeds/}
14
14
  s.email = %q{spencer.markowski@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -25,7 +25,9 @@ Gem::Specification.new do |s|
25
25
  "Rakefile",
26
26
  "VERSION",
27
27
  "lib/seedbed.rb",
28
+ "lib/seedbed/railtie.rb",
28
29
  "lib/seedbed/system.rb",
30
+ "lib/tasks/tasks.rake",
29
31
  "seedbed.gemspec",
30
32
  "test/helper.rb",
31
33
  "test/test_seeds-ext.rb"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seedbed
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 4
9
9
  - 0
10
- version: 0.4.0
10
+ version: 1.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Spencer Markowski
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-01-01 00:00:00 -05:00
19
+ date: 2011-01-18 00:00:00 -06:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -97,7 +97,9 @@ files:
97
97
  - Rakefile
98
98
  - VERSION
99
99
  - lib/seedbed.rb
100
+ - lib/seedbed/railtie.rb
100
101
  - lib/seedbed/system.rb
102
+ - lib/tasks/tasks.rake
101
103
  - seedbed.gemspec
102
104
  - test/helper.rb
103
105
  - test/test_seeds-ext.rb