seed_packet 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/lib/seed_packet/environment.rb +17 -0
- data/lib/seed_packet/version.rb +1 -1
- data/lib/seed_packet.rb +48 -2
- data/lib/tasks/seed_packet.rake +26 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0f36635b9246f77e0bf9b0e81332c6693f0d8c9
|
4
|
+
data.tar.gz: 3b2e0580487b2b04544b4ac7a9b6b46fd0af6d73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ea34103646d2a3196b9055128b649df0b6bc7b1b11b61d9c6f543ac361c1ec96fe0343ef2674f7ebd93281683186c1191d21a8087bf528cb4aad8ad2406f348
|
7
|
+
data.tar.gz: aaecc201f3a378958fab1cc9fdf29f2ee4a137959384011d531c17e3156a5c63cb4459eebce5ba7e13791ed2153793db3b34b02c417876c6f52b73d33008bb51
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module SeedPacket
|
2
|
+
class Environment
|
3
|
+
attr_accessor :environment
|
4
|
+
|
5
|
+
def initialize(environment)
|
6
|
+
self.environment = environment
|
7
|
+
end
|
8
|
+
|
9
|
+
def seeding_allowed?
|
10
|
+
environment != 'test'
|
11
|
+
end
|
12
|
+
|
13
|
+
def samples_allowed?
|
14
|
+
!%w{production test}.include?(environment)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/seed_packet/version.rb
CHANGED
data/lib/seed_packet.rb
CHANGED
@@ -1,5 +1,51 @@
|
|
1
|
-
require
|
1
|
+
require 'pp'
|
2
|
+
require 'seed_packet/version'
|
3
|
+
require 'seed_packet/environment'
|
2
4
|
|
3
5
|
module SeedPacket
|
4
|
-
|
6
|
+
attr_accessor :environment,
|
7
|
+
:factory_class
|
8
|
+
|
9
|
+
def initialize(options = {})
|
10
|
+
self.environment = options.key?(:environment) ? Environment.new(environment) : nil
|
11
|
+
self.factory_class = Object.const_get(options.fetch(:factory_class, 'FactoryGirl'))
|
12
|
+
end
|
13
|
+
|
14
|
+
def seed
|
15
|
+
if environment.seeding_allowed?
|
16
|
+
yield
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def sample
|
21
|
+
if environment.samples_allowed?
|
22
|
+
yield
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def sow_seeds(factory, options = {})
|
29
|
+
if environment.seeding_allowed?
|
30
|
+
display_items = options.fetch(:display_items, false)
|
31
|
+
count = options.fetch(:count, rand(20))
|
32
|
+
overridden_values = options.fetch(:values, {})
|
33
|
+
sample_factory_name = "#{factory}_sample"
|
34
|
+
sample_items = factory_class.create_list(sample_factory_name,
|
35
|
+
count,
|
36
|
+
overridden_values)
|
37
|
+
|
38
|
+
if display_items
|
39
|
+
sample_items.each do |item|
|
40
|
+
pp item.attributes
|
41
|
+
puts
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
item_class_name = sample_items.first.class.name
|
46
|
+
puts "%4s %s Created" % [count, item_class_name.underscore.titleize.pluralize]
|
47
|
+
|
48
|
+
sample_items
|
49
|
+
end
|
50
|
+
end
|
5
51
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
namespace :seed_packet do
|
2
|
+
desc 'Reset the database and load seed data'
|
3
|
+
task reset_and_seed: ['db:reset', 'default']
|
4
|
+
|
5
|
+
desc 'Remigrate the database and load seed data'
|
6
|
+
task remigrate_and_seed: ['db:migrate:reset', 'default']
|
7
|
+
|
8
|
+
desc 'Provide a base load of randomly generated (but valid) data for development.'
|
9
|
+
task default: 'prepare' do
|
10
|
+
Rake::Task['seed_packet:seed'].invoke
|
11
|
+
Rake::Task['seed_packet:sample'].invoke
|
12
|
+
end
|
13
|
+
|
14
|
+
task seed: 'prepare' do
|
15
|
+
MyApp::Database::Seed.new(environment: Rails.env).seed
|
16
|
+
end
|
17
|
+
|
18
|
+
task sample: 'prepare' do
|
19
|
+
MyApp::Database::Sample.new(environment: Rails.env).sample
|
20
|
+
end
|
21
|
+
|
22
|
+
task prepare: :environment do
|
23
|
+
require File.expand_path('../../../../db/seed.rb', __FILE__)
|
24
|
+
require File.expand_path('../../../../db/sample.rb', __FILE__)
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seed_packet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jfelchner
|
@@ -21,7 +21,9 @@ files:
|
|
21
21
|
- README.md
|
22
22
|
- Rakefile
|
23
23
|
- lib/seed_packet.rb
|
24
|
+
- lib/seed_packet/environment.rb
|
24
25
|
- lib/seed_packet/version.rb
|
26
|
+
- lib/tasks/seed_packet.rake
|
25
27
|
homepage: https://github.com/thekompanee/seed_packet
|
26
28
|
licenses:
|
27
29
|
- MIT
|