jcnetdev-seed-fu 1.0.3 → 1.0.20080704

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.
@@ -3,19 +3,17 @@ module SeedFu
3
3
  def self.plant(model_class, *constraints, &block)
4
4
  constraints = [:id] if constraints.empty?
5
5
  seed = Seeder.new(model_class)
6
- insert_only = constraints.last.is_a? TrueClass
7
- constraints.delete_at(*constraints.length-1) if (constraints.last.is_a? TrueClass or constraints.last.is_a? FalseClass)
8
6
  seed.set_constraints(*constraints)
9
7
  yield seed
10
- seed.plant!(insert_only)
8
+ seed.plant!
11
9
  end
12
-
10
+
13
11
  def initialize(model_class)
14
12
  @model_class = model_class
15
13
  @constraints = [:id]
16
14
  @data = {}
17
15
  end
18
-
16
+
19
17
  def set_constraints(*constraints)
20
18
  raise "You must set at least one constraint." if constraints.empty?
21
19
  @constraints = []
@@ -24,22 +22,21 @@ module SeedFu
24
22
  @constraints << constraint.to_sym
25
23
  end
26
24
  end
27
-
25
+
28
26
  def set_attribute(name, value)
29
27
  @data[name.to_sym] = value
30
28
  end
31
-
32
- def plant! insert_only=false
29
+
30
+ def plant!
33
31
  record = get
34
- return if !record.new_record? and insert_only
35
32
  @data.each do |k, v|
36
33
  record.send("#{k}=", v)
37
34
  end
38
35
  record.save!
39
- puts " - #{@model_class} #{condition_hash.inspect}"
36
+ puts " - #{@model_class} #{condition_hash.inspect}"
40
37
  record
41
38
  end
42
-
39
+
43
40
  def method_missing(method_name, *args) #:nodoc:
44
41
  if (match = method_name.to_s.match(/(.*)=$/)) && args.size == 1
45
42
  set_attribute(match[1], args.first)
@@ -47,9 +44,9 @@ module SeedFu
47
44
  super
48
45
  end
49
46
  end
50
-
47
+
51
48
  protected
52
-
49
+
53
50
  def get
54
51
  records = @model_class.find(:all, :conditions => condition_hash)
55
52
  raise "Given constraints yielded multiple records." unless records.size < 2
@@ -59,7 +56,7 @@ module SeedFu
59
56
  return @model_class.new
60
57
  end
61
58
  end
62
-
59
+
63
60
  def condition_hash
64
61
  @data.reject{|a,v| !@constraints.include?(a)}
65
62
  end
@@ -76,15 +73,4 @@ class ActiveRecord::Base
76
73
  def self.seed(*constraints, &block)
77
74
  SeedFu::Seeder.plant(self, *constraints, &block)
78
75
  end
79
-
80
- def self.seed_many(*constraints)
81
- seeds = constraints.pop
82
- seeds.each do |seed_data|
83
- seed(*constraints) do |s|
84
- seed_data.each_pair do |k,v|
85
- s.send "#{k}=", v
86
- end
87
- end
88
- end
89
- end
90
76
  end
@@ -1,18 +1,18 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'seed-fu'
3
- s.version = '1.0.3'
4
- s.date = '2008-09-16'
3
+ s.version = '1.0.20080704'
4
+ s.date = '2008-07-04'
5
5
 
6
- s.summary = "Allows easier database seeding of tables."
6
+ s.summary = "Allows easier database seeding of tables"
7
7
  s.description = "Seed Fu is an attempt to once and for all solve the problem of inserting and maintaining seed data in a database. It uses a variety of techniques gathered from various places around the web and combines them to create what is hopefully the most robust seed data system around."
8
8
 
9
9
  s.authors = ["Michael Bleigh"]
10
10
  s.email = "michael@intridea.com"
11
11
  s.homepage = 'http://github.com/mbleigh/seed-fu'
12
12
 
13
- s.has_rdoc = true
14
- s.rdoc_options = ["--main", "README"]
15
- s.extra_rdoc_files = ["README"]
13
+ s.has_rdoc = false
14
+ # s.rdoc_options = ["--main", "README"]
15
+ #s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
16
16
 
17
17
  s.add_dependency 'rails', ['>= 2.1']
18
18
 
@@ -20,7 +20,6 @@ Gem::Specification.new do |s|
20
20
  "Rakefile",
