seed-fu-ndo 0.0.2 → 0.0.3

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5c38383e5aff5d95ac0b56d5867a4bf7ee913d0bdb3294d9ba6e0c4745134140
4
+ data.tar.gz: 206efd0befc60f89d6f05ea4fde57ae878d1569408858942b786639d2938f871
5
+ SHA512:
6
+ metadata.gz: 50565451ee67916c6640ebc43d9696e68557da83897241bc004a325005f3c4b8f709cd753abc967025337eca2de60899a5dfba36da142982161fceacd97b42c5
7
+ data.tar.gz: b9cc49c08501a06755eaf7f810cc5f6b306a0c905b6ddaa48931022e50f1f8ace854152dc2d03a6a0aa3a21670459ddb1a249c0dde46dc5664c873cd4ff1ec3e
data/Rakefile CHANGED
@@ -21,7 +21,6 @@ RDoc::Task.new(:rdoc) do |rdoc|
21
21
  rdoc.rdoc_files.include('lib/**/*.rb')
22
22
  end
23
23
 
24
-
25
24
  Bundler::GemHelper.install_tasks
26
25
 
27
26
  require 'rspec/core/rake_task'
@@ -29,5 +28,4 @@ require 'rspec/core/rake_task'
29
28
  RSpec::Core::RakeTask.new do |t|
30
29
  end
31
30
 
32
-
33
- task :default => :spec
31
+ task default: :spec
@@ -1,31 +1,29 @@
1
1
  require 'seed-fu'
2
2
  require 'seed-fu-ndo/seeder'
3
- require 'seed-fu-ndo/railtie' if defined?(Rails) && Rails.version >= "3"
3
+ require 'seed-fu-ndo/railtie' if defined?(Rails) && Rails.version >= '3'
4
4
 
5
5
  module SeedFuNdo
6
6
  autoload :Recorder, 'seed-fu-ndo/recorder'
7
-
7
+
8
8
  mattr_reader :recorder
9
-
9
+
10
10
  # Unload seed data from files. Main entry point for third-party libraries.
11
11
  # [fixture_paths] The paths to look for seed files in.
12
12
  # [filter] A regexp. If given, only filenames matching this expression will be loaded.
13
13
  def self.unseed(fixture_paths = SeedFu.fixture_paths, filter = nil)
14
- capture(fixture_paths, filter).reverse.each do |seeder|
15
- seeder.unseed
16
- end
14
+ capture(fixture_paths, filter).reverse.each(&:unseed)
17
15
  end
18
-
16
+
19
17
  # Returns all seed records from the given fixture_paths that currently
20
18
  # exist in the database. No changes to the database are performed.
21
19
  def self.existing_seeds(fixture_paths = SeedFu.fixture_paths, filter = nil)
22
- existing = Hash.new {|h, k| h[k] = [] }
20
+ existing = Hash.new { |h, k| h[k] = [] }
23
21
  capture(fixture_paths, filter).each do |seeder|
24
22
  existing[seeder.model_class] += seeder.existing_records
25
23
  end
26
24
  existing
27
25
  end
28
-
26
+
29
27
  # Captures the seed fixtures without actually inserting anything.
30
28
  # Returns a list of seeder objects.
31
29
  def self.capture(fixture_paths = SeedFu.fixture_paths, filter = nil)
@@ -35,6 +33,4 @@ module SeedFuNdo
35
33
  ensure
36
34
  @@recorder = nil
37
35
  end
38
-
39
-
40
- end
36
+ end
@@ -2,7 +2,7 @@ module SeedFuNdo
2
2
  # Integrate unseed task into Rails.
3
3
  class Railtie < Rails::Railtie
4
4
  rake_tasks do
5
- load "tasks/seed_fu_ndo.rake"
5
+ load 'tasks/seed_fu_ndo.rake'
6
6
  end
7
7
  end
8
- end
8
+ end
@@ -1,18 +1,15 @@
1
1
  module SeedFuNdo
2
-
3
2
  # Records seeder instances created by Seed Fu.
4
3
  class Recorder
5
4
  attr_reader :seeders
6
-
5
+
7
6
  def initialize
8
7
  @seeders = []
9
8
  end
10
-
9
+
11
10
  # Record a single seeder.
12
11
  def record(seeder)
13
12
  seeders << seeder
14
13
  end
15
-
16
14
  end
17
-
18
15
  end
@@ -1,46 +1,44 @@
1
1
  module SeedFu
2
-
3
2
  # Enhanced class from Seed Fu to allow for recording and destroying seed data.
