seed_packet 0.0.1 → 0.0.2

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