21
21
  "init.rb",
22
22
  "lib/seed-fu.rb",
23
- "lib/autotest/discover.rb",
24
23
  "rails/init.rb",
25
24
  "seed-fu.gemspec",
26
25
  "spec/schema.rb",
@@ -43,18 +43,6 @@ describe SeedFu::Seeder do
43
43
  SeededModel.find_by_login("bob").first_name.should == "Steve"
44
44
  end
45
45
 
46
- it "should be able to create models from an array of seed attributes" do
47
- SeededModel.seed_many(:title, :login, [
48
- {:login => "bob", :title => "Peon", :first_name => "Steve"},
49
- {:login => "frank", :title => "Peasant", :first_name => "Francis"},
50
- {:login => "harry", :title => "Noble", :first_name => "Harry"}
51
- ])
52
-
53
- SeededModel.find_by_login("bob").first_name.should == "Steve"
54
- SeededModel.find_by_login("frank").first_name.should == "Francis"
55
- SeededModel.find_by_login("harry").first_name.should == "Harry"
56
- end
57
-
58
46
  #it "should raise an error if constraints are not unique" do
59
47
  # SeededModel.create(:login => "bob", :first_name => "Bob", :title => "Peon")
60
48
  # SeededModel.create(:login => "bob", :first_name => "Robert", :title => "Manager")
@@ -1,13 +1,12 @@
1
1
  namespace :db do
2
2
  desc "Loads seed data from db/fixtures for the current environment."
3
3
  task :seed => :environment do
4
- fixture_path = ENV["FIXTURE_PATH"] ? ENV["FIXTURE_PATH"] : "db/fixtures"
5
- Dir[File.join(RAILS_ROOT, fixture_path, '*.rb')].sort.each { |fixture|
4
+ Dir[File.join(RAILS_ROOT, 'db', 'fixtures', '*.rb')].sort.each { |fixture|
6
5
  puts "\n== Seeding from #{File.split(fixture).last} " + ("=" * (60 - (17 + File.split(fixture).last.length)))
7
6
  load fixture
8
7
  puts "=" * 60 + "\n"
9
8
  }
10
- Dir[File.join(RAILS_ROOT, fixture_path, RAILS_ENV, '*.rb')].sort.each { |fixture|
9
+ Dir[File.join(RAILS_ROOT, 'db', 'fixtures', RAILS_ENV, '*.rb')].sort.each { |fixture|
11
10
  puts "\n== [#{RAILS_ENV}] Seeding from #{File.split(fixture).last} " + ("=" * (60 - (20 + File.split(fixture).last.length + RAILS_ENV.length)))
12
11
  load fixture
13
12
  puts "=" * 60 + "\n"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jcnetdev-seed-fu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.20080704
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-16 00:00:00 -07:00
12
+ date: 2008-07-04 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -27,26 +27,24 @@ executables: []
27
27
 
28
28
  extensions: []
29
29
 
30
- extra_rdoc_files:
31
- - README
30
+ extra_rdoc_files: []
31
+
32
32
  files:
33
33
  - README
34
34
  - Rakefile
35
35
  - init.rb
36
36
  - lib/seed-fu.rb
37
- - lib/autotest/discover.rb
38
37
  - rails/init.rb
39
38
  - seed-fu.gemspec
40
39
  - spec/schema.rb
41
40
  - spec/seed_fu_spec.rb
42
41
  - spec/spec_helper.rb
43
42
  - tasks/seed_fu_tasks.rake
44
- has_rdoc: true
43
+ has_rdoc: false
45
44
  homepage: http://github.com/mbleigh/seed-fu
46
45
  post_install_message:
47
- rdoc_options:
48
- - --main
49
- - README
46
+ rdoc_options: []
47
+
50
48
  require_paths:
51
49
  - lib
52
50
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -67,6 +65,6 @@ rubyforge_project:
67
65
  rubygems_version: 1.2.0
68
66
  signing_key:
69
67
  specification_version: 2
70
- summary: Allows easier database seeding of tables.
68
+ summary: Allows easier database seeding of tables
71
69
  test_files: []
72
70
 
@@ -1,6 +0,0 @@
1
- # Need this to get picked up by autotest?
2
- $:.push(File.join(File.dirname(__FILE__), %w[.. .. rspec]))
3
-
4
- Autotest.add_discovery do
5
- "rspec"
6
- end