4
3
  class Seeder
5
-
6
4
  attr_reader :model_class
7
-
8
- # Record instead of inserting the data if in recording mode.
5
+
6
+ # Record instead of inserting the data if in recording mode.
9
7
  def seed_with_undo
10
8
  if r = SeedFuNdo.recorder
11
9
  r.record self
12
-
10
+
13
11
  # return existing records in case they are processed by the caller
14
12
  @data.map { |record_data| find_record(record_data) }
15
13
  else
16
14
  seed_without_undo
17
15
  end
18
16
  end
19
- alias_method_chain :seed, :undo
20
-
17
+ alias seed_without_undo seed
18
+ alias seed seed_with_undo
19
+
21
20
  # Destroy the seed data.
22
21
  def unseed
23
22
  @model_class.transaction do
24
23
  existing_records.reverse.each { |record| unseed_record(record) }
25
24
  end
26
25
  end
27
-
26
+
28
27
  # List of the seeded records that exist in the database.
29
28
  def existing_records
30
29
  @data.map { |record_data| find_record(record_data.symbolize_keys) }.compact
31
30
  end
32
-
31
+
33
32
  private
34
-
33
+
35
34
  def unseed_record(record)
36
- puts " - Remove #{record.inspect}" unless @options[:quiet]
35
+ puts " - Remove #{record.inspect}" unless @options[:quiet]
37
36
 
38
- record.destroy || raise(ActiveRecord::ActiveRecordError, record.errors.full_messages.join(", ").presence)
37
+ record.destroy || raise(ActiveRecord::ActiveRecordError, record.errors.full_messages.join(', ').presence)
39
38
  end
40
-
39
+
41
40
  def find_record(data)
42
41
  @model_class.where(constraint_conditions(data)).first
43
42
  end
44
43
  end
45
-
46
- end
44
+ end
@@ -1,4 +1,4 @@
1
1
  module SeedFuNdo
2
2
  # The current version of Seed Fu-ndo
3
- VERSION = '0.0.2'
3
+ VERSION = '0.0.3'.freeze
4
4
  end
@@ -1,19 +1,17 @@
1
1
  require 'seed-fu-ndo'
2
2
 
3
3
  namespace :db do
4
- desc "Unloads seed data for the current environment."
5
- task :unseed_fu => :environment do
6
- if ENV["FILTER"]
7
- filter = /#{ENV["FILTER"].gsub(/,/, "|")}/
8
- end
4
+ desc 'Unloads seed data for the current environment.'
5
+ task unseed_fu: :environment do
6
+ filter = /#{ENV["FILTER"].tr(',', "|")}/ if ENV['FILTER']
9
7
 
10
- if ENV["FIXTURE_PATH"]
11
- fixture_paths = [ENV["FIXTURE_PATH"], ENV["FIXTURE_PATH"] + '/' + Rails.env]
8
+ if ENV['FIXTURE_PATH']
9
+ fixture_paths = [ENV['FIXTURE_PATH'], ENV['FIXTURE_PATH'] + '/' + Rails.env]
12
10
  end
13
11
 
14
12
  SeedFuNdo.unseed(fixture_paths, filter)
15
13
  end
16
-
14
+
17
15
  # alias
18
- task :unseed => 'db:unseed_fu'
19
- end
16
+ task unseed: 'db:unseed_fu'
17
+ end
@@ -1,36 +1,32 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SeedFu::Seeder do
4
-
5
- context "in regular seed" do
6
- it "should run single seeds" do
4
+ context 'in regular seed' do
5
+ it 'should run single seeds' do
7
6
  SeededModel.seed(:title) do |s|
8
7
  s.title = 'Foo'
9
8
  s.login = 'Foo'
10
9
  s.first_name = 'Bar'
11
10
  end
12
-
13
- SeededModel.count.should == 1
11
+
12
+ expect(SeededModel.count).to eq(1)
14
13
  end
15
-
16
- it "should run multiple seeds" do
17
- SeededModel.seed(:title,
18
- {:title => 'Foo', :login => 'Foo', :first_name => 'Foo'},
19
- {:title => 'Bar', :login => 'Bar', :first_name => 'Bar'}
20
- )
21
-
22
- SeededModel.count.should == 2
14
+
15
+ it 'should run multiple seeds' do
16
+ SeededModel.seed(:title,
17
+ { title: 'Foo', login: 'Foo', first_name: 'Foo' },
18
+ title: 'Bar', login: 'Bar', first_name: 'Bar')
19
+
20
+ expect(SeededModel.count).to eq(2)
23
21
  end
