seedbed 0.4.0 → 1.0.0

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