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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 410881a4643e833bb9faf6c640827ecf44034b45
4
- data.tar.gz: 4ee0d37ebbe9869a1a92b6a79271a6803e3b49dc
3
+ metadata.gz: b0f36635b9246f77e0bf9b0e81332c6693f0d8c9
4
+ data.tar.gz: 3b2e0580487b2b04544b4ac7a9b6b46fd0af6d73
5
5
  SHA512:
6
- metadata.gz: 03b7ced8230ffcc5bb913468774110973a87ba35cdd7ba8711c468c7919f1dbdfe1691738fd0142fa40c869b957e84450507d458f3238137f078a9ee905c254f
7
- data.tar.gz: e7af2ee27b15d8daca687ef2241e7a1674b2e64825038781bdfb7272bceea33124c2703d17c1c197bd064cb9498589a88859981a72f9077d8279a100f1352215
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
@@ -1,3 +1,3 @@
1
1
  module SeedPacket
2
- VERSION = "0.0.1"
2
+ VERSION = '0.0.2'
3
3
  end
data/lib/seed_packet.rb CHANGED
@@ -1,5 +1,51 @@
1
- require "seed_packet/version"
1
+ require 'pp'
2
+ require 'seed_packet/version'
3
+ require 'seed_packet/environment'
2
4
 
3
5
  module SeedPacket
4
- # Your code goes here...
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.1
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