24
22
  end
25
-
26
- context "in unseed" do
27
-
23
+
24
+ context 'in unseed' do
28
25
  before do
29
26
  SeedFuNdo.send(:class_variable_set, :@@recorder, SeedFuNdo::Recorder.new)
30
27
  end
31
-
32
- context "for single seeds" do
33
-
28
+
29
+ context 'for single seeds' do
34
30
  before do
35
31
  SeededModel.seed(:title) do |s|
36
32
  s.title = 'Foo'
@@ -38,52 +34,49 @@ describe SeedFu::Seeder do
38
34
  s.first_name = 'Bar'
39
35
  end
40
36
  end
41
-
42
- it "should only record" do
43
- SeededModel.count.should == 0
37
+
38
+ it 'should only record' do
39
+ expect(SeededModel.count).to eq(0)
44
40
  end
45
-
46
- it "should ignore non-existing records" do
41
+
42
+ it 'should ignore non-existing records' do
47
43
  unseed
48
- SeededModel.count.should == 0
44
+ expect(SeededModel.count).to eq(0)
49
45
  end
50
-
51
- it "should unseed existing records" do
52
- SeededModel.create!(:title => 'Foo')
46
+
47
+ it 'should unseed existing records' do
48
+ SeededModel.create!(title: 'Foo')
53
49
  unseed
54
- SeededModel.count.should == 0
50
+ expect(SeededModel.count).to eq(0)
55
51
  end
56
-
57
- it "should find existing records" do
58
- rec = SeededModel.create!(:title => 'Foo')
59
- SeedFuNdo.recorder.seeders.first.existing_records.should == [rec]
52
+
53
+ it 'should find existing records' do
54
+ rec = SeededModel.create!(title: 'Foo')
55
+ expect(SeedFuNdo.recorder.seeders.first.existing_records).to eq([rec])
60
56
  end
61
57
  end
62
-
63
- context "for multiple seeds" do
64
-
58
+
59
+ context 'for multiple seeds' do
65
60
  before do
66
- SeededModel.seed(:title,
67
- {:title => 'Foo', :login => 'Foo', :first_name => 'Foo'},
68
- {:title => 'Bar', :login => 'Bar', :first_name => 'Bar'}
69
- )
61
+ SeededModel.seed(:title,
62
+ { title: 'Foo', login: 'Foo', first_name: 'Foo' },
63
+ title: 'Bar', login: 'Bar', first_name: 'Bar')
70
64
  end
71
-
72
- it "should only record" do
73
- SeededModel.count.should == 0
65
+
66
+ it 'should only record' do
67
+ expect(SeededModel.count).to eq(0)
74
68
  end
75
-
76
- it "should rollback if one record cannot be destroyed" do
77
- SeededModel.create!(:title => 'Foo', :fail_to_destroy => true)
78
- SeededModel.create!(:title => 'Bar')
69
+
70
+ it 'should rollback if one record cannot be destroyed' do
71
+ SeededModel.create!(title: 'Foo', fail_to_destroy: true)
72
+ SeededModel.create!(title: 'Bar')
79
73
  expect { unseed }.to raise_error(ActiveRecord::ActiveRecordError)
80
- SeededModel.count.should == 2
74
+ expect(SeededModel.count).to eq(2)
81
75
  end
82
76
  end
83
-
84
77
  end
85
78
  end
86
79
 
87
80
  def unseed
88
- SeedFuNdo.recorder.seeders.reverse.each {|s| s.unseed }
81
+ SeedFuNdo.recorder.seeders.reverse.each(&:unseed)
89
82
  end
@@ -5,32 +5,31 @@ require 'logger'
5
5
 
6
6
  SeedFu.quiet = true
7
7
 
8
- ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/../debug.log")
8
+ ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + '/../debug.log')
9
9
 
10
10
  ActiveRecord::Base.establish_connection(
11
- :adapter => "sqlite3",
12
- :database => File.dirname(__FILE__) + "/test.sqlite3"
11
+ adapter: 'sqlite3',
12
+ database: File.dirname(__FILE__) + '/test.sqlite3'
13
13
  )
14
14
 
15
- ActiveRecord::Schema.define :version => 0 do
16
- create_table :seeded_models, :force => true do |t|
15
+ ActiveRecord::Schema.define version: 0 do
16
+ create_table :seeded_models, force: true do |t|
17
17
  t.column :login, :string
18
18
  t.column :first_name, :string
19
19
  t.column :last_name, :string
20
20
  t.column :title, :string
21
- t.column :fail_to_destroy, :boolean, :default => false
21
+ t.column :fail_to_destroy, :boolean, default: false
22
22
  end
23
23
  end
24
24
 
25
25
  class SeededModel < ActiveRecord::Base
26
26
  validates_presence_of :title
27
- attr_protected :first_name
28
27
 
29
- before_destroy { false if fail_to_destroy }
28
+ before_destroy { throw :abort if fail_to_destroy }
30
29
  end
31
30
 
32
31
  RSpec.configure do |config|
33
32
  config.before do
34
33
  SeededModel.delete_all
35
34
  end
36
- end
35
+ end
Binary file
metadata CHANGED
@@ -1,120 +1,99 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: seed-fu-ndo
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Pascal Zumkehr
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-06-14 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
- none: false
23
- requirements:
11
+ date: 2018-06-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: seed-fu
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
24
17
  - - ">="
25
- - !ruby/object:Gem::Version
26
- hash: 7
27
- segments:
28
- - 2
29
- - 2
30
- - 0
18
+ - !ruby/object:Gem::Version
31
19
  version: 2.2.0
32
- prerelease: false
33
- requirement: *id001
34
- name: seed-fu
35
20
  type: :runtime
36
- - !ruby/object:Gem::Dependency
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
46
21
  prerelease: false
47
- requirement: *id002
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.2.0
27
+ - !ruby/object:Gem::Dependency
48
28
  name: rspec
49
- type: :development
50
- - !ruby/object:Gem::Dependency
51
- version_requirements: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
54
31
  - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
60
35
  prerelease: false
61
- requirement: *id003
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
62
42
  name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
63
48
  type: :development
64
- description: While Seed Fu solves the problem for inserting and maintaining seed data in a database, Seed Fu-ndo adds the possiblity to remove this data again.
65
- email:
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: While Seed Fu solves the problem for inserting and maintaining seed data
56
+ in a database, Seed Fu-ndo adds the possiblity to remove this data again.
57
+ email:
66
58
  - spam@codez.ch
67
59
  executables: []
68
-
69
60
  extensions: []
70
-
71
61
  extra_rdoc_files: []
72
-
73
- files:
74
- - lib/tasks/seed_fu_ndo.rake
62
+ files:
63
+ - Rakefile
75
64
  - lib/seed-fu-ndo.rb
76
- - lib/seed-fu-ndo/seeder.rb
65
+ - lib/seed-fu-ndo/railtie.rb
77
66
  - lib/seed-fu-ndo/recorder.rb
67
+ - lib/seed-fu-ndo/seeder.rb
78
68
  - lib/seed-fu-ndo/version.rb
79
- - lib/seed-fu-ndo/railtie.rb
80
- - Rakefile
81
- - spec/test.sqlite3
69
+ - lib/tasks/seed_fu_ndo.rake
82
70
  - spec/seeder_spec.rb
83
71
  - spec/spec_helper.rb
72
+ - spec/test.sqlite3
84
73
  homepage: http://github.com/codez/seed-fu-ndo
85
74
  licenses: []
86
-
75
+ metadata: {}
87
76
  post_install_message:
88
77
  rdoc_options: []
89
-
90
- require_paths:
78
+ require_paths:
91
79
  - lib
92
- required_ruby_version: !ruby/object:Gem::Requirement
93
- none: false
94
- requirements:
80
+ required_ruby_version: !ruby/object:Gem::Requirement
81
+ requirements:
95
82
  - - ">="
96
- - !ruby/object:Gem::Version
97
- hash: 3
98
- segments:
99
- - 0
100
- version: "0"
101
- required_rubygems_version: !ruby/object:Gem::Requirement
102
- none: false
103
- requirements:
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
104
87
  - - ">="
105
- - !ruby/object:Gem::Version
106
- hash: 3
107
- segments:
108
- - 0
109
- version: "0"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
110
90
  requirements: []
111
-
112
91
  rubyforge_project:
113
- rubygems_version: 1.8.17
92
+ rubygems_version: 2.7.6
114
93
  signing_key:
115
- specification_version: 3
94
+ specification_version: 4
116
95
  summary: Seed Fu-ndo adds undo functionality to Seed Fu
117
- test_files:
96
+ test_files:
97
+ - spec/spec_helper.rb
118
98
  - spec/test.sqlite3
119
99
  - spec/seeder_spec.rb
120
- - spec/spec_helper.rb